buildtools/src/main/java/org/spigotmc/builder/JavaVersion.java

86 lines
2.7 KiB
Java
Raw Normal View History

package org.spigotmc.builder;
import java.util.HashMap;
import java.util.Map;
import lombok.Getter;
@Getter
2019-02-03 10:58:51 +11:00
public class JavaVersion
{
2019-02-03 10:58:51 +11:00
private static final Map<Integer, JavaVersion> byVersion = new HashMap<Integer, JavaVersion>();
//
public static final JavaVersion JAVA_5 = new JavaVersion( "Java 5", 49 );
public static final JavaVersion JAVA_6 = new JavaVersion( "Java 6", 50 );
public static final JavaVersion JAVA_7 = new JavaVersion( "Java 7", 51 );
public static final JavaVersion JAVA_8 = new JavaVersion( "Java 8", 52 );
public static final JavaVersion JAVA_9 = new JavaVersion( "Java 9", 53 );
public static final JavaVersion JAVA_10 = new JavaVersion( "Java 10", 54 );
public static final JavaVersion JAVA_11 = new JavaVersion( "Java 11", 55 );
2019-03-17 11:48:53 +11:00
public static final JavaVersion JAVA_12 = new JavaVersion( "Java 12", 56 );
2019-09-18 20:03:48 +10:00
public static final JavaVersion JAVA_13 = new JavaVersion( "Java 13", 57 );
2020-03-02 13:15:13 +11:00
public static final JavaVersion JAVA_14 = new JavaVersion( "Java 14", 58 );
2020-09-11 07:00:00 +10:00
public static final JavaVersion JAVA_15 = new JavaVersion( "Java 15", 59 );
2021-03-17 07:56:26 +11:00
public static final JavaVersion JAVA_16 = new JavaVersion( "Java 16", 60 );
2021-08-13 08:43:53 +10:00
public static final JavaVersion JAVA_17 = new JavaVersion( "Java 17", 61 );
2022-03-28 08:05:34 +11:00
public static final JavaVersion JAVA_18 = new JavaVersion( "Java 18", 62 );
2022-09-21 07:00:21 +10:00
public static final JavaVersion JAVA_19 = new JavaVersion( "Java 19", 63 );
2019-02-03 10:58:51 +11:00
//
private final String name;
private final int version;
2019-02-03 10:58:51 +11:00
private final boolean unknown;
2019-02-03 10:58:51 +11:00
private JavaVersion(String name, int version)
{
2019-02-03 10:58:51 +11:00
this( name, version, false );
}
2019-02-03 10:58:51 +11:00
private JavaVersion(String name, int version, boolean unknown)
{
2019-02-03 10:58:51 +11:00
this.name = name;
this.version = version;
this.unknown = unknown;
2019-02-03 10:58:51 +11:00
byVersion.put( version, this );
}
@Override
public String toString()
{
return getName();
}
public static JavaVersion getByVersion(int version)
{
2019-02-03 10:58:51 +11:00
JavaVersion java = byVersion.get( version );
if ( java == null )
{
java = new JavaVersion( "Java " + ( version - 44 ) + "*", version, true );
}
return java;
}
public static JavaVersion getCurrentVersion()
{
return getByVersion( (int) Float.parseFloat( System.getProperty( "java.class.version" ) ) );
}
public static String printVersions(int[] versions)
{
StringBuilder sb = new StringBuilder();
sb.append( '[' );
for ( int v : versions )
{
JavaVersion found = getByVersion( v );
2019-02-03 10:58:51 +11:00
sb.append( found );
sb.append( ", " );
}
sb.setLength( sb.length() - 2 );
sb.append( ']' );
return sb.toString();
}
}