Package org.glassfish.rmic
Class Main
- java.lang.Object
-
- org.glassfish.rmic.Main
-
- All Implemented Interfaces:
Constants
,Constants
,RuntimeConstants
- Direct Known Subclasses:
Main
public class Main extends java.lang.Object implements Constants
Main "rmic" program. WARNING: The contents of this source file are not part of any supported API. Code that depends on them does so at its own risk: they are subject to change or removal without notice.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.util.Vector<java.lang.String>
classes
(package private) java.lang.String
classPathString
(package private) java.io.File
destDir
(package private) java.lang.Class<? extends BatchEnvironment>
environmentClass
(package private) int
flags
(package private) java.lang.String[]
generatorArgs
(package private) java.util.Vector<Generator>
generators
(package private) boolean
iiopGeneration
(package private) boolean
keepGenerated
(package private) boolean
nocompile
(package private) boolean
nowrite
(package private) java.io.OutputStream
out
The stream where error message are printed.(package private) java.lang.String
program
Name of the program.private static java.util.ResourceBundle
resources
private static java.util.ResourceBundle
resourcesExt
private static boolean
resourcesInitialized
(package private) java.lang.String
sourcePathArg
(package private) boolean
status
(package private) java.lang.String
sysClassPathArg
(package private) long
tm
-
Fields inherited from interface org.glassfish.rmic.Constants
idRemote, idRemoteException
-
Fields inherited from interface org.glassfish.rmic.tools.java.Constants
ABSTRACT, ACCM_CLASS, ACCM_FIELD, ACCM_INNERCLASS, ACCM_MEMBER, ACCM_METHOD, ADD, AND, ARRAY, ARRAYACCESS, ASGADD, ASGBITAND, ASGBITOR, ASGBITXOR, ASGDIV, ASGLSHIFT, ASGMUL, ASGREM, ASGRSHIFT, ASGSUB, ASGURSHIFT, ASSIGN, ATT_ALL, ATT_ALLCLASSES, ATT_CODE, BITAND, BITNOT, BITOR, BITXOR, BOOLEAN, BOOLEANVAL, BREAK, BYTE, BYTEVAL, CASE, CAST, CATCH, CHAR, CHARVAL, CLASS, COLON, COMMA, COMMENT, COND, CONST, CONTINUE, CONVERT, CS_BINARY, CS_CHECKED, CS_COMPILED, CS_NOTFOUND, CS_PARSED, CS_SOURCE, CS_UNDECIDED, CS_UNDEFINED, CT_BLOCK, CT_BRANCH_FALSE, CT_BRANCH_TRUE, CT_CASE, CT_FIKT_METHOD, CT_FIKT_RET, CT_FIRST_KIND, CT_LAST_KIND, CT_METHOD, CT_SWITH_WO_DEF, DEC, DECLARATION, DEFAULT, DIV, DO, DOUBLE, DOUBLEVAL, ELSE, EQ, ERROR, EXPR, EXPRESSION, EXTENDS, F_COVDATA, F_COVERAGE, F_DEBUG_LINES, F_DEBUG_SOURCE, F_DEBUG_VARS, F_DEPENDENCIES, F_DEPRECATION, F_DUMP, F_ERRORSREPORTED, F_OPT, F_OPT_INTERCLASS, F_PRINT_DEPENDENCIES, F_STRICTDEFAULT, F_VERBOSE, F_VERSION12, F_WARNINGS, FALSE, FIELD, FINAL, FINALLY, FLOAT, FLOATVAL, FOR, GE, GOTO, GT, idAppend, idClass, idClassInit, idClone, idCode, idConstantValue, idCoverageTable, idDeprecated, idDocumentation, IDENT, idExceptions, idFinallyReturnValue, idGetClass, idInit, idInnerClasses, idJavaIoSerializable, idJavaLang, idJavaLangClass, idJavaLangCloneable, idJavaLangError, idJavaLangException, idJavaLangObject, idJavaLangRuntimeException, idJavaLangString, idJavaLangStringBuffer, idJavaLangThrowable, idLength, idLineNumberTable, idLocalVariableTable, idNew, idNull, idSourceFile, idStar, idSuper, idSynthetic, idThis, idToString, idTYPE, idValueOf, IF, IMPLEMENTS, IMPORT, INC, INLINEMETHOD, INLINENEWINSTANCE, INLINERETURN, INSTANCEOF, INT, INTERFACE, INTVAL, LBRACE, LE, LENGTH, LONG, LONGVAL, LPAREN, LSHIFT, LSQBRACKET, LT, M_ABSTRACT, M_ANONYMOUS, M_DEPRECATED, M_FINAL, M_INLINEABLE, M_INTERFACE, M_LOCAL, M_NATIVE, M_PRIVATE, M_PROTECTED, M_PUBLIC, M_STATIC, M_STRICTFP, M_SYNCHRONIZED, M_SYNTHETIC, M_TRANSIENT, M_VOLATILE, MAXFILESIZE, MAXLINENUMBER, METHOD, MM_CLASS, MM_FIELD, MM_MEMBER, MM_METHOD, MUL, NATIVE, NE, NEG, NEW, NEWARRAY, NEWFROMNAME, NEWINSTANCE, NOT, NULL, opNames, opPrecedence, OR, PACKAGE, paraDeprecated, POS, POSTDEC, POSTINC, PREDEC, prefixAccess, prefixArray, prefixClass, prefixLoc, prefixThis, prefixVal, PREINC, PRIVATE, PROTECTED, PUBLIC, QUESTIONMARK, RBRACE, REM, RETURN, RPAREN, RSHIFT, RSQBRACKET, SEMICOLON, SHORT, SHORTVAL, SIG_INNERCLASS, SIGC_INNERCLASS, STAT, STATIC, STRICTFP, STRINGVAL, SUB, SUPER, SWITCH, SYNCHRONIZED, TC_ARRAY, TC_BOOLEAN, TC_BYTE, TC_CHAR, TC_CLASS, TC_DOUBLE, TC_ERROR, TC_FLOAT, TC_INT, TC_LONG, TC_METHOD, TC_NULL, TC_SHORT, TC_VOID, THIS, THROW, THROWS, TM_ARRAY, TM_BOOLEAN, TM_BYTE, TM_CHAR, TM_CLASS, TM_DOUBLE, TM_ERROR, TM_FLOAT, TM_INT, TM_INT32, TM_INTEGER, TM_LONG, TM_METHOD, TM_NULL, TM_NUM32, TM_NUM64, TM_NUMBER, TM_REAL, TM_REFERENCE, TM_SHORT, TM_VOID, tracing, TRANSIENT, TRUE, TRY, TYPE, URSHIFT, VARDECLARATION, VOID, VOLATILE, WHEREOFFSETBITS, WHILE
-
Fields inherited from interface org.glassfish.rmic.tools.java.RuntimeConstants
ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, CONSTANT_CLASS, CONSTANT_DOUBLE, CONSTANT_FIELD, CONSTANT_FLOAT, CONSTANT_INTEGER, CONSTANT_INTERFACEMETHOD, CONSTANT_INVOKEDYNAMIC, CONSTANT_LONG, CONSTANT_METHOD, CONSTANT_METHODHANDLE, CONSTANT_METHODTYPE, CONSTANT_NAMEANDTYPE, CONSTANT_STRING, CONSTANT_UNICODE, CONSTANT_UTF8, JAVA_DEFAULT_MINOR_VERSION, JAVA_DEFAULT_VERSION, JAVA_MAGIC, JAVA_MAX_SUPPORTED_MINOR_VERSION, JAVA_MAX_SUPPORTED_VERSION, JAVA_MIN_SUPPORTED_VERSION, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_breakpoint, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dead, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_invokedynamic, opc_invokeinterface, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_label, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_try, opc_wide, opcLengths, opcNames, SIG_ARRAY, SIG_BOOLEAN, SIG_BYTE, SIG_CHAR, SIG_CLASS, SIG_DOUBLE, SIG_ENDCLASS, SIG_ENDMETHOD, SIG_FLOAT, SIG_INT, SIG_LONG, SIG_METHOD, SIG_PACKAGE, SIG_SHORT, SIG_VOID, SIGC_ARRAY, SIGC_BOOLEAN, SIGC_BYTE, SIGC_CHAR, SIGC_CLASS, SIGC_DOUBLE, SIGC_ENDCLASS, SIGC_ENDMETHOD, SIGC_FLOAT, SIGC_INT, SIGC_LONG, SIGC_METHOD, SIGC_PACKAGE, SIGC_SHORT, SIGC_VOID, T_BOOLEAN, T_BYTE, T_CHAR, T_CLASS, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT
-
-
Constructor Summary
Constructors Constructor Description Main(java.io.OutputStream out, java.lang.String program)
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Generator
addGenerator(java.lang.String arg)
Instantiate and add a generator to the generators array.protected boolean
checkGeneratorArg(java.lang.String[] argv, int currentIndex)
If this argument is for a generator, instantiate it, call parseArgs(...) and add generator to generators vector.boolean
compile(java.lang.String[] argv)
Run the compilervoid
compileAllClasses(BatchEnvironment env)
boolean
compileClass(ClassDeclaration c, java.io.ByteArrayOutputStream buf, BatchEnvironment env)
(package private) boolean
displayErrors(BatchEnvironment env)
private boolean
doCompile()
Do the compile with the switches and files already suppliedvoid
error(java.lang.String msg)
Top level error message.void
error(java.lang.String msg, java.lang.String arg1)
void
error(java.lang.String msg, java.lang.String arg1, java.lang.String arg2)
(package private) void
generateClass(BatchEnvironment env, Identifier implClassName)
private void
generateClasses(BatchEnvironment env)
protected java.lang.String[]
getArray(java.lang.String name, boolean mustExist)
Grab a resource string and parse it into an array of strings.(package private) static Identifier
getClassIdentifier(BatchEnvironment env, java.lang.String className)
java.io.File
getDestinationDir()
Get the destination directory.BatchEnvironment
getEnv()
Get the correct type of BatchEnvironmentprivate java.lang.String
getErrorSummary(BatchEnvironment env)
(package private) java.lang.String[]
getGeneratedClassNames(BatchEnvironment environment)
static java.lang.String
getString(java.lang.String key)
Return the string value of a named resource in the rmic.properties resource bundle.static java.lang.String
getText(java.lang.String key)
static java.lang.String
getText(java.lang.String key, int num)
static java.lang.String
getText(java.lang.String key, java.lang.String arg0)
static java.lang.String
getText(java.lang.String key, java.lang.String arg0, java.lang.String arg1)
static java.lang.String
getText(java.lang.String key, java.lang.String arg0, java.lang.String arg1, java.lang.String arg2)
private java.lang.String
getWarningSummary(BatchEnvironment env)
private static void
initResources()
static void
main(java.lang.String[] argv)
Main programvoid
output(java.lang.String msg)
Output a message.boolean
parseArgs(java.lang.String... argv)
Parse the arguments for compile.void
usage()
Usage
-
-
-
Field Detail
-
sourcePathArg
java.lang.String sourcePathArg
-
sysClassPathArg
java.lang.String sysClassPathArg
-
classPathString
java.lang.String classPathString
-
destDir
java.io.File destDir
-
flags
int flags
-
tm
long tm
-
classes
java.util.Vector<java.lang.String> classes
-
nowrite
boolean nowrite
-
nocompile
boolean nocompile
-
keepGenerated
boolean keepGenerated
-
status
boolean status
-
generatorArgs
java.lang.String[] generatorArgs
-
generators
java.util.Vector<Generator> generators
-
environmentClass
java.lang.Class<? extends BatchEnvironment> environmentClass
-
iiopGeneration
boolean iiopGeneration
-
program
java.lang.String program
Name of the program.
-
out
java.io.OutputStream out
The stream where error message are printed.
-
resourcesInitialized
private static boolean resourcesInitialized
-
resources
private static java.util.ResourceBundle resources
-
resourcesExt
private static java.util.ResourceBundle resourcesExt
-
-
Method Detail
-
output
public void output(java.lang.String msg)
Output a message.
-
error
public void error(java.lang.String msg)
Top level error message. This method is called when the environment could not be set up yet.
-
error
public void error(java.lang.String msg, java.lang.String arg1)
-
error
public void error(java.lang.String msg, java.lang.String arg1, java.lang.String arg2)
-
usage
public void usage()
Usage
-
compile
public boolean compile(java.lang.String[] argv)
Run the compiler
-
getDestinationDir
public java.io.File getDestinationDir()
Get the destination directory.
-
parseArgs
public boolean parseArgs(java.lang.String... argv)
Parse the arguments for compile.
-
checkGeneratorArg
protected boolean checkGeneratorArg(java.lang.String[] argv, int currentIndex)
If this argument is for a generator, instantiate it, call parseArgs(...) and add generator to generators vector. Returns false on error.
-
addGenerator
protected Generator addGenerator(java.lang.String arg)
Instantiate and add a generator to the generators array.
-
getArray
protected java.lang.String[] getArray(java.lang.String name, boolean mustExist)
Grab a resource string and parse it into an array of strings. Assumes comma separated list.- Parameters:
name
- The resource name.mustExist
- If true, throws error if resource does not exist. If false and resource does not exist, returns zero element array.
-
getEnv
public BatchEnvironment getEnv()
Get the correct type of BatchEnvironment
-
doCompile
private boolean doCompile()
Do the compile with the switches and files already supplied
-
generateClasses
private void generateClasses(BatchEnvironment env)
-
generateClass
void generateClass(BatchEnvironment env, Identifier implClassName)
-
displayErrors
boolean displayErrors(BatchEnvironment env)
-
getErrorSummary
private java.lang.String getErrorSummary(BatchEnvironment env)
-
getWarningSummary
private java.lang.String getWarningSummary(BatchEnvironment env)
-
getClassIdentifier
static Identifier getClassIdentifier(BatchEnvironment env, java.lang.String className)
-
compileAllClasses
public void compileAllClasses(BatchEnvironment env) throws ClassNotFound, java.io.IOException, java.lang.InterruptedException
- Throws:
ClassNotFound
java.io.IOException
java.lang.InterruptedException
-
compileClass
public boolean compileClass(ClassDeclaration c, java.io.ByteArrayOutputStream buf, BatchEnvironment env) throws ClassNotFound, java.io.IOException, java.lang.InterruptedException
- Throws:
ClassNotFound
java.io.IOException
java.lang.InterruptedException
-
main
public static void main(java.lang.String[] argv)
Main program
-
getString
public static java.lang.String getString(java.lang.String key)
Return the string value of a named resource in the rmic.properties resource bundle. If the resource is not found, null is returned.
-
initResources
private static void initResources()
-
getText
public static java.lang.String getText(java.lang.String key)
-
getText
public static java.lang.String getText(java.lang.String key, int num)
-
getText
public static java.lang.String getText(java.lang.String key, java.lang.String arg0)
-
getText
public static java.lang.String getText(java.lang.String key, java.lang.String arg0, java.lang.String arg1)
-
getText
public static java.lang.String getText(java.lang.String key, java.lang.String arg0, java.lang.String arg1, java.lang.String arg2)
-
getGeneratedClassNames
java.lang.String[] getGeneratedClassNames(BatchEnvironment environment)
-
-