langtools/src/share/classes/com/sun/tools/javah/JavahTask.java
changeset 22163 3651128c74eb
parent 18898 0eab5f5e3d1d
child 25690 b1dac768ab79
equal deleted inserted replaced
22162:3b3e23e67329 22163:3651128c74eb
   260             handleOptions(options, false);
   260             handleOptions(options, false);
   261         } catch (BadArgs e) {
   261         } catch (BadArgs e) {
   262             throw new IllegalArgumentException(e.getMessage());
   262             throw new IllegalArgumentException(e.getMessage());
   263         }
   263         }
   264 
   264 
   265         this.classes = new ArrayList<String>();
   265         this.classes = new ArrayList<>();
   266         if (classes != null) {
   266         if (classes != null) {
   267             for (String classname: classes) {
   267             for (String classname: classes) {
   268                 classname.getClass(); // null-check
   268                 classname.getClass(); // null-check
   269                 this.classes.add(classname);
   269                 this.classes.add(classname);
   270             }
   270             }
   365             String arg = iter.next();
   365             String arg = iter.next();
   366             if (arg.startsWith("-"))
   366             if (arg.startsWith("-"))
   367                 handleOption(arg, iter);
   367                 handleOption(arg, iter);
   368             else if (allowClasses) {
   368             else if (allowClasses) {
   369                 if (classes == null)
   369                 if (classes == null)
   370                     classes = new ArrayList<String>();
   370                     classes = new ArrayList<>();
   371                 classes.add(arg);
   371                 classes.add(arg);
   372                 while (iter.hasNext())
   372                 while (iter.hasNext())
   373                     classes.add(iter.next());
   373                     classes.add(iter.next());
   374             } else
   374             } else
   375                 throw new BadArgs("err.unknown.option", arg).showUsage(true);
   375                 throw new BadArgs("err.unknown.option", arg).showUsage(true);
   412         throw new BadArgs("err.unknown.option", name).showUsage(true);
   412         throw new BadArgs("err.unknown.option", name).showUsage(true);
   413     }
   413     }
   414 
   414 
   415     private Iterable<String> expandAtArgs(Iterable<String> args) throws BadArgs {
   415     private Iterable<String> expandAtArgs(Iterable<String> args) throws BadArgs {
   416         try {
   416         try {
   417             List<String> l = new ArrayList<String>();
   417             List<String> l = new ArrayList<>();
   418             for (String arg: args) l.add(arg);
   418             for (String arg: args) l.add(arg);
   419             return Arrays.asList(CommandLine.parse(l.toArray(new String[l.size()])));
   419             return Arrays.asList(CommandLine.parse(l.toArray(new String[l.size()])));
   420         } catch (FileNotFoundException e) {
   420         } catch (FileNotFoundException e) {
   421             throw new BadArgs("at.args.file.not.found", e.getLocalizedMessage());
   421             throw new BadArgs("at.args.file.not.found", e.getLocalizedMessage());
   422         } catch (IOException e) {
   422         } catch (IOException e) {
   495 
   495 
   496         if (fileManager instanceof JavahFileManager)
   496         if (fileManager instanceof JavahFileManager)
   497             ((JavahFileManager) fileManager).setSymbolFileEnabled(false);
   497             ((JavahFileManager) fileManager).setSymbolFileEnabled(false);
   498 
   498 
   499         JavaCompiler c = ToolProvider.getSystemJavaCompiler();
   499         JavaCompiler c = ToolProvider.getSystemJavaCompiler();
   500         List<String> opts = new ArrayList<String>();
   500         List<String> opts = new ArrayList<>();
   501         opts.add("-proc:only");
   501         opts.add("-proc:only");
   502         opts.addAll(javac_extras);
   502         opts.addAll(javac_extras);
   503         CompilationTask t = c.getTask(log, fileManager, diagnosticListener, opts, classes, null);
   503         CompilationTask t = c.getTask(log, fileManager, diagnosticListener, opts, classes, null);
   504         JavahProcessor p = new JavahProcessor(g);
   504         JavahProcessor p = new JavahProcessor(g);
   505         t.setProcessors(Collections.singleton(p));
   505         t.setProcessors(Collections.singleton(p));
   509             throw new Util.Exit(p.exit);
   509             throw new Util.Exit(p.exit);
   510         return ok;
   510         return ok;
   511     }
   511     }
   512 
   512 
   513     private List<File> pathToFiles(String path) {
   513     private List<File> pathToFiles(String path) {
   514         List<File> files = new ArrayList<File>();
   514         List<File> files = new ArrayList<>();
   515         for (String f: path.split(File.pathSeparator)) {
   515         for (String f: path.split(File.pathSeparator)) {
   516             if (f.length() > 0)
   516             if (f.length() > 0)
   517                 files.add(new File(f));
   517                 files.add(new File(f));
   518         }
   518         }
   519         return files;
   519         return files;
   616     private String getMessage(Locale locale, String key, Object... args) {
   616     private String getMessage(Locale locale, String key, Object... args) {
   617         if (bundles == null) {
   617         if (bundles == null) {
   618             // could make this a HashMap<Locale,SoftReference<ResourceBundle>>
   618             // could make this a HashMap<Locale,SoftReference<ResourceBundle>>
   619             // and for efficiency, keep a hard reference to the bundle for the task
   619             // and for efficiency, keep a hard reference to the bundle for the task
   620             // locale
   620             // locale
   621             bundles = new HashMap<Locale, ResourceBundle>();
   621             bundles = new HashMap<>();
   622         }
   622         }
   623 
   623 
   624         if (locale == null)
   624         if (locale == null)
   625             locale = Locale.getDefault();
   625             locale = Locale.getDefault();
   626 
   626 
   655     boolean fullVersion;
   655     boolean fullVersion;
   656     boolean jni;
   656     boolean jni;
   657     boolean llni;
   657     boolean llni;
   658     boolean doubleAlign;
   658     boolean doubleAlign;
   659     boolean force;
   659     boolean force;
   660     Set<String> javac_extras = new LinkedHashSet<String>();
   660     Set<String> javac_extras = new LinkedHashSet<>();
   661 
   661 
   662     PrintWriter log;
   662     PrintWriter log;
   663     JavaFileManager fileManager;
   663     JavaFileManager fileManager;
   664     DiagnosticListener<? super JavaFileObject> diagnosticListener;
   664     DiagnosticListener<? super JavaFileObject> diagnosticListener;
   665     Locale task_locale;
   665     Locale task_locale;
   709 
   709 
   710             return true;
   710             return true;
   711         }
   711         }
   712 
   712 
   713         private Set<TypeElement> getAllClasses(Set<? extends TypeElement> classes) {
   713         private Set<TypeElement> getAllClasses(Set<? extends TypeElement> classes) {
   714             Set<TypeElement> allClasses = new LinkedHashSet<TypeElement>();
   714             Set<TypeElement> allClasses = new LinkedHashSet<>();
   715             getAllClasses0(classes, allClasses);
   715             getAllClasses0(classes, allClasses);
   716             return allClasses;
   716             return allClasses;
   717         }
   717         }
   718 
   718 
   719         private void getAllClasses0(Iterable<? extends TypeElement> classes, Set<TypeElement> allClasses) {
   719         private void getAllClasses0(Iterable<? extends TypeElement> classes, Set<TypeElement> allClasses) {