Package org.glassfish.rmic.tools.tree
Class LocalMember
java.lang.Object
org.glassfish.rmic.tools.java.MemberDefinition
org.glassfish.rmic.tools.tree.LocalMember
- All Implemented Interfaces:
Constants
,RuntimeConstants
A local Field
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
FieldsModifier and TypeFieldDescription(package private) int
The number of the variable(package private) LocalMember
Used by copyInline to record the original of this copy.(package private) LocalMember
The previous local variable, this list is used to build a nested context of local variables.(package private) int
Some statistics(package private) int
An indication of which block the variable comes from.(package private) int
Fields inherited from class org.glassfish.rmic.tools.java.MemberDefinition
accessPeer, clazz, documentation, exp, expIds, innerClass, modifiers, name, nextMatch, nextMember, superAccessMethod, type, value, 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
ConstructorsConstructorDescriptionLocalMember
(long where, ClassDefinition clazz, int modifiers, Type type, Identifier name) ConstructorLocalMember
(ClassDefinition innerClass) Constructor for a block-inner class.LocalMember
(MemberDefinition field) Constructor for a proxy to an instance or class variable. -
Method Summary
Modifier and TypeMethodDescriptionstatic LocalMember[]
copyArguments
(Context ctx, MemberDefinition field) May inline copies of all the arguments of the given method.copyInline
(Context ctx) Make a copy of this field, which is an argument to a method or constructor.static void
doneWithArguments
(Context ctx, LocalMember[] res) Call this when finished with the result of a copyArguments() call.(package private) LocalMember
(package private) MemberDefinition
Returns the previous result of copyInline(ctx).(package private) final MemberDefinition
Is this a proxy for the given field?int
Value number for vsets, or -1 if none.int
Return current nesting level, i.e., the value of 'scopeNumber'.getValue
(Environment env) Return valueboolean
isInlineable
(Environment env, boolean fromFinal) Is this local variable's value stable and simple enough to be directly substituted for occurrences of the variable itself? (This decision is made by VarDeclarationStatement.inline().)boolean
isLocal()
Special checksboolean
isUsed()
Check if used(package private) void
(package private) void
Methods inherited from class org.glassfish.rmic.tools.java.MemberDefinition
addModifiers, canReach, check, check, checkMeet, checkOverride, cleanup, code, codeInit, couldOverride, getAccessMethodTarget, getAccessUpdateMember, getArguments, getClassDeclaration, getClassDefinition, getDefiningClassDeclaration, getDocumentation, getExceptionIds, getExceptions, getInitialValue, getInnerClass, getMemberValueString, getModifiers, getName, getNextMatch, getNextMember, getTopClass, getType, getValue, getWhere, isAbstract, isAccessMethod, isBlankFinal, isConstant, isConstructor, isDeprecated, isFinal, isInitializer, isInnerClass, isMethod, isNative, isNeverNull, isPackagePrivate, isPrivate, isProtected, isPublic, isStatic, isStrict, isSuperAccessMethod, isSynchronized, isSynthetic, isTransient, isUplevelValue, isVariable, isVolatile, makeProxyMember, print, reportDeprecated, resolveTypeStructure, sameReturnType, setAccessMethodTarget, setAccessUpdateMember, setIsSuperAccessMethod, setValue, subModifiers, toString
-
Field Details
-
number
int numberThe number of the variable -
readcount
int readcountSome statistics -
writecount
int writecount -
scopeNumber
int scopeNumberAn indication of which block the variable comes from. Helps identify uplevel references. -
originalOfCopy
LocalMember originalOfCopyUsed by copyInline to record the original of this copy. -
prev
LocalMember prevThe previous local variable, this list is used to build a nested context of local variables.
-
-
Constructor Details
-
LocalMember
Constructor -
LocalMember
Constructor for a block-inner class. -
LocalMember
LocalMember(MemberDefinition field) Constructor for a proxy to an instance or class variable.
-
-
Method Details
-
getScopeNumber
public int getScopeNumber()Return current nesting level, i.e., the value of 'scopeNumber'. Made public for the benefit of 'ClassDefinition.resolveName'. -
getMember
Is this a proxy for the given field? -
isLocal
public boolean isLocal()Special checks- Overrides:
isLocal
in classMemberDefinition
-
copyInline
Make a copy of this field, which is an argument to a method or constructor. Arrange so that when occurrences of the field are encountered in an immediately following copyInline() operation, the expression nodes will replace the original argument by the fresh copy. -
getCurrentInlineCopy
Returns the previous result of copyInline(ctx). Must be called in the course of an Expression.copyInline() operation that immediately follows the LocalMember.copyInline(). Return "this" if there is no such copy. -
copyArguments
May inline copies of all the arguments of the given method. -
doneWithArguments
Call this when finished with the result of a copyArguments() call. -
isInlineable
Is this local variable's value stable and simple enough to be directly substituted for occurrences of the variable itself? (This decision is made by VarDeclarationStatement.inline().)- Overrides:
isInlineable
in classMemberDefinition
-
isUsed
public boolean isUsed()Check if used -
getAccessVar
LocalMember getAccessVar() -
setAccessVar
-
getAccessVarMember
MemberDefinition getAccessVarMember() -
setAccessVarMember
-
getValue
Return value- Overrides:
getValue
in classMemberDefinition
-
getNumber
Value number for vsets, or -1 if none.
-