langtools/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/api/JavadocTool.java
changeset 26266 2d24bda701dc
parent 25874 83c19f00452c
child 27379 5ae894733e09
equal deleted inserted replaced
26265:46aacfffd3b5 26266:2d24bda701dc
    45 
    45 
    46 import com.sun.tools.javac.api.ClientCodeWrapper;
    46 import com.sun.tools.javac.api.ClientCodeWrapper;
    47 import com.sun.tools.javac.file.JavacFileManager;
    47 import com.sun.tools.javac.file.JavacFileManager;
    48 import com.sun.tools.javac.util.ClientCodeException;
    48 import com.sun.tools.javac.util.ClientCodeException;
    49 import com.sun.tools.javac.util.Context;
    49 import com.sun.tools.javac.util.Context;
       
    50 import com.sun.tools.javac.util.DefinedBy;
       
    51 import com.sun.tools.javac.util.DefinedBy.Api;
    50 import com.sun.tools.javac.util.Log;
    52 import com.sun.tools.javac.util.Log;
    51 import com.sun.tools.javadoc.ToolOption;
    53 import com.sun.tools.javadoc.ToolOption;
    52 
    54 
    53 /**
    55 /**
    54  * Provides access to functionality specific to the JDK documentation tool,
    56  * Provides access to functionality specific to the JDK documentation tool,
    58  * If you write code that depends on this, you do so at your own
    60  * If you write code that depends on this, you do so at your own
    59  * risk.  This code and its internal interfaces are subject to change
    61  * risk.  This code and its internal interfaces are subject to change
    60  * or deletion without notice.</b></p>
    62  * or deletion without notice.</b></p>
    61  */
    63  */
    62 public class JavadocTool implements DocumentationTool {
    64 public class JavadocTool implements DocumentationTool {
    63     @Override
    65     @Override @DefinedBy(Api.COMPILER)
    64     public DocumentationTask getTask(
    66     public DocumentationTask getTask(
    65             Writer out,
    67             Writer out,
    66             JavaFileManager fileManager,
    68             JavaFileManager fileManager,
    67             DiagnosticListener<? super JavaFileObject> diagnosticListener,
    69             DiagnosticListener<? super JavaFileObject> diagnosticListener,
    68             Class<?> docletClass,
    70             Class<?> docletClass,
   119             throw new RuntimeException(ex.getCause());
   121             throw new RuntimeException(ex.getCause());
   120         }
   122         }
   121     }
   123     }
   122 
   124 
   123     // TODO: used shared static method in JavacFileManager
   125     // TODO: used shared static method in JavacFileManager
   124     @Override
   126     @Override @DefinedBy(Api.COMPILER)
   125     public StandardJavaFileManager getStandardFileManager(
   127     public StandardJavaFileManager getStandardFileManager(
   126             DiagnosticListener<? super JavaFileObject> diagnosticListener,
   128             DiagnosticListener<? super JavaFileObject> diagnosticListener,
   127             Locale locale,
   129             Locale locale,
   128             Charset charset) {
   130             Charset charset) {
   129         Context context = new Context();
   131         Context context = new Context();
   135                 : new PrintWriter(new OutputStreamWriter(System.err, charset), true);
   137                 : new PrintWriter(new OutputStreamWriter(System.err, charset), true);
   136         context.put(Log.outKey, pw);
   138         context.put(Log.outKey, pw);
   137         return new JavacFileManager(context, true, charset);
   139         return new JavacFileManager(context, true, charset);
   138     }
   140     }
   139 
   141 
   140     @Override
   142     @Override @DefinedBy(Api.COMPILER)
   141     public int run(InputStream in, OutputStream out, OutputStream err, String... arguments) {
   143     public int run(InputStream in, OutputStream out, OutputStream err, String... arguments) {
   142         PrintWriter err_pw = new PrintWriter(err == null ? System.err : err, true);
   144         PrintWriter err_pw = new PrintWriter(err == null ? System.err : err, true);
   143         PrintWriter out_pw = new PrintWriter(out == null ? System.out : out);
   145         PrintWriter out_pw = new PrintWriter(out == null ? System.out : out);
   144         try {
   146         try {
   145             String standardDocletName = "com.sun.tools.doclets.standard.Standard";
   147             String standardDocletName = "com.sun.tools.doclets.standard.Standard";
   150             err_pw.flush();
   152             err_pw.flush();
   151             out_pw.flush();
   153             out_pw.flush();
   152         }
   154         }
   153     }
   155     }
   154 
   156 
   155     @Override
   157     @Override @DefinedBy(Api.COMPILER)
   156     public Set<SourceVersion> getSourceVersions() {
   158     public Set<SourceVersion> getSourceVersions() {
   157         return Collections.unmodifiableSet(
   159         return Collections.unmodifiableSet(
   158                 EnumSet.range(SourceVersion.RELEASE_3, SourceVersion.latest()));
   160                 EnumSet.range(SourceVersion.RELEASE_3, SourceVersion.latest()));
   159     }
   161     }
   160 
   162 
   161     @Override
   163     @Override @DefinedBy(Api.COMPILER)
   162     public int isSupportedOption(String option) {
   164     public int isSupportedOption(String option) {
   163         if (option == null)
   165         if (option == null)
   164             throw new NullPointerException();
   166             throw new NullPointerException();
   165         for (ToolOption o: ToolOption.values()) {
   167         for (ToolOption o: ToolOption.values()) {
   166             if (o.opt.equals(option))
   168             if (o.opt.equals(option))