langtools/src/jdk.compiler/share/classes/com/sun/tools/javah/JavahTask.java
changeset 27225 8369cde9152a
parent 26266 2d24bda701dc
child 27226 53535e4e1b08
equal deleted inserted replaced
27224:228abfa87080 27225:8369cde9152a
    29 import java.io.FileNotFoundException;
    29 import java.io.FileNotFoundException;
    30 import java.io.IOException;
    30 import java.io.IOException;
    31 import java.io.OutputStream;
    31 import java.io.OutputStream;
    32 import java.io.PrintWriter;
    32 import java.io.PrintWriter;
    33 import java.io.Writer;
    33 import java.io.Writer;
       
    34 import java.nio.file.NoSuchFileException;
    34 import java.text.MessageFormat;
    35 import java.text.MessageFormat;
    35 import java.util.ArrayList;
    36 import java.util.ArrayList;
    36 import java.util.Arrays;
    37 import java.util.Arrays;
    37 import java.util.Collections;
    38 import java.util.Collections;
    38 import java.util.HashMap;
    39 import java.util.HashMap;
    48 import javax.annotation.processing.AbstractProcessor;
    49 import javax.annotation.processing.AbstractProcessor;
    49 import javax.annotation.processing.Messager;
    50 import javax.annotation.processing.Messager;
    50 import javax.annotation.processing.ProcessingEnvironment;
    51 import javax.annotation.processing.ProcessingEnvironment;
    51 import javax.annotation.processing.RoundEnvironment;
    52 import javax.annotation.processing.RoundEnvironment;
    52 import javax.annotation.processing.SupportedAnnotationTypes;
    53 import javax.annotation.processing.SupportedAnnotationTypes;
    53 
       
    54 import javax.lang.model.SourceVersion;
    54 import javax.lang.model.SourceVersion;
    55 import javax.lang.model.element.ExecutableElement;
    55 import javax.lang.model.element.ExecutableElement;
    56 import javax.lang.model.element.TypeElement;
    56 import javax.lang.model.element.TypeElement;
    57 import javax.lang.model.element.VariableElement;
    57 import javax.lang.model.element.VariableElement;
    58 import javax.lang.model.type.ArrayType;
    58 import javax.lang.model.type.ArrayType;
    60 import javax.lang.model.type.TypeMirror;
    60 import javax.lang.model.type.TypeMirror;
    61 import javax.lang.model.type.TypeVisitor;
    61 import javax.lang.model.type.TypeVisitor;
    62 import javax.lang.model.util.ElementFilter;
    62 import javax.lang.model.util.ElementFilter;
    63 import javax.lang.model.util.SimpleTypeVisitor9;
    63 import javax.lang.model.util.SimpleTypeVisitor9;
    64 import javax.lang.model.util.Types;
    64 import javax.lang.model.util.Types;
    65 
       
    66 import javax.tools.Diagnostic;
    65 import javax.tools.Diagnostic;
    67 import javax.tools.DiagnosticListener;
    66 import javax.tools.DiagnosticListener;
    68 import javax.tools.JavaCompiler;
    67 import javax.tools.JavaCompiler;
    69 import javax.tools.JavaCompiler.CompilationTask;
    68 import javax.tools.JavaCompiler.CompilationTask;
    70 import javax.tools.JavaFileManager;
    69 import javax.tools.JavaFileManager;
    71 import javax.tools.JavaFileObject;
    70 import javax.tools.JavaFileObject;
    72 import javax.tools.StandardJavaFileManager;
    71 import javax.tools.StandardJavaFileManager;
    73 import javax.tools.StandardLocation;
    72 import javax.tools.StandardLocation;
    74 import javax.tools.ToolProvider;
    73 import javax.tools.ToolProvider;
    75 import static javax.tools.Diagnostic.Kind.*;
       
    76 
    74 
    77 import com.sun.tools.javac.code.Symbol.CompletionFailure;
    75 import com.sun.tools.javac.code.Symbol.CompletionFailure;
    78 import com.sun.tools.javac.main.CommandLine;
    76 import com.sun.tools.javac.main.CommandLine;
    79 import com.sun.tools.javac.util.DefinedBy;
    77 import com.sun.tools.javac.util.DefinedBy;
    80 import com.sun.tools.javac.util.DefinedBy.Api;
    78 import com.sun.tools.javac.util.DefinedBy.Api;
       
    79 
       
    80 import static javax.tools.Diagnostic.Kind.*;
       
    81 
    81 
    82 
    82 /**
    83 /**
    83  * Javah generates support files for native methods.
    84  * Javah generates support files for native methods.
    84  * Parse commandline options and invokes javadoc to execute those commands.
    85  * Parse commandline options and invokes javadoc to execute those commands.
    85  *
    86  *
   418     private Iterable<String> expandAtArgs(Iterable<String> args) throws BadArgs {
   419     private Iterable<String> expandAtArgs(Iterable<String> args) throws BadArgs {
   419         try {
   420         try {
   420             List<String> l = new ArrayList<>();
   421             List<String> l = new ArrayList<>();
   421             for (String arg: args) l.add(arg);
   422             for (String arg: args) l.add(arg);
   422             return Arrays.asList(CommandLine.parse(l.toArray(new String[l.size()])));
   423             return Arrays.asList(CommandLine.parse(l.toArray(new String[l.size()])));
   423         } catch (FileNotFoundException e) {
   424         } catch (FileNotFoundException | NoSuchFileException e) {
   424             throw new BadArgs("at.args.file.not.found", e.getLocalizedMessage());
   425             throw new BadArgs("at.args.file.not.found", e.getLocalizedMessage());
   425         } catch (IOException e) {
   426         } catch (IOException e) {
   426             throw new BadArgs("at.args.io.exception", e.getLocalizedMessage());
   427             throw new BadArgs("at.args.io.exception", e.getLocalizedMessage());
   427         }
   428         }
   428     }
   429     }