All Downloads are FREE. Search and download functionalities are using the official Maven repository.

leap.lang.Java Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2012 the original author or authors.
 *
 * Licensed 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 leap.lang;

/**
 * Java language specification utility.
 */
public class Java {
	
    /**
     * 

* The {@code java.specification.version} System Property. Java Runtime Environment specification version. *

*

* Defaults to {@code null} if the runtime does not have security access to read this property or the property does * not exist. *

*

* This value is initialized when the class is loaded. If {@link System#setProperty(String,String)} or * {@link System#setProperties(java.util.Properties)} is called after this class is loaded, the value will be out of * sync with that System property. *

* * @since Java 1.3 */ public static final String JAVA_SPECIFICATION_VERSION = System.getProperty("java.specification.version"); private static final Version JAVA_SPECIFICATION_VERSION_ENUM = Version.get(JAVA_SPECIFICATION_VERSION); /** * Returns Current Java Runtime Environment specification version. */ public static Version version() { return JAVA_SPECIFICATION_VERSION_ENUM; } /** *

* Is the Java version at least the requested version. *

*

* Example input: *

*
    *
  • {@code 1.2f} to test for Java 1.2
  • *
  • {@code 1.31f} to test for Java 1.3.1
  • *
* * @param requiredVersion the required version, for example 1.31f * @return {@code true} if the actual version is equal or greater than the required version */ public static boolean isVersionAtLeast(Version requiredVersion) { return version().atLeast(requiredVersion); } /** *

* An enum representing all the versions of the Java specification. This is intended to mirror available values from * the java.specification.version System property. *

*/ //from apache commons-lang3 public enum Version { /** * 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 */ Version(final float value, final String name) { this.value = value; this.name = name; } //----------------------------------------------------------------------- /** *

* Whether this version of Java is at least the version of Java passed in. *

* *

* For example:
* {@code myVersion.atLeast(JavaVersion.JAVA_1_4)} *

* * @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(Version 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 null if the version is unknown */ // helper for static importing static Version 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 null if the version is unknown */ static Version 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; } } //----------------------------------------------------------------------- /** *

* The string value is overridden to return the standard name. *

* *

* For example, "1.5". *

* * @return the name, not null */ @Override public String toString() { return name; } } protected Java() { } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy