org.aspectj.weaver
Class MethodDelegateTypeMunger.FieldHostTypeMunger

java.lang.Object
  extended by org.aspectj.weaver.ResolvedTypeMunger
      extended by org.aspectj.weaver.MethodDelegateTypeMunger.FieldHostTypeMunger
Enclosing class:
MethodDelegateTypeMunger

public static class MethodDelegateTypeMunger.FieldHostTypeMunger
extends ResolvedTypeMunger


Nested Class Summary
 
Nested classes/interfaces inherited from class org.aspectj.weaver.ResolvedTypeMunger
ResolvedTypeMunger.Kind
 
Field Summary
 
Fields inherited from class org.aspectj.weaver.ResolvedTypeMunger
AnnotationOnType, Constructor, declaredSignature, Field, FieldHost, InnerClass, kind, Method, MethodDelegate, MethodDelegate2, Parent, PerObjectInterface, PerTypeWithinInterface, PrivilegedAccess, signature, SUPER_DISPATCH_NAME, typeVariableAliases
 
Constructor Summary
MethodDelegateTypeMunger.FieldHostTypeMunger(ResolvedMember field, UnresolvedType aspect, TypePattern typePattern)
          Construct a new type munger for @AspectJ ITD
 
Method Summary
 boolean changesPublicSignature()
           
 boolean equals(java.lang.Object other)
           
 boolean existsToSupportShadowMunging()
          Some type mungers are created purely to help with the implementation of shadow mungers.
 int hashCode()
           
 boolean matches(ResolvedType matchType, ResolvedType aspectType)
          Match based on given type pattern, only classes can be matched
static ResolvedTypeMunger readFieldHost(VersionedDataInputStream s, ISourceContext context)
           
 void write(CompressingDataOutputStream s)
           
 
Methods inherited from class org.aspectj.weaver.ResolvedTypeMunger
getDeclaredSignature, getDeclaringType, getKind, getMatchingSyntheticMember, getSignature, getSourceLocation, getSuperMethodsCalled, getTypeVariableAliases, hasTypeVariableAliases, isLateMunger, needsAccessToTopmostImplementor, parameterizedFor, parameterizeWith, read, readInTypeAliases, readSourceLocation, readSuperMethodsCalled, setDeclaredSignature, setSourceLocation, setSuperMethodsCalled, setTypeVariableAliases, sharesTypeVariablesWithGenericType, toString, writeOutTypeAliases, writeSourceLocation, writeSuperMethodsCalled
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MethodDelegateTypeMunger.FieldHostTypeMunger

public MethodDelegateTypeMunger.FieldHostTypeMunger(ResolvedMember field,
                                                    UnresolvedType aspect,
                                                    TypePattern typePattern)
Construct a new type munger for @AspectJ ITD

Parameters:
field -
aspect -
typePattern -
Method Detail

equals

public boolean equals(java.lang.Object other)
Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

write

public void write(CompressingDataOutputStream s)
           throws java.io.IOException
Specified by:
write in class ResolvedTypeMunger
Throws:
java.io.IOException

readFieldHost

public static ResolvedTypeMunger readFieldHost(VersionedDataInputStream s,
                                               ISourceContext context)
                                        throws java.io.IOException
Throws:
java.io.IOException

matches

public boolean matches(ResolvedType matchType,
                       ResolvedType aspectType)
Match based on given type pattern, only classes can be matched

Overrides:
matches in class ResolvedTypeMunger
Parameters:
matchType -
aspectType -
Returns:
true if match

changesPublicSignature

public boolean changesPublicSignature()
Overrides:
changesPublicSignature in class ResolvedTypeMunger

existsToSupportShadowMunging

public boolean existsToSupportShadowMunging()
Description copied from class: ResolvedTypeMunger
Some type mungers are created purely to help with the implementation of shadow mungers. For example to support the cflow() pointcut we create a new cflow field in the aspect, and that is added via a BcelCflowCounterFieldAdder. During compilation we need to compare sets of type mungers, and if some only come into existence after the 'shadowy' type things have been processed, we need to ignore them during the comparison. Returning true from this method indicates the type munger exists to support 'shadowy' stuff - and so can be ignored in some comparison.

Overrides:
existsToSupportShadowMunging in class ResolvedTypeMunger