@@ -0,0 +1,2237 @@
+package com.github.qrokodial.sparkle.utilities.versioning;%0A%0Apublic class Version %7B%0A    private int major;%0A    private int minor;%0A    private int revision;%0A    private Stage stage;%0A%0A    public enum Stage %7B%0A        /**%0A         * For final releases of the particular version.%0A         */%0A        RELEASE,%0A%0A        /**%0A         * A release candidate. You think this *might* be suitable for a final release, but you still want to do more%0A         * testing.%0A         */%0A        RC,%0A%0A        /**%0A         * A beta release. This typically means you have all your features in and you're just working on bug fixes.%0A         */%0A        BETA,%0A%0A        /**%0A         * Alpha releases are for early on in development where you still have things to do.%0A         */%0A        ALPHA,%0A%0A        /**%0A         * When you have so much left to do and so much left to change you feel funny calling it an alpha release.%0A         */%0A        GAMMA;%0A    %7D%0A%0A    /**%0A     * Instantiates the class.%0A     *%0A     * @param major%0A     * @param minor%0A     * @param revision%0A     * @param stage%0A     */%0A    public Version(int major, int minor, int revision, Stage stage) %7B%0A        this.major = major;%0A        this.minor = minor;%0A        this.revision = revision;%0A        this.stage = stage;%0A    %7D%0A%0A    /**%0A     * @return the major version number%0A     */%0A    public int getMajor() %7B%0A        return major;%0A    %7D%0A%0A    /**%0A     * @return the minor version number%0A     */%0A    public int getMinor() %7B%0A        return minor;%0A    %7D%0A%0A    /**%0A     * @return the revision version number%0A     */%0A    public int getRevision() %7B%0A        return revision;%0A    %7D%0A%0A    /**%0A     * @return the stage of the version%0A     */%0A    public Stage getStage() %7B%0A        return stage;%0A    %7D%0A%0A    /**%0A     * @return the string representation of the class%0A     */%0A    @Override%0A    public String toString() %7B%0A        StringBuilder builder = new StringBuilder();%0A        builder.append(getMajor());%0A        builder.append(%22.%22);%0A        builder.append(getMinor());%0A        builder.append(%22.%22);%0A        builder.append(getRevision());%0A%0A        if (!getStage().equals(Stage.RELEASE)) %7B%0A            builder.append(%22 %22);%0A            builder.append(getStage());%0A        %7D%0A%0A        return builder.toString();%0A    %7D%0A%7D%0A

Implement versioning