Class InlineAccessFieldBinding
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.VariableBinding
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.FieldBinding
org.aspectj.ajdt.internal.compiler.lookup.InlineAccessFieldBinding
Used for field references within the body of an around advice
to force the use of public access methods. This makes it possible
for around advice to be inlined into any shadow to which it applies.
??? this is very similar to PrivilegedFieldBinding and is somewhat related
to InterTypeFieldBinding. Maybe they have a common supertype?
- Author:
- Jim Hugunin
-
Field Summary
Modifier and TypeFieldDescriptionFields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.FieldBinding
compoundUseFlag, declaringClass
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.VariableBinding
constant, id, modifiers, name, tagBits, type
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
ANY_EXCEPTION, ARRAY_TYPE, BASE_TYPE, DefaultLocationArrayContents, DefaultLocationField, DefaultLocationParameter, DefaultLocationReturnType, DefaultLocationsForTrueValue, DefaultLocationTypeArgument, DefaultLocationTypeBound, DefaultLocationTypeParameter, FIELD, GENERIC_TYPE, IMPORT, INTERSECTION_TYPE, INTERSECTION_TYPE18, LOCAL, METHOD, MODULE, NO_ANNOTATIONS, NO_COMPONENTS, NO_ELEMENT_VALUE_PAIRS, NO_EXCEPTIONS, NO_FIELDS, NO_MEMBER_TYPES, NO_METHODS, NO_MODULES, NO_NULL_DEFAULT, NO_PACKAGES, NO_PARAMETER_NAMES, NO_PARAMETERS, NO_PERMITTEDTYPES, NO_PLAIN_PACKAGES, NO_REFERENCE_TYPES, NO_SUPERINTERFACES, NO_TYPE_VARIABLES, NO_TYPES, NULL_UNSPECIFIED_BY_DEFAULT, NullnessDefaultMASK, PACKAGE, PARAMETERIZED_TYPE, PATTERN, POLY_TYPE, RAW_TYPE, RECORD_COMPONENT, TYPE, TYPE_PARAMETER, TYPE_USE, UNINITIALIZED_COMPONENTS, UNINITIALIZED_FIELDS, UNINITIALIZED_METHODS, UNINITIALIZED_REFERENCE_TYPES, VARIABLE, WILDCARD_TYPE
-
Constructor Summary
ConstructorDescriptionInlineAccessFieldBinding(AspectDeclaration inAspect, FieldBinding baseField, ResolvedMember resolvedField)
-
Method Summary
Modifier and TypeMethodDescriptionboolean
alwaysNeedsAccessMethod(boolean isReadAccess)
boolean
canBeSeenBy(TypeBinding receiverType, InvocationSite invocationSite, Scope scope)
getAccessMethod(boolean isReadAccess)
toString()
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.FieldBinding
canBeSeenBy, computeUniqueKey, constant, constant, fillInDefaultNonNullness, findPrivilegedBinding, genericSignature, getAccessFlags, getAnnotations, getAnnotationTagBits, getVisibleBinding, isDefault, isDeprecated, isOrEnclosedByPrivateType, isPrivate, isProtected, isPublic, isRecordComponent, isStatic, isSynthetic, isTransient, isUsed, isUsedOnlyInCompound, isViewedAsDeprecated, isVolatile, kind, original, setAnnotations, sourceField
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.VariableBinding
isBlankFinal, isEffectivelyFinal, isFinal, isNonNull, isNullable, readableName, setConstant
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
computeUniqueKey, initializeDeprecatedAnnotationTagBits, isAnnotationType, isParameter, isTaggedRepeatable, isValid, isValidBinding, problemId, setAnnotations, shortReadableName
-
Field Details
-
reader
-
writer
-
baseField
-
-
Constructor Details
-
InlineAccessFieldBinding
public InlineAccessFieldBinding(AspectDeclaration inAspect, FieldBinding baseField, ResolvedMember resolvedField)
-
-
Method Details
-
canBeSeenBy
- Overrides:
canBeSeenBy
in classFieldBinding
-
getAccessMethod
- Overrides:
getAccessMethod
in classFieldBinding
-
alwaysNeedsAccessMethod
public boolean alwaysNeedsAccessMethod(boolean isReadAccess)- Overrides:
alwaysNeedsAccessMethod
in classFieldBinding
-
getFieldBindingForLookup
- Overrides:
getFieldBindingForLookup
in classFieldBinding
-
toString
- Overrides:
toString
in classVariableBinding
-