org.aspectj.org.eclipse.jdt.internal.compiler.lookup
Class FieldBinding

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
      extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.VariableBinding
          extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.FieldBinding
Direct Known Subclasses:
InlineAccessFieldBinding, InterTypeFieldBinding, ParameterizedFieldBinding, PrivilegedFieldBinding, ProblemFieldBinding, SyntheticFieldBinding

public class FieldBinding
extends VariableBinding

AspectJ Extension added hooks for inter-type field bindings as well as proto-hooks for allowing privileged access


Field Summary
 ReferenceBinding 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, FIELD, GENERIC_TYPE, IMPORT, LOCAL, METHOD, NO_ANNOTATIONS, NO_ELEMENT_VALUE_PAIRS, NO_EXCEPTIONS, NO_FIELDS, NO_MEMBER_TYPES, NO_METHODS, NO_PARAMETERS, NO_SUPERINTERFACES, NO_TYPE_VARIABLES, NO_TYPES, PACKAGE, PARAMETERIZED_TYPE, RAW_TYPE, TYPE, TYPE_PARAMETER, VARIABLE, WILDCARD_TYPE
 
Constructor Summary
protected FieldBinding()
           
  FieldBinding(char[] name, TypeBinding type, int modifiers, ReferenceBinding declaringClass, Constant constant)
           
  FieldBinding(FieldBinding initialFieldBinding, ReferenceBinding declaringClass)
           
  FieldBinding(FieldDeclaration field, TypeBinding type, int modifiers, ReferenceBinding declaringClass)
           
 
Method Summary
 boolean alwaysNeedsAccessMethod(boolean isReadAccess)
           
 boolean canBeSeenBy(PackageBinding invocationPackage)
           
 boolean canBeSeenBy(TypeBinding receiverType, InvocationSite invocationSite, Scope scope)
           
 char[] computeUniqueKey(boolean isLeaf)
           
 Constant constant()
           
 FieldBinding findPrivilegedBinding(SourceTypeBinding invocationType, ASTNode location)
           
 char[] genericSignature()
          X t --> LX;
 int getAccessFlags()
           
 SyntheticMethodBinding getAccessMethod(boolean isReadAccess)
           
 AnnotationBinding[] getAnnotations()
           
 long getAnnotationTagBits()
          Compute the tagbits for standard annotations.
 FieldBinding getFieldBindingForLookup()
           
 FieldBinding getVisibleBinding(TypeBinding receiverType, InvocationSite invocationSite, Scope scope)
           
 boolean isDefault()
           
 boolean isDeprecated()
           
 boolean isPrivate()
           
 boolean isProtected()
           
 boolean isPublic()
           
 boolean isStatic()
           
 boolean isSynthetic()
           
 boolean isTransient()
           
 boolean isUsed()
           
 boolean isViewedAsDeprecated()
           
 boolean isVolatile()
           
 int kind()
           
 FieldBinding original()
          Returns the original field (as opposed to parameterized instances)
 void setAnnotations(AnnotationBinding[] annotations)
           
 FieldDeclaration sourceField()
           
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.VariableBinding
isBlankFinal, isFinal, readableName, setConstant, toString
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
computeUniqueKey, initializeDeprecatedAnnotationTagBits, isValidBinding, problemId, shortReadableName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

declaringClass

public ReferenceBinding declaringClass
Constructor Detail

FieldBinding

protected FieldBinding()

FieldBinding

public FieldBinding(char[] name,
                    TypeBinding type,
                    int modifiers,
                    ReferenceBinding declaringClass,
                    Constant constant)

FieldBinding

public FieldBinding(FieldDeclaration field,
                    TypeBinding type,
                    int modifiers,
                    ReferenceBinding declaringClass)

FieldBinding

public FieldBinding(FieldBinding initialFieldBinding,
                    ReferenceBinding declaringClass)
Method Detail

kind

public final int kind()
Specified by:
kind in class Binding

canBeSeenBy

public final boolean canBeSeenBy(PackageBinding invocationPackage)

canBeSeenBy

public boolean canBeSeenBy(TypeBinding receiverType,
                           InvocationSite invocationSite,
                           Scope scope)

computeUniqueKey

public char[] computeUniqueKey(boolean isLeaf)
Overrides:
computeUniqueKey in class Binding

constant

public Constant constant()
Overrides:
constant in class VariableBinding

genericSignature

public char[] genericSignature()
X t --> LX;


getAccessFlags

public final int getAccessFlags()

getAnnotationTagBits

public long getAnnotationTagBits()
Compute the tagbits for standard annotations. For source types, these could require lazily resolving corresponding annotation nodes, in case of forward references.

Overrides:
getAnnotationTagBits in class Binding
See Also:
Binding.getAnnotationTagBits()

getAnnotations

public AnnotationBinding[] getAnnotations()
Specified by:
getAnnotations in class VariableBinding

isDefault

public final boolean isDefault()

isDeprecated

public final boolean isDeprecated()

isPrivate

public final boolean isPrivate()

isUsed

public final boolean isUsed()

isProtected

public final boolean isProtected()

isPublic

public final boolean isPublic()

isStatic

public final boolean isStatic()

isSynthetic

public final boolean isSynthetic()

isTransient

public final boolean isTransient()

isViewedAsDeprecated

public final boolean isViewedAsDeprecated()

isVolatile

public final boolean isVolatile()

original

public FieldBinding original()
Returns the original field (as opposed to parameterized instances)


setAnnotations

public void setAnnotations(AnnotationBinding[] annotations)

sourceField

public FieldDeclaration sourceField()

alwaysNeedsAccessMethod

public boolean alwaysNeedsAccessMethod(boolean isReadAccess)

getAccessMethod

public SyntheticMethodBinding getAccessMethod(boolean isReadAccess)

getFieldBindingForLookup

public FieldBinding getFieldBindingForLookup()

getVisibleBinding

public FieldBinding getVisibleBinding(TypeBinding receiverType,
                                      InvocationSite invocationSite,
                                      Scope scope)

findPrivilegedBinding

public FieldBinding findPrivilegedBinding(SourceTypeBinding invocationType,
                                          ASTNode location)