2018-08-30 09:55:21 +10:00
|
|
|
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
|
2018-08-30 09:55:21 +10:00
|
|
|
{
|
|
|
|
|
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;
|
2018-08-30 09:55:21 +10:00
|
|
|
private final int version;
|
2019-02-03 10:58:51 +11:00
|
|
|
private final boolean unknown;
|
2018-08-30 09:55:21 +10:00
|
|
|
|
2019-02-03 10:58:51 +11:00
|
|
|
private JavaVersion(String name, int version)
|
2018-08-30 09:55:21 +10:00
|
|
|
{
|
2019-02-03 10:58:51 +11:00
|
|
|
this( name, version, false );
|
2018-08-30 09:55:21 +10:00
|
|
|
}
|
|
|
|
|
2019-02-03 10:58:51 +11:00
|
|
|
private JavaVersion(String name, int version, boolean unknown)
|
2018-08-30 09:55:21 +10:00
|
|
|
{
|
2019-02-03 10:58:51 +11:00
|
|
|
this.name = name;
|
|
|
|
this.version = version;
|
|
|
|
this.unknown = unknown;
|
2018-08-30 09:55:21 +10:00
|
|
|
|
2019-02-03 10:58:51 +11:00
|
|
|
byVersion.put( version, this );
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String toString()
|
|
|
|
{
|
|
|
|
return getName();
|
2018-08-30 09:55:21 +10:00
|
|
|
}
|
|
|
|
|
|
|
|
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;
|
2018-08-30 09:55:21 +10:00
|
|
|
}
|
|
|
|
|
|
|
|
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 );
|
2018-08-30 09:55:21 +10:00
|
|
|
sb.append( ", " );
|
|
|
|
}
|
|
|
|
sb.setLength( sb.length() - 2 );
|
|
|
|
sb.append( ']' );
|
|
|
|
|
|
|
|
return sb.toString();
|
|
|
|
}
|
|
|
|
}
|