org.aspectj.ajdt.internal.compiler.lookup
Class InterTypeMethodBinding

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
      extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBinding
          extended by org.aspectj.ajdt.internal.compiler.lookup.InterTypeMethodBinding

public class InterTypeMethodBinding
extends MethodBinding

A special method binding representing an ITD that pretends to be a member in some target type for matching purposes.


Field Summary
 MethodBinding postDispatchMethod
           
 AbstractMethodDeclaration sourceMethod
           
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBinding
declaringClass, modifiers, parameters, returnType, selector, tagBits, thrownExceptions, typeVariables
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
ANY_EXCEPTION, ARRAY_TYPE, BASE_TYPE, FIELD, GENERIC_TYPE, IMPORT, INTERSECTION_TYPE, 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, UNINITIALIZED_FIELDS, UNINITIALIZED_METHODS, UNINITIALIZED_REFERENCE_TYPES, VARIABLE, WILDCARD_TYPE
 
Constructor Summary
InterTypeMethodBinding(EclipseFactory world, ResolvedTypeMunger munger, UnresolvedType withinType, AbstractMethodDeclaration sourceMethod)
           
 
Method Summary
 boolean alwaysNeedsAccessMethod()
          Subtypes can override this to return true if an access method should be used when referring to this method binding.
 boolean canBeSeenBy(TypeBinding receiverType, InvocationSite invocationSite, Scope scope)
           
 MethodBinding getAccessMethod(boolean staticReference)
          This will only be called if alwaysNeedsAccessMethod() returns true.
 ReferenceBinding getOwningClass()
           
 ReferenceBinding getTargetType()
           
 boolean isFinal()
           
 AbstractMethodDeclaration sourceMethod()
           
 java.lang.String toString()
           
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBinding
areParameterErasuresEqual, areParametersCompatibleWith, areParametersEqual, areTypeVariableErasuresEqual, canBeSeenBy, canBeSeenBy, collectMissingTypes, computeUniqueKey, constantPoolName, findOriginalInheritedMethod, findPrivilegedBinding, genericSignature, getAccessFlags, getAnnotations, getAnnotationTagBits, getDefaultValue, getParameterAnnotations, getTypeVariable, getVisibleBinding, getVisibleBinding, hasSubstitutedParameters, hasSubstitutedReturnType, isAbstract, isBridge, isConstructor, isDefault, isDefaultAbstract, isDeprecated, isImplementing, isMain, isNative, isOrEnclosedByPrivateType, isOverriding, isPolymorphic, isPrivate, isProtected, isPublic, isStatic, isStrictfp, isSynchronized, isSynthetic, isUsed, isVarargs, isViewedAsDeprecated, kind, original, readableName, setAnnotations, setAnnotations, setDefaultValue, setParameterAnnotations, setSelector, shortReadableName, signature, signature, sourceEnd, sourceStart, tiebreakMethod, typeVariables
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
computeUniqueKey, initializeDeprecatedAnnotationTagBits, isParameter, isValidBinding, isVolatile, problemId
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

postDispatchMethod

public MethodBinding postDispatchMethod

sourceMethod

public AbstractMethodDeclaration sourceMethod
Constructor Detail

InterTypeMethodBinding

public InterTypeMethodBinding(EclipseFactory world,
                              ResolvedTypeMunger munger,
                              UnresolvedType withinType,
                              AbstractMethodDeclaration sourceMethod)
Method Detail

canBeSeenBy

public boolean canBeSeenBy(TypeBinding receiverType,
                           InvocationSite invocationSite,
                           Scope scope)
Overrides:
canBeSeenBy in class MethodBinding

isFinal

public boolean isFinal()
Overrides:
isFinal in class MethodBinding

getAccessMethod

public MethodBinding getAccessMethod(boolean staticReference)
Description copied from class: MethodBinding
This will only be called if alwaysNeedsAccessMethod() returns true. In that case it should return the access method to be used.

Overrides:
getAccessMethod in class MethodBinding

alwaysNeedsAccessMethod

public boolean alwaysNeedsAccessMethod()
Description copied from class: MethodBinding
Subtypes can override this to return true if an access method should be used when referring to this method binding. Currently used for AspectJ's inter-type method declarations.

Overrides:
alwaysNeedsAccessMethod in class MethodBinding

sourceMethod

public AbstractMethodDeclaration sourceMethod()
Overrides:
sourceMethod in class MethodBinding

getTargetType

public ReferenceBinding getTargetType()

getOwningClass

public ReferenceBinding getOwningClass()

toString

public java.lang.String toString()
Overrides:
toString in class MethodBinding