increase version number to 0.99.0
[jSite2.git] / src / net / pterodactylus / jsite / main / Version.java
index 361b5ed..adc8b86 100644 (file)
@@ -23,20 +23,110 @@ package net.pterodactylus.jsite.main;
  * Container for version information.
  * 
  * @author David Roden <bombe@freenetproject.org>
- * @version $Id$
  */
-public class Version {
+public class Version implements Comparable<Version> {
 
-       /** The version identifier. */
-       private static final String VERSION = "0.9.0";
+       /** The version of the application. */
+       private static final Version VERSION = new Version(0, 99, 0);
+
+       /** The major level of the version. */
+       private final int major;
+
+       /** The minor level of the version. */
+       private final int minor;
+
+       /** The patch level of the version. */
+       private final int patch;
 
        /**
-        * Returns the version information.
+        * Creates a new version with the given major level and minor and patch
+        * levels set to <code>0</code>.
         * 
-        * @return The version information
+        * @param major
+        *            The major level of the version
         */
-       public static final String getVersion() {
+       public Version(int major) {
+               this(major, 0);
+       }
+
+       /**
+        * Creates a new version with the given major and minor level and the patch
+        * level set to <code>0</code>.
+        * 
+        * @param major
+        *            The major level of the version
+        * @param minor
+        *            The minor level of the version
+        */
+       public Version(int major, int minor) {
+               this(major, minor, 0);
+       }
+
+       /**
+        * Creates a new version with the given major, minor, and patch level.
+        * 
+        * @param major
+        *            The major level of the version
+        * @param minor
+        *            The minor level of the version
+        * @param patch
+        *            The patch level of the version
+        */
+       public Version(int major, int minor, int patch) {
+               this.major = major;
+               this.minor = minor;
+               this.patch = patch;
+       }
+
+       /**
+        * Returns the version of the application.
+        * 
+        * @return The version of the application
+        */
+       public static Version getVersion() {
                return VERSION;
        }
 
+       /**
+        * Returns the major level of the version.
+        * 
+        * @return The major level of the version
+        */
+       public int getMajor() {
+               return major;
+       }
+
+       /**
+        * Returns the minor level of the version.
+        * 
+        * @return The minor level of the version
+        */
+       public int getMinor() {
+               return minor;
+       }
+
+       /**
+        * Returns the patch level of the version.
+        * 
+        * @return The patch level of the version
+        */
+       public int getPatch() {
+               return patch;
+       }
+
+       /**
+        * {@inheritDoc}
+        */
+       public int compareTo(Version version) {
+               return (major != version.major) ? (major - version.major) : ((minor != version.minor) ? (minor - version.minor) : (patch - version.patch));
+       }
+
+       /**
+        * {@inheritDoc}
+        */
+       @Override
+       public String toString() {
+               return major + "." + minor + "." + patch;
+       }
+
 }