public class MemberDefinition extends Object implements Constants
| Modifier and Type | Field and Description |
|---|---|
protected MemberDefinition |
accessPeer |
protected ClassDefinition |
clazz |
protected String |
documentation |
protected ClassDeclaration[] |
exp |
protected IdentifierToken[] |
expIds |
protected ClassDefinition |
innerClass |
protected int |
modifiers |
protected Identifier |
name |
protected MemberDefinition |
nextMatch |
protected MemberDefinition |
nextMember |
protected boolean |
superAccessMethod |
protected Type |
type |
protected Node |
value |
protected long |
where |
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, WHILEACC_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 and Description |
|---|
MemberDefinition(ClassDefinition innerClass)
Constructor for an inner class.
|
MemberDefinition(long where,
ClassDefinition clazz,
int modifiers,
Type type,
Identifier name,
IdentifierToken[] expIds,
Node value)
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
void |
addModifiers(int mod) |
boolean |
canReach(Environment env,
MemberDefinition f)
Check if a field can reach another field (only considers
forward references, not the access modifiers).
|
void |
check(Environment env)
Request a check of the field definition.
|
Vset |
check(Environment env,
Context ctx,
Vset vset)
Really check the field definition.
|
boolean |
checkMeet(Environment env,
MemberDefinition method,
ClassDeclaration clazz)
Check to see if two method definitions are compatible, that is
do they have a `meet'.
|
boolean |
checkOverride(Environment env,
MemberDefinition method)
Check to see if `this' can override/hide `method'.
|
void |
cleanup(Environment env) |
void |
code(Environment env,
Assembler asm)
Generate code
|
void |
codeInit(Environment env,
Context ctx,
Assembler asm) |
boolean |
couldOverride(Environment env,
MemberDefinition method)
This method is meant to be used to determine if one of two inherited
methods could override the other.
|
MemberDefinition |
getAccessMethodTarget()
Is this a synthetic method which provides access to a
visible private member?
|
MemberDefinition |
getAccessUpdateMember()
If this method is a getter for a private field, return the setter.
|
Vector<MemberDefinition> |
getArguments()
Get arguments (a vector of LocalMember)
|
ClassDeclaration |
getClassDeclaration()
Get the class declaration
|
ClassDefinition |
getClassDefinition()
Get the class definition
|
ClassDeclaration |
getDefiningClassDeclaration()
Get the class declaration in which the field is actually defined
|
String |
getDocumentation()
Get the field's documentation
|
IdentifierToken[] |
getExceptionIds() |
ClassDeclaration[] |
getExceptions(Environment env)
Get the exceptions that are thrown by this method.
|
Object |
getInitialValue() |
ClassDefinition |
getInnerClass()
Get an inner class.
|
String |
getMemberValueString(Environment env) |
int |
getModifiers()
Get the field's modifiers
|
Identifier |
getName()
Get the field's name
|
MemberDefinition |
getNextMatch() |
MemberDefinition |
getNextMember()
Get the next field or the next match
|
ClassDefinition |
getTopClass()
Get the field's top-level enclosing class
|
Type |
getType()
Get the field's type
|
Node |
getValue() |
Node |
getValue(Environment env)
Get the field's final value (may return null)
|
long |
getWhere()
Get the position in the input
|
boolean |
isAbstract() |
boolean |
isAccessMethod() |
boolean |
isBlankFinal()
Tell if this is a final variable without an initializer.
|
boolean |
isConstant()
Check if constant: Will it inline away to a constant?
|
boolean |
isConstructor() |
boolean |
isDeprecated() |
boolean |
isFinal() |
boolean |
isInitializer() |
boolean |
isInlineable(Environment env,
boolean fromFinal) |
boolean |
isInnerClass() |
boolean |
isLocal() |
boolean |
isMethod() |
boolean |
isNative() |
boolean |
isNeverNull() |
boolean |
isPackagePrivate() |
boolean |
isPrivate() |
boolean |
isProtected() |
boolean |
isPublic()
Checks
|
boolean |
isStatic() |
boolean |
isStrict() |
boolean |
isSuperAccessMethod()
Is this an access method for a field selection or method call
of the form '...super.foo' or '...super.foo()'?
|
boolean |
isSynchronized() |
boolean |
isSynthetic() |
boolean |
isTransient() |
boolean |
isUplevelValue()
Is this a synthetic field which holds a copy of,
or reference to, a local variable or enclosing instance?
|
boolean |
isVariable() |
boolean |
isVolatile() |
static MemberDefinition |
makeProxyMember(MemberDefinition field,
ClassDefinition classDef,
Environment env)
Create a member which is externally the same as `field' but
is defined in class `classDef'.
|
void |
print(PrintStream out)
Print for debugging
|
boolean |
reportDeprecated(Environment env)
Tells whether to report a deprecation error for this field.
|
void |
resolveTypeStructure(Environment env)
A stub.
|
boolean |
sameReturnType(MemberDefinition method)
Convenience method to see if two methods return the same type
|
void |
setAccessMethodTarget(MemberDefinition target) |
void |
setAccessUpdateMember(MemberDefinition updater) |
void |
setIsSuperAccessMethod(boolean b)
Mark this member as an access method for a field selection
or method call via the 'super' keyword.
|
void |
setValue(Node value) |
void |
subModifiers(int mod) |
String |
toString()
toString
|
protected long where
protected int modifiers
protected Type type
protected String documentation
protected IdentifierToken[] expIds
protected ClassDeclaration[] exp
protected Node value
protected ClassDefinition clazz
protected Identifier name
protected ClassDefinition innerClass
protected MemberDefinition nextMember
protected MemberDefinition nextMatch
protected MemberDefinition accessPeer
protected boolean superAccessMethod
public MemberDefinition(long where,
ClassDefinition clazz,
int modifiers,
Type type,
Identifier name,
IdentifierToken[] expIds,
Node value)
public MemberDefinition(ClassDefinition innerClass)
This constructor calls the generic constructor for this class, extracting all necessary values from the innerClass.
public static MemberDefinition makeProxyMember(MemberDefinition field, ClassDefinition classDef, Environment env)
public String getMemberValueString(Environment env) throws ClassNotFound
ClassNotFoundpublic final long getWhere()
public final ClassDeclaration getClassDeclaration()
public void resolveTypeStructure(Environment env)
public ClassDeclaration getDefiningClassDeclaration()
public final ClassDefinition getClassDefinition()
public final ClassDefinition getTopClass()
public final int getModifiers()
public final void subModifiers(int mod)
public final void addModifiers(int mod)
public final Type getType()
public final Identifier getName()
public Vector<MemberDefinition> getArguments()
public ClassDeclaration[] getExceptions(Environment env)
public final IdentifierToken[] getExceptionIds()
public ClassDefinition getInnerClass()
public boolean isUplevelValue()
public boolean isAccessMethod()
public MemberDefinition getAccessMethodTarget()
public void setAccessMethodTarget(MemberDefinition target)
public MemberDefinition getAccessUpdateMember()
public void setAccessUpdateMember(MemberDefinition updater)
public final boolean isSuperAccessMethod()
public final void setIsSuperAccessMethod(boolean b)
public final boolean isBlankFinal()
public boolean isNeverNull()
public Node getValue(Environment env) throws ClassNotFound
ClassNotFoundpublic final Node getValue()
public final void setValue(Node value)
public Object getInitialValue()
public final MemberDefinition getNextMember()
public final MemberDefinition getNextMatch()
public String getDocumentation()
public void check(Environment env) throws ClassNotFound
ClassNotFoundpublic Vset check(Environment env, Context ctx, Vset vset) throws ClassNotFound
ClassNotFoundpublic void code(Environment env, Assembler asm) throws ClassNotFound
ClassNotFoundpublic void codeInit(Environment env, Context ctx, Assembler asm) throws ClassNotFound
ClassNotFoundpublic boolean reportDeprecated(Environment env)
public final boolean canReach(Environment env, MemberDefinition f)
public boolean sameReturnType(MemberDefinition method)
public boolean checkOverride(Environment env, MemberDefinition method)
A - void foo() throws e1
|
|
B - void foo() throws e2
public boolean checkMeet(Environment env, MemberDefinition method, ClassDeclaration clazz)
A - void foo() throws e1
\
\ B void foo() throws e2
\ /
\ /
C
public boolean couldOverride(Environment env, MemberDefinition method)
public final boolean isPublic()
public final boolean isPrivate()
public final boolean isProtected()
public final boolean isPackagePrivate()
public final boolean isFinal()
public final boolean isStatic()
public final boolean isSynchronized()
public final boolean isAbstract()
public final boolean isNative()
public final boolean isVolatile()
public final boolean isTransient()
public final boolean isMethod()
public final boolean isVariable()
public final boolean isSynthetic()
public final boolean isDeprecated()
public final boolean isStrict()
public final boolean isInnerClass()
public final boolean isInitializer()
public final boolean isConstructor()
public boolean isLocal()
public boolean isInlineable(Environment env, boolean fromFinal) throws ClassNotFound
ClassNotFoundpublic boolean isConstant()
public void print(PrintStream out)
public void cleanup(Environment env)
Copyright © 2017–2021 Eclipse Foundation. All rights reserved.