class Version implements Callable<Integer>, IVersionProvider
{
    // Expected for CLI app to write to System.out/System.err
    @SuppressWarnings("squid:S106")
    private final PrintStream SYSOUT;

    @Spec CommandSpec spec;

    /**
     * Get the version of PDFBox or unknown if it is not known.
     *
     * @return The version of pdfbox that is being used.
     */
    public String[] getVersion()
    {
        String version = org.apache.pdfbox.util.Version.getVersion();
        if (version != null)
        {
            return new String[] { spec.qualifiedName() + " [" + version + "]" };
        }
        else
        {
            return new String[] { "unknown" };
        }
    }

    /**
     * Constructor.
     */
    public Version()
    {
        SYSOUT = System.out;
    }

    /**
     * This will print out the version of PDF to System.out.
     *
     * @param args Command line arguments.
     */
    public static void main(String[] args)
    {<FILL_FUNCTION_BODY>}

    public Integer call()
    {
        SYSOUT.println(getVersion()[0]);
        return 0;
    }
}

        // suppress the Dock icon on OS X
        System.setProperty("apple.awt.UIElement", "true");
        
        int exitCode = new CommandLine(new Version()).execute(args);
        System.exit(exitCode);
    
<no_super_class>