summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/spigotmc/builder/JavaVersion.java
blob: d86a1aede3acb61005b4501b377554d5288e8839 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package org.spigotmc.builder;

import java.util.HashMap;
import java.util.Map;
import lombok.Getter;

@Getter
public enum JavaVersion
{

    UNKNOWN( -1 ),
    JAVA_5( 49 ),
    JAVA_6( 50 ),
    JAVA_7( 51 ),
    JAVA_8( 52 ),
    JAVA_9( 53 ),
    JAVA_10( 54 ),
    JAVA_11( 55 );

    private final int version;

    private JavaVersion(int version)
    {
        this.version = version;
    }

    private static final Map<Integer, JavaVersion> byVersion = new HashMap<Integer, JavaVersion>();

    static
    {
        for ( JavaVersion version : values() )
        {

            byVersion.put( version.version, version );
        }
    }

    public static JavaVersion getByVersion(int version)
    {
        return byVersion.containsKey( version ) ? byVersion.get( version ) : JavaVersion.UNKNOWN;
    }

    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 );
            sb.append( found == JavaVersion.UNKNOWN ? v : found );
            sb.append( ", " );
        }
        sb.setLength( sb.length() - 2 );
        sb.append( ']' );

        return sb.toString();
    }
}