langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Option.java
changeset 31506 4e07f827a794
parent 29427 44f4e6905b67
child 36153 ed5063b304be
equal deleted inserted replaced
31505:98c52b994430 31506:4e07f827a794
    30 import java.io.PrintWriter;
    30 import java.io.PrintWriter;
    31 import java.util.Collections;
    31 import java.util.Collections;
    32 import java.util.EnumSet;
    32 import java.util.EnumSet;
    33 import java.util.LinkedHashMap;
    33 import java.util.LinkedHashMap;
    34 import java.util.Map;
    34 import java.util.Map;
       
    35 import java.util.ServiceLoader;
    35 import java.util.Set;
    36 import java.util.Set;
       
    37 import java.util.TreeSet;
       
    38 import java.util.stream.Collectors;
       
    39 import java.util.stream.StreamSupport;
    36 
    40 
    37 import javax.lang.model.SourceVersion;
    41 import javax.lang.model.SourceVersion;
    38 
    42 
    39 import com.sun.tools.doclint.DocLint;
    43 import com.sun.tools.doclint.DocLint;
    40 import com.sun.tools.javac.code.Lint;
    44 import com.sun.tools.javac.code.Lint;
    41 import com.sun.tools.javac.code.Lint.LintCategory;
    45 import com.sun.tools.javac.code.Lint.LintCategory;
    42 import com.sun.tools.javac.code.Source;
    46 import com.sun.tools.javac.code.Source;
    43 import com.sun.tools.javac.code.Type;
    47 import com.sun.tools.javac.code.Type;
    44 import com.sun.tools.javac.jvm.Profile;
    48 import com.sun.tools.javac.jvm.Profile;
    45 import com.sun.tools.javac.jvm.Target;
    49 import com.sun.tools.javac.jvm.Target;
       
    50 import com.sun.tools.javac.platform.PlatformProvider;
    46 import com.sun.tools.javac.processing.JavacProcessingEnvironment;
    51 import com.sun.tools.javac.processing.JavacProcessingEnvironment;
    47 import com.sun.tools.javac.util.Log;
    52 import com.sun.tools.javac.util.Log;
    48 import com.sun.tools.javac.util.Log.PrefixKind;
    53 import com.sun.tools.javac.util.Log.PrefixKind;
    49 import com.sun.tools.javac.util.Log.WriterKind;
    54 import com.sun.tools.javac.util.Log.WriterKind;
    50 import com.sun.tools.javac.util.Options;
    55 import com.sun.tools.javac.util.Options;
    51 import com.sun.tools.javac.util.StringUtils;
    56 import com.sun.tools.javac.util.StringUtils;
       
    57 
    52 import static com.sun.tools.javac.main.Option.ChoiceKind.*;
    58 import static com.sun.tools.javac.main.Option.ChoiceKind.*;
    53 import static com.sun.tools.javac.main.Option.OptionGroup.*;
    59 import static com.sun.tools.javac.main.Option.OptionGroup.*;
    54 import static com.sun.tools.javac.main.Option.OptionKind.*;
    60 import static com.sun.tools.javac.main.Option.OptionKind.*;
    55 
    61 
    56 /**
    62 /**
   259             if (target == null) {
   265             if (target == null) {
   260                 helper.error("err.invalid.target", operand);
   266                 helper.error("err.invalid.target", operand);
   261                 return true;
   267                 return true;
   262             }
   268             }
   263             return super.process(helper, option, operand);
   269             return super.process(helper, option, operand);
       
   270         }
       
   271     },
       
   272 
       
   273     RELEASE("-release", "opt.arg.release", "opt.release", STANDARD, BASIC) {
       
   274         @Override
       
   275         void help(Log log, OptionKind kind) {
       
   276             if (this.kind != kind)
       
   277                 return;
       
   278 
       
   279             Iterable<PlatformProvider> providers =
       
   280                     ServiceLoader.load(PlatformProvider.class, Arguments.class.getClassLoader());
       
   281             Set<String> platforms = StreamSupport.stream(providers.spliterator(), false)
       
   282                                                  .flatMap(provider -> StreamSupport.stream(provider.getSupportedPlatformNames()
       
   283                                                                                                    .spliterator(),
       
   284                                                                                            false))
       
   285                                                  .collect(Collectors.toCollection(TreeSet :: new));
       
   286 
       
   287             StringBuilder targets = new StringBuilder();
       
   288             String delim = "";
       
   289             for (String platform : platforms) {
       
   290                 targets.append(delim);
       
   291                 targets.append(platform);
       
   292                 delim = ", ";
       
   293             }
       
   294 
       
   295             log.printRawLines(WriterKind.NOTICE,
       
   296                     String.format(HELP_LINE_FORMAT,
       
   297                         super.helpSynopsis(log),
       
   298                         log.localize(PrefixKind.JAVAC, descrKey, targets.toString())));
   264         }
   299         }
   265     },
   300     },
   266 
   301 
   267     PROFILE("-profile", "opt.arg.profile", "opt.profile", STANDARD, BASIC) {
   302     PROFILE("-profile", "opt.arg.profile", "opt.profile", STANDARD, BASIC) {
   268         @Override
   303         @Override