Package org.aspectj.weaver
Class MissingResolvedTypeWithKnownSignature
java.lang.Object
org.aspectj.weaver.UnresolvedType
org.aspectj.weaver.ResolvedType
org.aspectj.weaver.MissingResolvedTypeWithKnownSignature
- All Implemented Interfaces:
AnnotatedElement
,Traceable
,TypeVariableDeclaringElement
When we try to resolve a type in the world that we require to be present, and then fail to find it, we return an instance of this
class. This class defers the production of the "can't find type error" until the first time that someone asks a question that
can't be answered solely from the signature. This enables the weaver to be more tolerant of missing types.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.aspectj.weaver.UnresolvedType
UnresolvedType.TypeKind
-
Field Summary
Fields inherited from class org.aspectj.weaver.ResolvedType
bits, crosscuttingMembers, EMPTY_ARRAY, EMPTY_RESOLVED_TYPE_ARRAY, interTypeMungers, MISSING, NONE, PARAMETERIZED_TYPE_IDENTIFIER, temporaryAnnotationTypes, validBoxing, world
Fields inherited from class org.aspectj.weaver.UnresolvedType
AJC_PRIVILEGED, ANNOTATION, ARRAY_WITH_JUST_OBJECT, AT_INHERITED, AT_RETENTION, AT_TARGET, BOOLEAN, BYTE, CHAR, CLONEABLE, DOUBLE, ENUM, ERROR, FLOAT, INT, JAVA_LANG_ANNOTATION, JAVA_LANG_CLASS_ARRAY, JAVA_LANG_REFLECT_CONSTRUCTOR, JAVA_LANG_REFLECT_FIELD, JAVA_LANG_REFLECT_METHOD, JL_CLASS, JL_EXCEPTION, JL_STRING, JOINPOINT_ENCLOSINGSTATICPART, JOINPOINT_STATICPART, LONG, MISSING_NAME, OBJECT, OBJECTARRAY, PROCEEDING_JOINPOINT, RUNTIME_EXCEPTION, SERIALIZABLE, SHORT, signature, signatureErasure, SOMETHING, SUPPRESS_AJ_WARNINGS, THROWABLE, typeKind, typeParameters, typeVariables, VOID
-
Constructor Summary
ConstructorDescriptionMissingResolvedTypeWithKnownSignature(String signature, String signatureErasure, World world)
MissingResolvedTypeWithKnownSignature(String signature, World world)
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
collectInterTypeMungers(List collector)
???int
boolean
hasAnnotation(UnresolvedType ofType)
boolean
isAssignableFrom(ResolvedType other)
Determines if the variables of this type could be assigned values of another type without casting.boolean
isAssignableFrom(ResolvedType other, boolean allowMissing)
boolean
isCoerceableFrom(ResolvedType other)
Determines if values of another type could possibly be cast to this type.boolean
void
raiseWarningOnJoinPointSignature(String signature)
void
Methods inherited from class org.aspectj.weaver.ResolvedType
addAnnotation, addInterTypeMunger, addParent, ajMembersNeedParameterization, canAnnotationTargetType, canBeSeenBy, checkInterTypeMungers, checkLegalOverride, clearInterTypeMungers, collectCrosscuttingMembers, collectDeclares, conflictingSignature, conflictingSignature, discoverActualOccurrenceOfTypeInHierarchy, doesNotExposeShadowMungers, ensureConsistent, equals, fillInAnyTypeParameters, findPointcut, getAjMemberParameterizationMap, getAnnotationOfType, getAnnotationTargetKinds, getAnnotationTypes, getBinaryPath, getCompilerVersion, getDeclaredAdvice, getDeclaredJavaFields, getDeclaredJavaMethods, getDeclaredShadowMungers, getDeclares, getDeclaringType, getDirectSupertypes, getExposedPointcuts, getFields, getGenericType, getHierarchy, getHierarchy, getHierarchyWithoutIterator, getMemberParameterizationMap, getMethods, getMethodsIncludingIntertypeDeclarations, getMethodsWithoutIterator, getOuterClass, getPerClause, getPointcuts, getPrivilegedAccesses, getRawType, getResolvedComponentType, getResolvedTypeParameters, getSignatureForAttribute, getSize, getSourceLocation, getTopmostImplementor, getTypeMungers, getWeaverState, getWorld, hasAnnotations, isAbstract, isAnnotation, isAnnotationStyleAspect, isAnnotationWithRuntimeRetention, isAnonymous, isAspect, isCacheable, isCheckedException, isClass, isConvertableFrom, isEnum, isException, isExposedToWeaver, isFinal, isGroovyObject, isInheritedAnnotation, isInterface, isMissing, isMoreVisible, isNested, isParameterizedWithTypeVariable, isPrimitiveArray, isPrivilegedAspect, isSynthetic, isTopmostImplementor, isTypeHierarchyComplete, isVisible, lookupDirectlyDeclaredMemberNoSupers, lookupField, lookupMemberIncludingITDsOnInterfaces, lookupMemberNoSupers, lookupMemberWithSupersAndITDs, lookupMethod, lookupMethodInITDs, lookupResolvedMember, lookupSyntheticMember, makeArray, matches, needsNoConversionFrom, parameterize, parameterizedWith, setBinaryPath, tagAsTypeHierarchyComplete
Methods inherited from class org.aspectj.weaver.UnresolvedType
add, forGenericType, forGenericTypeSignature, forGenericTypeVariables, forName, forNames, forPrimitiveType, forRawTypeName, forSignature, forSignatures, getBaseName, getClassName, getComponentType, getErasureSignature, getName, getNameAsIdentifier, getNames, getOutermostType, getPackageName, getPackageNameAsIdentifier, getRawName, getSignature, getSimpleBaseName, getSimpleName, getTypekind, getTypeParameters, getTypeVariableNamed, getTypeVariables, hashCode, insert, isArray, isGenericType, isGenericWildcard, isParameterizedOrGenericType, isParameterizedOrRawType, isParameterizedType, isPrimitiveType, isRawType, isSimpleType, isTypeVariableReference, isVoid, makeArray, needsModifiableDelegate, read, readArray, resolve, setNeedsModifiableDelegate, toDebugString, toString, toTraceString, write, writeArray
-
Constructor Details
-
Method Details
-
isMissing
public boolean isMissing()- Overrides:
isMissing
in classResolvedType
-
getDeclaredFields
- Specified by:
getDeclaredFields
in classResolvedType
-
getDeclaredMethods
- Specified by:
getDeclaredMethods
in classResolvedType
-
getAnnotations
- Overrides:
getAnnotations
in classResolvedType
-
getDeclaredInterfaces
- Specified by:
getDeclaredInterfaces
in classResolvedType
-
getDeclaredPointcuts
- Specified by:
getDeclaredPointcuts
in classResolvedType
-
getSuperclass
- Specified by:
getSuperclass
in classResolvedType
- Returns:
- the superclass of this type, or null (if this represents a jlObject, primitive, or void)
-
getModifiers
public int getModifiers()- Specified by:
getModifiers
in classResolvedType
-
getSourceContext
- Specified by:
getSourceContext
in classResolvedType
-
isAssignableFrom
Description copied from class:ResolvedType
Determines if the variables of this type could be assigned values of another type without casting. This still allows for assignment conversion as per JLS 2ed 5.2. For object types, this means supertypeOrEqual(THIS, OTHER).- Specified by:
isAssignableFrom
in classResolvedType
- Parameters:
other
- the other type- Returns:
- true iff variables of this type could be assigned values of other without casting
-
isAssignableFrom
- Specified by:
isAssignableFrom
in classResolvedType
-
isCoerceableFrom
Description copied from class:ResolvedType
Determines if values of another type could possibly be cast to this type. The rules followed are from JLS 2ed 5.5, "Casting Conversion".This method should be commutative, i.e., for all UnresolvedType a, b and all World w:
a.isCoerceableFrom(b, w) == b.isCoerceableFrom(a, w)
- Specified by:
isCoerceableFrom
in classResolvedType
- Parameters:
other
- the other type- Returns:
- true iff values of other could possibly be cast to this type.
-
hasAnnotation
-
getInterTypeMungers
- Overrides:
getInterTypeMungers
in classResolvedType
-
getInterTypeMungersIncludingSupers
Description copied from class:ResolvedType
??? This method is O(N*M) where N = number of methods and M is number of inter-type declarations in my super- Overrides:
getInterTypeMungersIncludingSupers
in classResolvedType
-
getInterTypeParentMungers
- Overrides:
getInterTypeParentMungers
in classResolvedType
-
getInterTypeParentMungersIncludingSupers
- Overrides:
getInterTypeParentMungersIncludingSupers
in classResolvedType
-
collectInterTypeMungers
- Overrides:
collectInterTypeMungers
in classResolvedType
-
raiseWarningOnJoinPointSignature
-
raiseWarningOnMissingInterfaceWhilstFindingMethods
public void raiseWarningOnMissingInterfaceWhilstFindingMethods()
-