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) BinaryAttribute
atts
private boolean
basicCheckDone
Flags used by basicCheck() to avoid duplicate calls.private boolean
basicChecking
(package private) BinaryConstantPool
cpool
(package private) java.util.Vector<ClassDeclaration>
dependencies
private boolean
haveLoadedNested
-
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 private
BinaryClass(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 void
addDependency(ClassDeclaration c)
Add a dependencyprotected void
basicCheck(Environment env)
Ready a BinaryClass for further checking.byte[]
getAttribute(Identifier name)
Get a class attributeBinaryConstantPool
getConstants()
Get the constant pooljava.util.Iterator<ClassDeclaration>
getDependencies()
private static int
getMaxSupportedClassVersion()
private void
initInner(ClassDefinition outerClass, int mods)
private void
initInnerClasses(Environment env, byte[] data, int flags)
private void
initOuter(ClassDefinition innerClass, int mods)
static BinaryClass
load(Environment env, java.io.DataInputStream in, int mask)
void
loadNested(Environment env)
Called when an environment ties a binary definition to a declaration.private void
loadNested(Environment env, int flags)
void
write(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:
basicCheck
in 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:
loadNested
in 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:
getDependencies
in classClassDefinition
-
addDependency
public void addDependency(ClassDeclaration c)
Add a dependency- Overrides:
addDependency
in classClassDefinition
-
getConstants
public BinaryConstantPool getConstants()
Get the constant pool
-
getAttribute
public byte[] getAttribute(Identifier name)
Get a class attribute
-
-