Class BinaryClass
- java.lang.Object
-
- org.glassfish.rmic.tools.java.ClassDefinition
-
- org.glassfish.rmic.tools.binaryclass.BinaryClass
-
- All Implemented Interfaces:
Constants,RuntimeConstants
public final class BinaryClass extends ClassDefinition implements Constants
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) BinaryAttributeattsprivate booleanbasicCheckDoneFlags used by basicCheck() to avoid duplicate calls.private booleanbasicChecking(package private) BinaryConstantPoolcpool(package private) java.util.Vector<ClassDeclaration>dependenciesprivate booleanhaveLoadedNested-
Fields inherited from class org.glassfish.rmic.tools.java.ClassDefinition
classContext, declaration, documentation, doInheritanceChecks, error, firstMember, innerClassMember, interfaceIds, interfaces, lastMember, localName, modifiers, nestError, outerClass, outerMember, references, referencesFrozen, resolved, source, superClass, superClassId, supersCheckStarted, where
-
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 Modifier Constructor Description privateBinaryClass(java.lang.Object source, ClassDeclaration declaration, int modifiers, ClassDeclaration superClass, ClassDeclaration[] interfaces, java.util.Vector<ClassDeclaration> dependencies)Constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddDependency(ClassDeclaration c)Add a dependencyprotected voidbasicCheck(Environment env)Ready a BinaryClass for further checking.byte[]getAttribute(Identifier name)Get a class attributeBinaryConstantPoolgetConstants()Get the constant pooljava.util.Iterator<ClassDeclaration>getDependencies()private static intgetMaxSupportedClassVersion()private voidinitInner(ClassDefinition outerClass, int mods)private voidinitInnerClasses(Environment env, byte[] data, int flags)private voidinitOuter(ClassDefinition innerClass, int mods)static BinaryClassload(Environment env, java.io.DataInputStream in, int mask)voidloadNested(Environment env)Called when an environment ties a binary definition to a declaration.private voidloadNested(Environment env, int flags)voidwrite(Environment env, java.io.OutputStream out)Write the class out to a given stream.-
Methods inherited from class org.glassfish.rmic.tools.java.ClassDefinition
addLocalClass, addMember, addMember, addMirandaMethods, addModifiers, canAccess, canAccess, check, checkLocalClass, cleanup, collectInheritedMethods, containsDeprecated, diagnoseMismatch, enclosingClassOf, extendsCanAccess, findAnyMethod, findMethod, findOuterMember, getAccessMember, getClassContext, getClassDeclaration, getClassLiteralLookup, getError, getFirstMatch, getFirstMember, getInnerClass, getInnerClassMember, getInterfaces, getLocalClass, getLocalName, getMethods, getMethods, getModifiers, getName, getNestError, getOuterClass, getPermanentlyAbstractMethods, getReference, getReferences, getReferencesFrozen, getSource, getSuperClass, getSuperClass, getTopClass, getType, getUpdateMember, getVariable, getWhere, hasConstructor, implementedBy, inlineLocalClass, inSamePackage, isAbstract, isAnonymous, isClass, isDeprecated, isFinal, isInnerClass, isInsideLocal, isInterface, isLocal, isMember, isPackagePrivate, isPrivate, isProtected, isPublic, isStatic, isSynthetic, isTopLevel, matchAnonConstructor, matchMethod, matchMethod, mustBeAbstract, noteUsedBy, permitInlinedAccess, permitInlinedAccess, print, protectedAccess, referencesMustNotBeFrozen, reportDeprecated, resolveInnerClass, resolveName, resolveTypeStructure, setError, setLocalName, setOuterClass, setOuterMember, subClassOf, subModifiers, superClassOf, toString, turnOffInheritanceChecks
-
-
-
-
Field Detail
-
cpool
BinaryConstantPool cpool
-
atts
BinaryAttribute atts
-
dependencies
java.util.Vector<ClassDeclaration> dependencies
-
haveLoadedNested
private boolean haveLoadedNested
-
basicCheckDone
private boolean basicCheckDone
Flags used by basicCheck() to avoid duplicate calls. (Part of fix for 4105911)
-
basicChecking
private boolean basicChecking
-
-
Constructor Detail
-
BinaryClass
private BinaryClass(java.lang.Object source, ClassDeclaration declaration, int modifiers, ClassDeclaration superClass, ClassDeclaration[] interfaces, java.util.Vector<ClassDeclaration> dependencies)Constructor
-
-
Method Detail
-
basicCheck
protected void basicCheck(Environment env) throws ClassNotFound
Ready a BinaryClass for further checking. Note that, until recently, BinaryClass relied on the default basicCheck() provided by ClassDefinition. The definition here has been added to ensure that the information generated by collectInheritedMethods is available for BinaryClasses.- Overrides:
basicCheckin classClassDefinition- Throws:
ClassNotFound
-
load
public static BinaryClass load(Environment env, java.io.DataInputStream in, int mask) throws java.io.IOException
- Throws:
java.io.IOException
-
getMaxSupportedClassVersion
private static int getMaxSupportedClassVersion()
-
loadNested
public void loadNested(Environment env)
Called when an environment ties a binary definition to a declaration. At this point, auxiliary definitions may be loaded.- Overrides:
loadNestedin classClassDefinition
-
loadNested
private void loadNested(Environment env, int flags)
-
initInnerClasses
private void initInnerClasses(Environment env, byte[] data, int flags) throws java.io.IOException
- Throws:
java.io.IOException
-
initInner
private void initInner(ClassDefinition outerClass, int mods)
-
initOuter
private void initOuter(ClassDefinition innerClass, int mods)
-
write
public void write(Environment env, java.io.OutputStream out) throws java.io.IOException
Write the class out to a given stream. This function mirrors the loader.- Throws:
java.io.IOException
-
getDependencies
public java.util.Iterator<ClassDeclaration> getDependencies()
- Overrides:
getDependenciesin classClassDefinition
-
addDependency
public void addDependency(ClassDeclaration c)
Add a dependency- Overrides:
addDependencyin classClassDefinition
-
getConstants
public BinaryConstantPool getConstants()
Get the constant pool
-
getAttribute
public byte[] getAttribute(Identifier name)
Get a class attribute
-
-