public abstract class ResolvedTypeMunger
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
ResolvedTypeMunger.Kind |
Modifier and Type | Field and Description |
---|---|
static ResolvedTypeMunger.Kind |
AnnotationOnType |
static ResolvedTypeMunger.Kind |
Constructor |
protected ResolvedMember |
declaredSignature
The declared signature is filled in when a type munger is parameterized for application to a particular type.
|
static ResolvedTypeMunger.Kind |
Field |
static ResolvedTypeMunger.Kind |
FieldHost |
static ResolvedTypeMunger.Kind |
InnerClass |
protected ResolvedTypeMunger.Kind |
kind |
static ResolvedTypeMunger.Kind |
Method |
static ResolvedTypeMunger.Kind |
MethodDelegate |
static ResolvedTypeMunger.Kind |
MethodDelegate2 |
static ResolvedTypeMunger.Kind |
Parent |
static ResolvedTypeMunger.Kind |
PerObjectInterface |
static ResolvedTypeMunger.Kind |
PerTypeWithinInterface |
static ResolvedTypeMunger.Kind |
PrivilegedAccess |
protected ResolvedMember |
signature |
static java.lang.String |
SUPER_DISPATCH_NAME |
protected java.util.List<java.lang.String> |
typeVariableAliases |
Constructor and Description |
---|
ResolvedTypeMunger(ResolvedTypeMunger.Kind kind,
ResolvedMember signature) |
Modifier and Type | Method and Description |
---|---|
boolean |
changesPublicSignature() |
boolean |
existsToSupportShadowMunging()
Some type mungers are created purely to help with the implementation of shadow mungers.
|
ResolvedMember |
getDeclaredSignature() |
UnresolvedType |
getDeclaringType() |
ResolvedTypeMunger.Kind |
getKind() |
ResolvedMember |
getMatchingSyntheticMember(Member member,
ResolvedType aspectType) |
ResolvedMember |
getSignature() |
ISourceLocation |
getSourceLocation() |
java.util.Set<ResolvedMember> |
getSuperMethodsCalled() |
java.util.List<java.lang.String> |
getTypeVariableAliases() |
boolean |
hasTypeVariableAliases() |
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.
|
boolean |
matches(ResolvedType matchType,
ResolvedType aspectType) |
boolean |
needsAccessToTopmostImplementor() |
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
|
ResolvedTypeMunger |
parameterizeWith(java.util.Map<java.lang.String,UnresolvedType> m,
World w) |
static ResolvedTypeMunger |
read(VersionedDataInputStream s,
ISourceContext context) |
protected static java.util.List<java.lang.String> |
readInTypeAliases(VersionedDataInputStream s) |
protected static ISourceLocation |
readSourceLocation(VersionedDataInputStream s) |
protected static java.util.Set<ResolvedMember> |
readSuperMethodsCalled(VersionedDataInputStream s) |
void |
setDeclaredSignature(ResolvedMember rm) |
void |
setSourceLocation(ISourceLocation isl) |
void |
setSuperMethodsCalled(java.util.Set<ResolvedMember> c) |
protected void |
setTypeVariableAliases(java.util.List<java.lang.String> typeVariableAliases) |
boolean |
sharesTypeVariablesWithGenericType()
return true if type variables are specified with the target type for this ITD.
|
java.lang.String |
toString() |
abstract void |
write(CompressingDataOutputStream s) |
protected void |
writeOutTypeAliases(java.io.DataOutputStream s) |
protected void |
writeSourceLocation(CompressingDataOutputStream s) |
protected void |
writeSuperMethodsCalled(CompressingDataOutputStream s) |
protected ResolvedTypeMunger.Kind kind
protected ResolvedMember signature
protected ResolvedMember declaredSignature
protected java.util.List<java.lang.String> typeVariableAliases
public static final ResolvedTypeMunger.Kind Field
public static final ResolvedTypeMunger.Kind Method
public static final ResolvedTypeMunger.Kind Constructor
public static final ResolvedTypeMunger.Kind PerObjectInterface
public static final ResolvedTypeMunger.Kind PrivilegedAccess
public static final ResolvedTypeMunger.Kind Parent
public static final ResolvedTypeMunger.Kind PerTypeWithinInterface
public static final ResolvedTypeMunger.Kind AnnotationOnType
public static final ResolvedTypeMunger.Kind MethodDelegate
public static final ResolvedTypeMunger.Kind FieldHost
public static final ResolvedTypeMunger.Kind MethodDelegate2
public static final ResolvedTypeMunger.Kind InnerClass
public static final java.lang.String SUPER_DISPATCH_NAME
public ResolvedTypeMunger(ResolvedTypeMunger.Kind kind, ResolvedMember signature)
public void setSourceLocation(ISourceLocation isl)
public ISourceLocation getSourceLocation()
public boolean matches(ResolvedType matchType, ResolvedType aspectType)
public java.lang.String toString()
toString
in class java.lang.Object
public static ResolvedTypeMunger read(VersionedDataInputStream s, ISourceContext context) throws java.io.IOException
java.io.IOException
protected static java.util.Set<ResolvedMember> readSuperMethodsCalled(VersionedDataInputStream s) throws java.io.IOException
java.io.IOException
protected final void writeSuperMethodsCalled(CompressingDataOutputStream s) throws java.io.IOException
java.io.IOException
protected static ISourceLocation readSourceLocation(VersionedDataInputStream s) throws java.io.IOException
java.io.IOException
protected final void writeSourceLocation(CompressingDataOutputStream s) throws java.io.IOException
java.io.IOException
public abstract void write(CompressingDataOutputStream s) throws java.io.IOException
java.io.IOException
public ResolvedTypeMunger.Kind getKind()
public void setSuperMethodsCalled(java.util.Set<ResolvedMember> c)
public java.util.Set<ResolvedMember> getSuperMethodsCalled()
public ResolvedMember getSignature()
public ResolvedMember getMatchingSyntheticMember(Member member, ResolvedType aspectType)
public boolean changesPublicSignature()
public boolean needsAccessToTopmostImplementor()
protected static java.util.List<java.lang.String> readInTypeAliases(VersionedDataInputStream s) throws java.io.IOException
java.io.IOException
protected final void writeOutTypeAliases(java.io.DataOutputStream s) throws java.io.IOException
java.io.IOException
public java.util.List<java.lang.String> getTypeVariableAliases()
protected void setTypeVariableAliases(java.util.List<java.lang.String> typeVariableAliases)
public boolean hasTypeVariableAliases()
public boolean sharesTypeVariablesWithGenericType()
public ResolvedTypeMunger parameterizedFor(ResolvedType target)
public void setDeclaredSignature(ResolvedMember rm)
public ResolvedMember getDeclaredSignature()
public boolean isLateMunger()
public boolean existsToSupportShadowMunging()
public ResolvedTypeMunger parameterizeWith(java.util.Map<java.lang.String,UnresolvedType> m, World w)
public UnresolvedType getDeclaringType()