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, worldFields 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
ConstructorsConstructorDescriptionMissingResolvedTypeWithKnownSignature(String signature, String signatureErasure, World world) MissingResolvedTypeWithKnownSignature(String signature, World world) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcollectInterTypeMungers(List collector) ???intbooleanhasAnnotation(UnresolvedType ofType) booleanisAssignableFrom(ResolvedType other) Determines if the variables of this type could be assigned values of another type without casting.booleanisAssignableFrom(ResolvedType other, boolean allowMissing) booleanisCoerceableFrom(ResolvedType other) Determines if values of another type could possibly be cast to this type.booleanvoidraiseWarningOnJoinPointSignature(String signature) voidMethods 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, tagAsTypeHierarchyCompleteMethods 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:
isMissingin classResolvedType
-
getDeclaredFields
- Specified by:
getDeclaredFieldsin classResolvedType
-
getDeclaredMethods
- Specified by:
getDeclaredMethodsin classResolvedType
-
getAnnotations
- Overrides:
getAnnotationsin classResolvedType
-
getDeclaredInterfaces
- Specified by:
getDeclaredInterfacesin classResolvedType
-
getDeclaredPointcuts
- Specified by:
getDeclaredPointcutsin classResolvedType
-
getSuperclass
- Specified by:
getSuperclassin classResolvedType- Returns:
- the superclass of this type, or null (if this represents a jlObject, primitive, or void)
-
getModifiers
public int getModifiers()- Specified by:
getModifiersin classResolvedType
-
getSourceContext
- Specified by:
getSourceContextin classResolvedType
-
isAssignableFrom
Description copied from class:ResolvedTypeDetermines 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:
isAssignableFromin classResolvedType- Parameters:
other- the other type- Returns:
- true iff variables of this type could be assigned values of other without casting
-
isAssignableFrom
- Specified by:
isAssignableFromin classResolvedType
-
isCoerceableFrom
Description copied from class:ResolvedTypeDetermines 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:
isCoerceableFromin classResolvedType- Parameters:
other- the other type- Returns:
- true iff values of other could possibly be cast to this type.
-
hasAnnotation
-
getInterTypeMungers
- Overrides:
getInterTypeMungersin 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:
getInterTypeMungersIncludingSupersin classResolvedType
-
getInterTypeParentMungers
- Overrides:
getInterTypeParentMungersin classResolvedType
-
getInterTypeParentMungersIncludingSupers
- Overrides:
getInterTypeParentMungersIncludingSupersin classResolvedType
-
collectInterTypeMungers
- Overrides:
collectInterTypeMungersin classResolvedType
-
raiseWarningOnJoinPointSignature
-
raiseWarningOnMissingInterfaceWhilstFindingMethods
public void raiseWarningOnMissingInterfaceWhilstFindingMethods()
-