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
public class LocalMember extends MemberDefinition
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
Fields Modifier and Type Field Description (package private) intnumberThe number of the variable(package private) LocalMemberoriginalOfCopyUsed by copyInline to record the original of this copy.(package private) LocalMemberprevThe previous local variable, this list is used to build a nested context of local variables.(package private) intreadcountSome statistics(package private) intscopeNumberAn indication of which block the variable comes from.(package private) intwritecount-
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
Constructors Constructor Description LocalMember(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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static LocalMember[]copyArguments(Context ctx, MemberDefinition field)May inline copies of all the arguments of the given method.LocalMembercopyInline(Context ctx)Make a copy of this field, which is an argument to a method or constructor.static voiddoneWithArguments(Context ctx, LocalMember[] res)Call this when finished with the result of a copyArguments() call.(package private) LocalMembergetAccessVar()(package private) MemberDefinitiongetAccessVarMember()LocalMembergetCurrentInlineCopy(Context ctx)Returns the previous result of copyInline(ctx).(package private) MemberDefinitiongetMember()Is this a proxy for the given field?intgetNumber(Context ctx)Value number for vsets, or -1 if none.intgetScopeNumber()Return current nesting level, i.e., the value of 'scopeNumber'.NodegetValue(Environment env)Return valuebooleanisInlineable(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().)booleanisLocal()Special checksbooleanisUsed()Check if used(package private) voidsetAccessVar(LocalMember f)(package private) voidsetAccessVarMember(MemberDefinition f)-
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 Detail
-
number
int number
The number of the variable
-
readcount
int readcount
Some statistics
-
writecount
int writecount
-
scopeNumber
int scopeNumber
An indication of which block the variable comes from. Helps identify uplevel references.
-
originalOfCopy
LocalMember originalOfCopy
Used by copyInline to record the original of this copy.
-
prev
LocalMember prev
The previous local variable, this list is used to build a nested context of local variables.
-
-
Constructor Detail
-
LocalMember
public LocalMember(long where, ClassDefinition clazz, int modifiers, Type type, Identifier name)Constructor
-
LocalMember
public LocalMember(ClassDefinition innerClass)
Constructor for a block-inner class.
-
LocalMember
LocalMember(MemberDefinition field)
Constructor for a proxy to an instance or class variable.
-
-
Method Detail
-
getScopeNumber
public int getScopeNumber()
Return current nesting level, i.e., the value of 'scopeNumber'. Made public for the benefit of 'ClassDefinition.resolveName'.
-
getMember
final MemberDefinition getMember()
Is this a proxy for the given field?
-
isLocal
public boolean isLocal()
Special checks- Overrides:
isLocalin classMemberDefinition
-
copyInline
public LocalMember copyInline(Context ctx)
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
public LocalMember getCurrentInlineCopy(Context ctx)
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
public static LocalMember[] copyArguments(Context ctx, MemberDefinition field)
May inline copies of all the arguments of the given method.
-
doneWithArguments
public static void doneWithArguments(Context ctx, LocalMember[] res)
Call this when finished with the result of a copyArguments() call.
-
isInlineable
public boolean 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().)- Overrides:
isInlineablein classMemberDefinition
-
isUsed
public boolean isUsed()
Check if used
-
getAccessVar
LocalMember getAccessVar()
-
setAccessVar
void setAccessVar(LocalMember f)
-
getAccessVarMember
MemberDefinition getAccessVarMember()
-
setAccessVarMember
void setAccessVarMember(MemberDefinition f)
-
getValue
public Node getValue(Environment env)
Return value- Overrides:
getValuein classMemberDefinition
-
getNumber
public int getNumber(Context ctx)
Value number for vsets, or -1 if none.
-
-