aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/apache/commons/lang3/JavaVersion.java
diff options
context:
space:
mode:
authorGerald Barker <geraldbarker@gmail.com>2011-09-02 23:19:51 +0100
committerGerald Barker <geraldbarker@gmail.com>2011-09-02 23:19:51 +0100
commit53936c7ee6654a525075b03e1b4c8ddbfbcd4ef5 (patch)
tree41154be6daecad1b4483223d72920e0a290024ef /src/org/apache/commons/lang3/JavaVersion.java
parentafbe8c5164e1157e38e0f8c4b28942cbd9fe3d41 (diff)
downloadcgeo-53936c7ee6654a525075b03e1b4c8ddbfbcd4ef5.zip
cgeo-53936c7ee6654a525075b03e1b4c8ddbfbcd4ef5.tar.gz
cgeo-53936c7ee6654a525075b03e1b4c8ddbfbcd4ef5.tar.bz2
First commit of Apache Commons String & Date functions and required, and
refactor of code to use them.
Diffstat (limited to 'src/org/apache/commons/lang3/JavaVersion.java')
-rw-r--r--src/org/apache/commons/lang3/JavaVersion.java168
1 files changed, 168 insertions, 0 deletions
diff --git a/src/org/apache/commons/lang3/JavaVersion.java b/src/org/apache/commons/lang3/JavaVersion.java
new file mode 100644
index 0000000..4901f6d
--- /dev/null
+++ b/src/org/apache/commons/lang3/JavaVersion.java
@@ -0,0 +1,168 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.lang3;
+
+/**
+ * <p>An enum representing all the versions of the Java specification.
+ * This is intended to mirror available values from the
+ * <em>java.specification.version</em> System property. </p>
+ *
+ * @since 3.0
+ * @version $Id: $
+ */
+public enum JavaVersion {
+
+ /**
+ * The Java version reported by Android. This is not an official Java version number.
+ */
+ JAVA_0_9(1.5f, "0.9"),
+
+ /**
+ * Java 1.1.
+ */
+ JAVA_1_1(1.1f, "1.1"),
+
+ /**
+ * Java 1.2.
+ */
+ JAVA_1_2(1.2f, "1.2"),
+
+ /**
+ * Java 1.3.
+ */
+ JAVA_1_3(1.3f, "1.3"),
+
+ /**
+ * Java 1.4.
+ */
+ JAVA_1_4(1.4f, "1.4"),
+
+ /**
+ * Java 1.5.
+ */
+ JAVA_1_5(1.5f, "1.5"),
+
+ /**
+ * Java 1.6.
+ */
+ JAVA_1_6(1.6f, "1.6"),
+
+ /**
+ * Java 1.7.
+ */
+ JAVA_1_7(1.7f, "1.7"),
+
+ /**
+ * Java 1.8.
+ */
+ JAVA_1_8(1.8f, "1.8");
+
+ /**
+ * The float value.
+ */
+ private float value;
+ /**
+ * The standard name.
+ */
+ private String name;
+
+ /**
+ * Constructor.
+ *
+ * @param value the float value
+ * @param name the standard name, not null
+ */
+ JavaVersion(final float value, final String name) {
+ this.value = value;
+ this.name = name;
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * <p>Whether this version of Java is at least the version of Java passed in.</p>
+ *
+ * <p>For example:<br />
+ * {@code myVersion.atLeast(JavaVersion.JAVA_1_4)}<p>
+ *
+ * @param requiredVersion the version to check against, not null
+ * @return true if this version is equal to or greater than the specified version
+ */
+ public boolean atLeast(JavaVersion requiredVersion) {
+ return this.value >= requiredVersion.value;
+ }
+
+ /**
+ * Transforms the given string with a Java version number to the
+ * corresponding constant of this enumeration class. This method is used
+ * internally.
+ *
+ * @param nom the Java version as string
+ * @return the corresponding enumeration constant or <b>null</b> if the
+ * version is unknown
+ */
+ // helper for static importing
+ static JavaVersion getJavaVersion(final String nom) {
+ return get(nom);
+ }
+
+ /**
+ * Transforms the given string with a Java version number to the
+ * corresponding constant of this enumeration class. This method is used
+ * internally.
+ *
+ * @param nom the Java version as string
+ * @return the corresponding enumeration constant or <b>null</b> if the
+ * version is unknown
+ */
+ static JavaVersion get(final String nom) {
+ if ("0.9".equals(nom)) {
+ return JAVA_0_9;
+ } else if ("1.1".equals(nom)) {
+ return JAVA_1_1;
+ } else if ("1.2".equals(nom)) {
+ return JAVA_1_2;
+ } else if ("1.3".equals(nom)) {
+ return JAVA_1_3;
+ } else if ("1.4".equals(nom)) {
+ return JAVA_1_4;
+ } else if ("1.5".equals(nom)) {
+ return JAVA_1_5;
+ } else if ("1.6".equals(nom)) {
+ return JAVA_1_6;
+ } else if ("1.7".equals(nom)) {
+ return JAVA_1_7;
+ } else if ("1.8".equals(nom)) {
+ return JAVA_1_8;
+ } else {
+ return null;
+ }
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * <p>The string value is overridden to return the standard name.</p>
+ *
+ * <p>For example, <code>"1.5"</code>.</p>
+ *
+ * @return the name, not null
+ */
+ @Override
+ public String toString() {
+ return name;
+ }
+
+}