47
48 /** J2SE1.4 = Merlin. */
49 JDK1_4("1.4", 48, 0),
50
51 /** JDK 5, codename Tiger. */
52 JDK1_5("1.5", 49, 0),
53
54 /** JDK 6. */
55 JDK1_6("1.6", 50, 0),
56
57 /** JDK 7. */
58 JDK1_7("1.7", 51, 0),
59
60 /** JDK 8. */
61 JDK1_8("1.8", 52, 0),
62
63 /** JDK 9. */
64 JDK1_9("1.9", 53, 0),
65
66 /** JDK 10. */
67 JDK1_10("1.10", 54, 0);
68
69 private static final Context.Key<Target> targetKey = new Context.Key<>();
70
71 public static Target instance(Context context) {
72 Target instance = context.get(targetKey);
73 if (instance == null) {
74 Options options = Options.instance(context);
75 String targetString = options.get(TARGET);
76 if (targetString != null) instance = lookup(targetString);
77 if (instance == null) instance = DEFAULT;
78 context.put(targetKey, instance);
79 }
80 return instance;
81 }
82
83 public static final Target MIN = Target.JDK1_6;
84
85 private static final Target MAX = values()[values().length - 1];
86
87 private static final Map<String,Target> tab = new HashMap<>();
88 static {
89 for (Target t : values()) {
90 tab.put(t.name, t);
91 }
92 tab.put("5", JDK1_5);
93 tab.put("6", JDK1_6);
94 tab.put("7", JDK1_7);
95 tab.put("8", JDK1_8);
96 tab.put("9", JDK1_9);
97 tab.put("10", JDK1_10);
98 }
99
100 public final String name;
101 public final int majorVersion;
102 public final int minorVersion;
103 private Target(String name, int majorVersion, int minorVersion) {
104 this.name = name;
105 this.majorVersion = majorVersion;
106 this.minorVersion = minorVersion;
107 }
108
109 public static final Target DEFAULT = values()[values().length - 1];
110
111 public static Target lookup(String name) {
112 return tab.get(name);
113 }
114
115 /** Return the character to be used in constructing synthetic
116 * identifiers, where not specified by the JLS.
117 */
|
47
48 /** J2SE1.4 = Merlin. */
49 JDK1_4("1.4", 48, 0),
50
51 /** JDK 5, codename Tiger. */
52 JDK1_5("1.5", 49, 0),
53
54 /** JDK 6. */
55 JDK1_6("1.6", 50, 0),
56
57 /** JDK 7. */
58 JDK1_7("1.7", 51, 0),
59
60 /** JDK 8. */
61 JDK1_8("1.8", 52, 0),
62
63 /** JDK 9. */
64 JDK1_9("1.9", 53, 0),
65
66 /** JDK 10. */
67 JDK1_10("1.10", 54, 0),
68
69 /** JDK 11. */
70 JDK1_11("11", 54, 0); // Initially an alias for JDK_10
71
72 private static final Context.Key<Target> targetKey = new Context.Key<>();
73
74 public static Target instance(Context context) {
75 Target instance = context.get(targetKey);
76 if (instance == null) {
77 Options options = Options.instance(context);
78 String targetString = options.get(TARGET);
79 if (targetString != null) instance = lookup(targetString);
80 if (instance == null) instance = DEFAULT;
81 context.put(targetKey, instance);
82 }
83 return instance;
84 }
85
86 public static final Target MIN = Target.JDK1_6;
87
88 private static final Target MAX = values()[values().length - 1];
89
90 private static final Map<String,Target> tab = new HashMap<>();
91 static {
92 for (Target t : values()) {
93 tab.put(t.name, t);
94 }
95 tab.put("5", JDK1_5);
96 tab.put("6", JDK1_6);
97 tab.put("7", JDK1_7);
98 tab.put("8", JDK1_8);
99 tab.put("9", JDK1_9);
100 tab.put("10", JDK1_10);
101 tab.put("11", JDK1_11);
102 }
103
104 public final String name;
105 public final int majorVersion;
106 public final int minorVersion;
107 private Target(String name, int majorVersion, int minorVersion) {
108 this.name = name;
109 this.majorVersion = majorVersion;
110 this.minorVersion = minorVersion;
111 }
112
113 public static final Target DEFAULT = values()[values().length - 1];
114
115 public static Target lookup(String name) {
116 return tab.get(name);
117 }
118
119 /** Return the character to be used in constructing synthetic
120 * identifiers, where not specified by the JLS.
121 */
|