com.sun.tools.javap
Class JavapTask

java.lang.Object
  extended by com.sun.tools.javap.JavapTask
All Implemented Interfaces:
DisassemblerTool.DisassemblerTask, java.util.concurrent.Callable<java.lang.Boolean>

public class JavapTask
extends java.lang.Object
implements DisassemblerTool.DisassemblerTask

"Main" class for javap, normally accessed from the command line via Main, or from JSR199 via DisassemblerTool.

This is NOT part of any API supported by Sun Microsystems. If you write code that depends on this, you do so at your own risk. This code and its internal interfaces are subject to change or deletion without notice.


Nested Class Summary
 class JavapTask.BadArgs
           
(package private) static class JavapTask.Option
           
private static class JavapTask.SizeInputStream
           
 
Field Summary
(package private)  java.util.Map<java.util.Locale,java.util.ResourceBundle> bundles
           
(package private)  java.util.List<java.lang.String> classes
           
(package private)  Context context
           
(package private)  DiagnosticListener<? super JavaFileObject> diagnosticListener
           
(package private) static int EXIT_ABNORMAL
          Result codes.
(package private) static int EXIT_CMDERR
          Result codes.
(package private) static int EXIT_ERROR
          Result codes.
(package private) static int EXIT_OK
          Result codes.
(package private) static int EXIT_SYSERR
          Result codes.
(package private)  JavaFileManager fileManager
           
(package private)  java.io.PrintWriter log
           
(package private)  Options options
           
private static java.lang.String progname
           
(package private) static JavapTask.Option[] recognizedOptions
           
(package private)  java.util.Locale task_locale
           
private static java.util.ResourceBundle versionRB
           
private static java.lang.String versionRBName
           
 
Constructor Summary
JavapTask()
           
JavapTask(java.io.Writer out, JavaFileManager fileManager, DiagnosticListener<? super JavaFileObject> diagnosticListener, java.lang.Iterable<java.lang.String> options, java.lang.Iterable<java.lang.String> classes)
           
 
Method Summary
 java.lang.Boolean call()
          Performs this compilation task.
private  Diagnostic<JavaFileObject> createDiagnostic(java.lang.String key, java.lang.Object... args)
           
private  JavaFileObject getClassFileObject(java.lang.String className)
           
private  JavaFileManager getDefaultFileManager(DiagnosticListener<? super JavaFileObject> dl, java.io.PrintWriter log)
           
private  DiagnosticListener<JavaFileObject> getDiagnosticListenerForStream(java.io.OutputStream s)
           
private  DiagnosticListener<JavaFileObject> getDiagnosticListenerForWriter(java.io.Writer w)
           
private  java.lang.String getMessage(java.util.Locale locale, java.lang.String key, java.lang.Object... args)
           
private  java.lang.String getMessage(java.lang.String key, java.lang.Object... args)
           
private static java.io.PrintWriter getPrintWriterForStream(java.io.OutputStream s)
           
private static java.io.PrintWriter getPrintWriterForWriter(java.io.Writer w)
           
private  void handleOption(java.lang.String name, java.util.Iterator<java.lang.String> rest)
           
private  void handleOptions(java.lang.Iterable<java.lang.String> args, boolean allowClasses)
           
 void handleOptions(java.lang.String[] args)
           
 boolean run()
           
(package private)  int run(java.lang.String[] args)
           
 void setDiagnosticListener(DiagnosticListener<? super JavaFileObject> dl)
           
 void setDiagnosticListener(java.io.OutputStream s)
           
 void setLocale(java.util.Locale locale)
          Set the locale to be applied when formatting diagnostics and other localized data.
 void setLog(java.io.OutputStream s)
           
 void setLog(java.io.PrintWriter log)
           
private  void showHelp()
           
private  void showVersion(boolean full)
           
private  java.lang.String version(java.lang.String key)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

recognizedOptions

static JavapTask.Option[] recognizedOptions

EXIT_OK

static final int EXIT_OK
Result codes.

See Also:
Constant Field Values

EXIT_ERROR

static final int EXIT_ERROR
Result codes.

See Also:
Constant Field Values

EXIT_CMDERR

static final int EXIT_CMDERR
Result codes.

See Also:
Constant Field Values

EXIT_SYSERR

static final int EXIT_SYSERR
Result codes.

See Also:
Constant Field Values

EXIT_ABNORMAL

static final int EXIT_ABNORMAL
Result codes.

See Also:
Constant Field Values

versionRBName

private static final java.lang.String versionRBName
See Also:
Constant Field Values

versionRB

private static java.util.ResourceBundle versionRB

context

Context context

fileManager

JavaFileManager fileManager

log

java.io.PrintWriter log

diagnosticListener

DiagnosticListener<? super JavaFileObject> diagnosticListener

classes

java.util.List<java.lang.String> classes

options

Options options

task_locale

java.util.Locale task_locale

bundles

java.util.Map<java.util.Locale,java.util.ResourceBundle> bundles

progname

private static final java.lang.String progname
See Also:
Constant Field Values
Constructor Detail

JavapTask

JavapTask()

JavapTask

JavapTask(java.io.Writer out,
          JavaFileManager fileManager,
          DiagnosticListener<? super JavaFileObject> diagnosticListener,
          java.lang.Iterable<java.lang.String> options,
          java.lang.Iterable<java.lang.String> classes)
Method Detail

setLocale

public void setLocale(java.util.Locale locale)
Description copied from interface: DisassemblerTool.DisassemblerTask
Set the locale to be applied when formatting diagnostics and other localized data.

Specified by:
setLocale in interface DisassemblerTool.DisassemblerTask
Parameters:
locale - the locale to apply; null means apply no locale

setLog

public void setLog(java.io.PrintWriter log)

setLog

public void setLog(java.io.OutputStream s)

getPrintWriterForStream

private static java.io.PrintWriter getPrintWriterForStream(java.io.OutputStream s)

getPrintWriterForWriter

private static java.io.PrintWriter getPrintWriterForWriter(java.io.Writer w)

setDiagnosticListener

public void setDiagnosticListener(DiagnosticListener<? super JavaFileObject> dl)

setDiagnosticListener

public void setDiagnosticListener(java.io.OutputStream s)

getDiagnosticListenerForStream

private DiagnosticListener<JavaFileObject> getDiagnosticListenerForStream(java.io.OutputStream s)

getDiagnosticListenerForWriter

private DiagnosticListener<JavaFileObject> getDiagnosticListenerForWriter(java.io.Writer w)

run

int run(java.lang.String[] args)

handleOptions

public void handleOptions(java.lang.String[] args)
                   throws JavapTask.BadArgs
Throws:
JavapTask.BadArgs

handleOptions

private void handleOptions(java.lang.Iterable<java.lang.String> args,
                           boolean allowClasses)
                    throws JavapTask.BadArgs
Throws:
JavapTask.BadArgs

handleOption

private void handleOption(java.lang.String name,
                          java.util.Iterator<java.lang.String> rest)
                   throws JavapTask.BadArgs
Throws:
JavapTask.BadArgs

call

public java.lang.Boolean call()
Description copied from interface: DisassemblerTool.DisassemblerTask
Performs this compilation task. The compilation may only be performed once. Subsequent calls to this method throw IllegalStateException.

Specified by:
call in interface DisassemblerTool.DisassemblerTask
Specified by:
call in interface java.util.concurrent.Callable<java.lang.Boolean>
Returns:
true if and only all the files compiled without errors; false otherwise

run

public boolean run()

getDefaultFileManager

private JavaFileManager getDefaultFileManager(DiagnosticListener<? super JavaFileObject> dl,
                                              java.io.PrintWriter log)

getClassFileObject

private JavaFileObject getClassFileObject(java.lang.String className)
                                   throws java.io.IOException
Throws:
java.io.IOException

showHelp

private void showHelp()

showVersion

private void showVersion(boolean full)

version

private java.lang.String version(java.lang.String key)

createDiagnostic

private Diagnostic<JavaFileObject> createDiagnostic(java.lang.String key,
                                                    java.lang.Object... args)

getMessage

private java.lang.String getMessage(java.lang.String key,
                                    java.lang.Object... args)

getMessage

private java.lang.String getMessage(java.util.Locale locale,
                                    java.lang.String key,
                                    java.lang.Object... args)