Top Description Inners Fields Constructors Methods
org.aspectj.weaver

public abstract Class ResolvedTypeMunger

extends Object
Class Inheritance
Known Direct Subclasses
org.aspectj.weaver.AnnotationOnTypeMunger, org.aspectj.weaver.MethodDelegateTypeMunger, org.aspectj.weaver.MethodDelegateTypeMunger.FieldHostTypeMunger, org.aspectj.weaver.NewConstructorTypeMunger, org.aspectj.weaver.NewFieldTypeMunger, org.aspectj.weaver.NewMemberClassTypeMunger, org.aspectj.weaver.NewMethodTypeMunger, org.aspectj.weaver.NewParentTypeMunger, org.aspectj.weaver.PerObjectInterfaceTypeMunger, org.aspectj.weaver.PerTypeWithinTargetTypeMunger, org.aspectj.weaver.PrivilegedAccessMunger
Imports
java.io.DataInputStream, .DataOutputStream, .EOFException, .File, .IOException, .ObjectInputStream, .ObjectOutputStream, java.util.ArrayList, .Collections, .HashSet, .List, .Map, .Set, org.aspectj.bridge.ISourceLocation, .SourceLocation, org.aspectj.util.TypeSafeEnum

This is an abstraction over method/field introduction. It might not have the chops to handle other inter-type declarations. This is the thing that is used on the eclipse side and serialized into a ConcreteTypeMunger.

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class

Field Summary

Modifier and TypeField and Description
public static final ResolvedTypeMunger.Kind
public static final ResolvedTypeMunger.Kind
protected ResolvedMember
declaredSignature

The declared signature is filled in when a type munger is parameterized for application to a particular type.

public static final ResolvedTypeMunger.Kind
public static final ResolvedTypeMunger.Kind
public static final ResolvedTypeMunger.Kind
protected ResolvedTypeMunger.Kind
private ISourceLocation
public static final ResolvedTypeMunger.Kind
public static final ResolvedTypeMunger.Kind
public static final ResolvedTypeMunger.Kind
private ResolvedType
public static final ResolvedTypeMunger.Kind
public static final ResolvedTypeMunger.Kind
public static final ResolvedTypeMunger.Kind
public static final ResolvedTypeMunger.Kind
protected ResolvedMember
public static final String
private Set<ResolvedMember>
protected List<String>

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public boolean
public boolean
existsToSupportShadowMunging()

Some type mungers are created purely to help with the implementation of shadow mungers.

public ResolvedMember
public UnresolvedType
public ResolvedTypeMunger.Kind
public ResolvedMember
public ResolvedMember
public ISourceLocation
public Set<ResolvedMember>
public List<String>
public boolean
public boolean
isLateMunger()

A late munger has to be done after shadow munging since which shadows are matched can affect the operation of the late munger.

public boolean
matches(ResolvedType matchType, ResolvedType aspectType)

public boolean
public ResolvedTypeMunger
parameterizedFor(ResolvedType target)

Parameterizes a resolved type munger for a particular usage of its target type (this is used when the target type is generic and the ITD shares type variables with the target) see ConcreteTypeMunger.parameterizedFor

public ResolvedTypeMunger
public static ResolvedTypeMunger
protected static List<String>
protected static ISourceLocation
protected static Set<ResolvedMember>
public void
public void
public void
protected void
setTypeVariableAliases(List<String> typeVariableAliases)

public boolean
sharesTypeVariablesWithGenericType()

return true if type variables are specified with the target type for this ITD.

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.
public abstract void
protected final void
protected final void
protected final void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait

Field Detail

AnnotationOnTypeback to summary
public static final ResolvedTypeMunger.Kind AnnotationOnType
Constructorback to summary
public static final ResolvedTypeMunger.Kind Constructor
declaredSignatureback to summary
protected ResolvedMember declaredSignature

The declared signature is filled in when a type munger is parameterized for application to a particular type. It represents the signature originally declared in the source file.

Fieldback to summary
public static final ResolvedTypeMunger.Kind Field
FieldHostback to summary
public static final ResolvedTypeMunger.Kind FieldHost
InnerClassback to summary
public static final ResolvedTypeMunger.Kind InnerClass
kindback to summary
protected ResolvedTypeMunger.Kind kind
locationback to summary
private ISourceLocation location
Methodback to summary
public static final ResolvedTypeMunger.Kind Method
MethodDelegateback to summary
public static final ResolvedTypeMunger.Kind MethodDelegate
MethodDelegate2back to summary
public static final ResolvedTypeMunger.Kind MethodDelegate2
onTypeback to summary
private ResolvedType onType
Parentback to summary
public static final ResolvedTypeMunger.Kind Parent
PerObjectInterfaceback to summary
public static final ResolvedTypeMunger.Kind PerObjectInterface
PerTypeWithinInterfaceback to summary
public static final ResolvedTypeMunger.Kind PerTypeWithinInterface
PrivilegedAccessback to summary
public static final ResolvedTypeMunger.Kind PrivilegedAccess
signatureback to summary
protected ResolvedMember signature
SUPER_DISPATCH_NAMEback to summary
public static final String SUPER_DISPATCH_NAME
superMethodsCalledback to summary
private Set<ResolvedMember> superMethodsCalled
typeVariableAliasesback to summary
protected List<String> typeVariableAliases

Constructor Detail

ResolvedTypeMungerback to summary
public ResolvedTypeMunger(ResolvedTypeMunger.Kind kind, ResolvedMember signature)

Method Detail

changesPublicSignatureback to summary
public boolean changesPublicSignature()
existsToSupportShadowMungingback to summary
public boolean existsToSupportShadowMunging()

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.

getDeclaredSignatureback to summary
public ResolvedMember getDeclaredSignature()
getDeclaringTypeback to summary
public UnresolvedType getDeclaringType()
getKindback to summary
public ResolvedTypeMunger.Kind getKind()
getMatchingSyntheticMemberback to summary
public ResolvedMember getMatchingSyntheticMember(Member member, ResolvedType aspectType)
getSignatureback to summary
public ResolvedMember getSignature()
getSourceLocationback to summary
public ISourceLocation getSourceLocation()
getSuperMethodsCalledback to summary
public Set<ResolvedMember> getSuperMethodsCalled()
getTypeVariableAliasesback to summary
public List<String> getTypeVariableAliases()
hasTypeVariableAliasesback to summary
public boolean hasTypeVariableAliases()
isLateMungerback to summary
public boolean isLateMunger()

A late munger has to be done after shadow munging since which shadows are matched can affect the operation of the late munger. e.g. perobjectinterfacemunger

matchesback to summary
public boolean matches(ResolvedType matchType, ResolvedType aspectType)
needsAccessToTopmostImplementorback to summary
public boolean needsAccessToTopmostImplementor()
parameterizedForback to summary
public ResolvedTypeMunger parameterizedFor(ResolvedType target)

Parameterizes a resolved type munger for a particular usage of its target type (this is used when the target type is generic and the ITD shares type variables with the target) see ConcreteTypeMunger.parameterizedFor

parameterizeWithback to summary
public ResolvedTypeMunger parameterizeWith(Map<String, UnresolvedType> m, World w)
readback to summary
public static ResolvedTypeMunger read(VersionedDataInputStream s, ISourceContext context) throws IOException
readInTypeAliasesback to summary
protected static List<String> readInTypeAliases(VersionedDataInputStream s) throws IOException
readSourceLocationback to summary
protected static ISourceLocation readSourceLocation(VersionedDataInputStream s) throws IOException
readSuperMethodsCalledback to summary
protected static Set<ResolvedMember> readSuperMethodsCalled(VersionedDataInputStream s) throws IOException
setDeclaredSignatureback to summary
public void setDeclaredSignature(ResolvedMember rm)
setSourceLocationback to summary
public void setSourceLocation(ISourceLocation isl)
setSuperMethodsCalledback to summary
public void setSuperMethodsCalled(Set<ResolvedMember> c)
setTypeVariableAliasesback to summary
protected void setTypeVariableAliases(List<String> typeVariableAliases)
sharesTypeVariablesWithGenericTypeback to summary
public boolean sharesTypeVariablesWithGenericType()

return true if type variables are specified with the target type for this ITD. e.g. this would return true: "int I<A,B>.m() { return 42; }"

toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object.

Returns:String

a string representation of the object.

Annotations
@Override
writeback to summary
public abstract void write(CompressingDataOutputStream s) throws IOException
writeOutTypeAliasesback to summary
protected final void writeOutTypeAliases(DataOutputStream s) throws IOException
writeSourceLocationback to summary
protected final void writeSourceLocation(CompressingDataOutputStream s) throws IOException
writeSuperMethodsCalledback to summary
protected final void writeSuperMethodsCalled(CompressingDataOutputStream s) throws IOException
org.aspectj.weaver back to summary

public Class ResolvedTypeMunger.Kind

extends TypeSafeEnum
Class Inheritance

Constructor Summary

AccessConstructor and Description
pack-priv
Kind(String name, int key)

Method Summary

Modifier and TypeMethod and Description
public static ResolvedTypeMunger.Kind
public String
toString()

Overrides org.aspectj.util.TypeSafeEnum.toString.

Returns a string representation of the object.
Inherited from org.aspectj.util.TypeSafeEnum:
equalsgetKeygetNamehashCodewrite

Constructor Detail

Kindback to summary
pack-priv Kind(String name, int key)

Method Detail

readback to summary
public static ResolvedTypeMunger.Kind read(DataInputStream s) throws IOException
toStringback to summary
public String toString()

Overrides org.aspectj.util.TypeSafeEnum.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object.

Returns:String

a string representation of the object.

Annotations
@Override