24 */
25
26 package com.sun.tools.javac.main;
27
28 import java.io.FileWriter;
29 import java.io.PrintWriter;
30 import java.lang.module.ModuleDescriptor;
31 import java.nio.file.Files;
32 import java.nio.file.Path;
33 import java.nio.file.Paths;
34 import java.text.Collator;
35 import java.util.Arrays;
36 import java.util.Collections;
37 import java.util.Comparator;
38 import java.util.EnumSet;
39 import java.util.Iterator;
40 import java.util.LinkedHashSet;
41 import java.util.Locale;
42 import java.util.ServiceLoader;
43 import java.util.Set;
44 import java.util.TreeSet;
45 import java.util.regex.Pattern;
46 import java.util.stream.Collectors;
47 import java.util.stream.StreamSupport;
48
49 import javax.lang.model.SourceVersion;
50
51 import jdk.internal.misc.VM;
52
53 import com.sun.tools.doclint.DocLint;
54 import com.sun.tools.javac.code.Lint;
55 import com.sun.tools.javac.code.Lint.LintCategory;
56 import com.sun.tools.javac.code.Source;
57 import com.sun.tools.javac.code.Type;
58 import com.sun.tools.javac.jvm.Profile;
59 import com.sun.tools.javac.jvm.Target;
60 import com.sun.tools.javac.platform.PlatformProvider;
61 import com.sun.tools.javac.processing.JavacProcessingEnvironment;
62 import com.sun.tools.javac.resources.CompilerProperties.Errors;
63 import com.sun.tools.javac.util.Assert;
278
279 D("-d", "opt.arg.directory", "opt.d", STANDARD, FILEMANAGER),
280
281 S("-s", "opt.arg.directory", "opt.sourceDest", STANDARD, FILEMANAGER),
282
283 H("-h", "opt.arg.directory", "opt.headerDest", STANDARD, FILEMANAGER),
284
285 IMPLICIT("-implicit:", "opt.implicit", STANDARD, BASIC, ONEOF, "none", "class"),
286
287 ENCODING("-encoding", "opt.arg.encoding", "opt.encoding", STANDARD, FILEMANAGER),
288
289 SOURCE("-source", "opt.arg.release", "opt.source", STANDARD, BASIC) {
290 @Override
291 public void process(OptionHelper helper, String option, String operand) throws InvalidValueException {
292 Source source = Source.lookup(operand);
293 if (source == null) {
294 throw helper.newInvalidValueException(Errors.InvalidSource(operand));
295 }
296 super.process(helper, option, operand);
297 }
298 },
299
300 TARGET("-target", "opt.arg.release", "opt.target", STANDARD, BASIC) {
301 @Override
302 public void process(OptionHelper helper, String option, String operand) throws InvalidValueException {
303 Target target = Target.lookup(operand);
304 if (target == null) {
305 throw helper.newInvalidValueException(Errors.InvalidTarget(operand));
306 }
307 super.process(helper, option, operand);
308 }
309 },
310
311 RELEASE("--release", "opt.arg.release", "opt.release", STANDARD, BASIC) {
312 @Override
313 protected void help(Log log) {
314 Iterable<PlatformProvider> providers =
315 ServiceLoader.load(PlatformProvider.class, Arguments.class.getClassLoader());
316 Set<String> platforms = StreamSupport.stream(providers.spliterator(), false)
317 .flatMap(provider -> StreamSupport.stream(provider.getSupportedPlatformNames()
318 .spliterator(),
319 false))
320 .collect(Collectors.toCollection(LinkedHashSet :: new));
321
322 StringBuilder targets = new StringBuilder();
323 String delim = "";
324 for (String platform : platforms) {
325 targets.append(delim);
326 targets.append(platform);
327 delim = ", ";
|
24 */
25
26 package com.sun.tools.javac.main;
27
28 import java.io.FileWriter;
29 import java.io.PrintWriter;
30 import java.lang.module.ModuleDescriptor;
31 import java.nio.file.Files;
32 import java.nio.file.Path;
33 import java.nio.file.Paths;
34 import java.text.Collator;
35 import java.util.Arrays;
36 import java.util.Collections;
37 import java.util.Comparator;
38 import java.util.EnumSet;
39 import java.util.Iterator;
40 import java.util.LinkedHashSet;
41 import java.util.Locale;
42 import java.util.ServiceLoader;
43 import java.util.Set;
44 import java.util.StringJoiner;
45 import java.util.TreeSet;
46 import java.util.regex.Pattern;
47 import java.util.stream.Collectors;
48 import java.util.stream.StreamSupport;
49
50 import javax.lang.model.SourceVersion;
51
52 import jdk.internal.misc.VM;
53
54 import com.sun.tools.doclint.DocLint;
55 import com.sun.tools.javac.code.Lint;
56 import com.sun.tools.javac.code.Lint.LintCategory;
57 import com.sun.tools.javac.code.Source;
58 import com.sun.tools.javac.code.Type;
59 import com.sun.tools.javac.jvm.Profile;
60 import com.sun.tools.javac.jvm.Target;
61 import com.sun.tools.javac.platform.PlatformProvider;
62 import com.sun.tools.javac.processing.JavacProcessingEnvironment;
63 import com.sun.tools.javac.resources.CompilerProperties.Errors;
64 import com.sun.tools.javac.util.Assert;
279
280 D("-d", "opt.arg.directory", "opt.d", STANDARD, FILEMANAGER),
281
282 S("-s", "opt.arg.directory", "opt.sourceDest", STANDARD, FILEMANAGER),
283
284 H("-h", "opt.arg.directory", "opt.headerDest", STANDARD, FILEMANAGER),
285
286 IMPLICIT("-implicit:", "opt.implicit", STANDARD, BASIC, ONEOF, "none", "class"),
287
288 ENCODING("-encoding", "opt.arg.encoding", "opt.encoding", STANDARD, FILEMANAGER),
289
290 SOURCE("-source", "opt.arg.release", "opt.source", STANDARD, BASIC) {
291 @Override
292 public void process(OptionHelper helper, String option, String operand) throws InvalidValueException {
293 Source source = Source.lookup(operand);
294 if (source == null) {
295 throw helper.newInvalidValueException(Errors.InvalidSource(operand));
296 }
297 super.process(helper, option, operand);
298 }
299
300 @Override
301 protected void help(Log log) {
302 StringJoiner sj = new StringJoiner(", ");
303 for(Source source : Source.values()) {
304 if (source.isSupported())
305 sj.add(source.name);
306 }
307 super.help(log, log.localize(PrefixKind.JAVAC, descrKey, sj.toString()));
308 }
309 },
310
311 TARGET("-target", "opt.arg.release", "opt.target", STANDARD, BASIC) {
312 @Override
313 public void process(OptionHelper helper, String option, String operand) throws InvalidValueException {
314 Target target = Target.lookup(operand);
315 if (target == null) {
316 throw helper.newInvalidValueException(Errors.InvalidTarget(operand));
317 }
318 super.process(helper, option, operand);
319 }
320
321 @Override
322 protected void help(Log log) {
323 StringJoiner sj = new StringJoiner(", ");
324 for(Target target : Target.values()) {
325 if (target.isSupported())
326 sj.add(target.name);
327 }
328 super.help(log, log.localize(PrefixKind.JAVAC, descrKey, sj.toString()));
329 }
330 },
331
332 RELEASE("--release", "opt.arg.release", "opt.release", STANDARD, BASIC) {
333 @Override
334 protected void help(Log log) {
335 Iterable<PlatformProvider> providers =
336 ServiceLoader.load(PlatformProvider.class, Arguments.class.getClassLoader());
337 Set<String> platforms = StreamSupport.stream(providers.spliterator(), false)
338 .flatMap(provider -> StreamSupport.stream(provider.getSupportedPlatformNames()
339 .spliterator(),
340 false))
341 .collect(Collectors.toCollection(LinkedHashSet :: new));
342
343 StringBuilder targets = new StringBuilder();
344 String delim = "";
345 for (String platform : platforms) {
346 targets.append(delim);
347 targets.append(platform);
348 delim = ", ";
|