Class AjLookupEnvironment
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment
org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment
- All Implemented Interfaces:
AnonymousClassCreationListener,ProblemReasons,TypeConstants
public class AjLookupEnvironment
extends LookupEnvironment
implements AnonymousClassCreationListener
Overrides the default Eclipse
LookupEnvironment for two purposes:
-
To provide some additional phases to
completeTypeBindings, that weave declare parents and inter-type declarations at the correct time. - To intercept loading of new binary types, to ensure they will have declare parents and inter-type declarations woven when appropriate.
- Author:
- Jim Hugunin
-
Nested Class Summary
Nested classes/interfaces inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment
LookupEnvironment.CompleteTypeBindingsStepsNested classes/interfaces inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeConstants
TypeConstants.BoundCheckStatus, TypeConstants.CloseMethodRecord, TypeConstants.DangerousMethod -
Field Summary
FieldsFields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment
classFilePool, defaultPackage, globalOptions, isProcessingAnnotations, JavaBaseModule, knownModules, lastCompletedUnitIndex, lastUnitIndex, mayTolerateMissingType, missingClassFileLocation, module, moduleVersion, nameEnvironment, problemReporter, requestingType, resolutionListeners, root, stepCompleted, suppressImportErrors, typeRequestor, unitBeingCompleted, units, UnNamedModuleFields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ProblemReasons
Ambiguous, ApplicableMethodOverriddenByInapplicable, AttemptToBypassDirectSuper, ContradictoryNullAnnotations, DefectiveContainerAnnotationType, ErrorAlreadyReported, IllegalSuperTypeVariable, InferredApplicableMethodInapplicable, InheritedNameHidesEnclosingName, InterfaceMethodInvocationNotBelow18, InternalNameProvided, InvalidTypeForAutoManagedResource, InvalidTypeForStaticImport, InvocationTypeInferenceFailure, MissingTypeInSignature, NoError, NonStaticOrAlienTypeReceiver, NonStaticReferenceInConstructorInvocation, NonStaticReferenceInStaticContext, NoProperEnclosingInstance, NoSuchMethodOnArray, NoSuchSingleAbstractMethod, NotAccessible, NotAWellFormedParameterizedType, NotFound, NotVisible, ParameterBoundMismatch, ParameterizedMethodTypeMismatch, ReceiverTypeNotVisible, TypeArgumentsForRawGenericMethod, TypeParameterArityMismatch, VarargsElementTypeNotVisibleFields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeConstants
ANNOTATION, ANNOTATION_PREFIX, ANNOTATION_SUFFIX, ANONYM_PREFIX, ANONYM_SUFFIX, ANONYMOUS_METHOD, APACHE, APACHE_DBUTILS, APACHE_IOUTILS, API, ASSERT_CLASS, ASSERT_FALSE, ASSERT_NOTNULL, ASSERT_NULL, ASSERT_TRUE, ASSERTIONS_CLASS, AUTOMATIC_MODULE_NAME, AUTOWIRED, BASE, BEANS, BOOLEAN, BYTE, CAPTURE18, CHANNELS, CHAR, CharArray_JAVA_IO_OBJECTINPUTSTREAM, CharArray_JAVA_IO_OBJECTOUTPUTSTREAM, CharArray_JAVA_IO_OBJECTSTREAMFIELD, CharArray_JAVA_LANG_ANNOTATION_ANNOTATION, CharArray_JAVA_LANG_ENUM, CharArray_JAVA_LANG_OBJECT, CharArray_JAVA_LANG_RECORD, CharArray_JAVA_LANG_RECORD_SLASH, CHECK_ARGUMENT, CHECK_NOT_NULL, CHECK_STATE, CLINIT, CLONE, CLOSE, CLOSE_QUIETLY, closeMethods, COM, COM_GOOGLE_COMMON_BASE_PRECONDITIONS, COM_GOOGLE_INJECT_INJECT, COMMONS, COMPILER, CONSTRAINT_EQUAL, CONSTRAINT_EXTENDS, CONSTRAINT_SUPER, CONTAINS, CONTAINS_ALL, CONTAINS_KEY, CONTAINS_VALUE, CORE, DEFAULT_LOCATION__ARRAY_CONTENTS, DEFAULT_LOCATION__FIELD, DEFAULT_LOCATION__PARAMETER, DEFAULT_LOCATION__RETURN_TYPE, DEFAULT_LOCATION__TYPE_ARGUMENT, DEFAULT_LOCATION__TYPE_BOUND, DEFAULT_LOCATION__TYPE_PARAMETER, DESERIALIZE_LAMBDA, DOM, DOUBLE, ECLIPSE, EQUALS, FACTORY, FILTER, FLOAT, FLUENT_RESOURCE_CLASSES, FOR_REMOVAL, FRAMEWORK, GET, GET_STATIC_FINAL, GET_STATIC_FINAL__SIGNATURE, GETCLASS, GOOGLE, GUAVA_CLOSEABLES, HASHCODE, IMPLEMENTS, INDEX_OF, INIT, INJECT_PACKAGE, INJECT_TYPE, INT, INTERNAL, INVOKE, IO, IS_INSTANCE, IS_NOTNULL, IS_NULL, IS_TRUE, ITYPEBINDING, JAKARTA, JAKARTA_ANNOTATION_INJECT_INJECT, JAVA, JAVA_BASE, JAVA_DOT_BASE, JAVA_IO, JAVA_IO_CLOSEABLE, JAVA_IO_EXTERNALIZABLE, JAVA_IO_IO, JAVA_IO_IOEXCEPTION, JAVA_IO_OBJECTINPUTSTREAM, JAVA_IO_OBJECTOUTPUTSTREAM, JAVA_IO_OBJECTSTREAMEXCEPTION, JAVA_IO_PRINTSTREAM, JAVA_IO_RESOURCE_FREE_CLOSEABLES, JAVA_IO_SERIALIZABLE, JAVA_IO_WRAPPER_CLOSEABLES, JAVA_LANG, JAVA_LANG_ANNOTATION, JAVA_LANG_ANNOTATION_ANNOTATION, JAVA_LANG_ANNOTATION_DOCUMENTED, JAVA_LANG_ANNOTATION_ELEMENTTYPE, JAVA_LANG_ANNOTATION_INHERITED, JAVA_LANG_ANNOTATION_REPEATABLE, JAVA_LANG_ANNOTATION_RETENTION, JAVA_LANG_ANNOTATION_RETENTIONPOLICY, JAVA_LANG_ANNOTATION_TARGET, JAVA_LANG_ASSERTIONERROR, JAVA_LANG_AUTOCLOSEABLE, JAVA_LANG_BOOLEAN, JAVA_LANG_BYTE, JAVA_LANG_CHARACTER, JAVA_LANG_CLASS, JAVA_LANG_CLASSNOTFOUNDEXCEPTION, JAVA_LANG_CLONEABLE, JAVA_LANG_CONSTANT_CLASSDESC, JAVA_LANG_DEPRECATED, JAVA_LANG_DOUBLE, JAVA_LANG_ENUM, JAVA_LANG_ENUM_ENUMDESC, JAVA_LANG_ERROR, JAVA_LANG_EXCEPTION, JAVA_LANG_FLOAT, JAVA_LANG_FUNCTIONAL_INTERFACE, JAVA_LANG_ILLEGALARGUMENTEXCEPTION, JAVA_LANG_INCOMPATIBLECLASSCHANGEERROR, JAVA_LANG_INTEGER, JAVA_LANG_INVOKE_CONSTANTBOOTSTRAP, JAVA_LANG_INVOKE_LAMBDAMETAFACTORY, JAVA_LANG_INVOKE_METHODHANDLE, JAVA_LANG_INVOKE_METHODHANDLE_$_POLYMORPHICSIGNATURE, JAVA_LANG_INVOKE_METHODHANDLE_POLYMORPHICSIGNATURE, JAVA_LANG_INVOKE_METHODHANDLES, JAVA_LANG_INVOKE_SERIALIZEDLAMBDA, JAVA_LANG_INVOKE_STRING_CONCAT_FACTORY, JAVA_LANG_INVOKE_VARHANDLE, JAVA_LANG_ITERABLE, JAVA_LANG_LONG, JAVA_LANG_NOCLASSDEFFOUNDERROR, JAVA_LANG_NOSUCHFIELDERROR, JAVA_LANG_OBJECT, JAVA_LANG_OVERRIDE, JAVA_LANG_RECORD, JAVA_LANG_REFLECT_CONSTRUCTOR, JAVA_LANG_REFLECT_FIELD, JAVA_LANG_REFLECT_METHOD, JAVA_LANG_RUNTIME_OBJECTMETHODS, JAVA_LANG_RUNTIME_SWITCHBOOTSTRAPS, JAVA_LANG_RUNTIMEEXCEPTION, JAVA_LANG_SAFEVARARGS, JAVA_LANG_SHORT, JAVA_LANG_STRING, JAVA_LANG_STRINGBUFFER, JAVA_LANG_STRINGBUILDER, JAVA_LANG_SUPPRESSWARNINGS, JAVA_LANG_SYSTEM, JAVA_LANG_THROWABLE, JAVA_LANG_VOID, JAVA_NIO_FILE_FILES, JAVA_UTIL_ARRAYS, JAVA_UTIL_COLLECTION, JAVA_UTIL_ITERATOR, JAVA_UTIL_LIST, JAVA_UTIL_MAP, JAVA_UTIL_OBJECTS, JAVA_UTIL_STREAM, JAVA_UTIL_STREAM__STREAM, JAVA_UTIL_ZIP_WRAPPER_CLOSEABLES, JAVAC, JAVAX, JAVAX_ANNOTATION_INJECT_INJECT, JAVAX_RMI_CORBA_STUB, JDK, JDK_INTERNAL_JAVAC_PREVIEW_FEATURE, JDK_INTERNAL_PREVIEW_FEATURE, JDK_INTERNAL_VALUEBASED, JDT, JUNIT, JUNIT_FRAMEWORK_ASSERT, JUPITER, KEYWORD_EXTENDS, LAMBDA_TYPE, LANG, LANG3, LAST_INDEX_OF, LENGTH, LONG, LOOKUP, MAIN, META_INF_MANIFEST_MF, METHOD_SOURCE, MODULE_INFO_CLASS_NAME, MODULE_INFO_CLASS_NAME_STRING, MODULE_INFO_FILE_NAME, MODULE_INFO_FILE_NAME_STRING, MODULE_INFO_NAME, MODULE_INFO_NAME_STRING, NEXT, NIO, NON_NULL, NON_SEALED, NOT_NULL, NULL, OBJECT, ONE_UTIL_STREAMEX, OPTIONAL, ORG, ORG_APACHE_COMMONS_LANG_VALIDATE, ORG_APACHE_COMMONS_LANG3_VALIDATE, ORG_ECLIPSE_CORE_RUNTIME_ASSERT, ORG_ECLIPSE_JDT_CORE_DOM_ITYPEBINDING, ORG_ECLIPSE_JDT_INTERNAL_COMPILER_LOOKUP_TYPEBINDING, ORG_JUNIT_ASSERT, ORG_JUNIT_JUPITER_API_ASSERTIONS, ORG_JUNIT_METHOD_SOURCE, ORG_SPRING_AUTOWIRED, OTHER_WRAPPER_CLOSEABLES, PACKAGE_INFO_NAME, PARAMS, PERMITS, PRIMITIVE_CLASS, PRIMITIVE_CLASS__SIGNATURE, PROVIDER, READOBJECT, READRESOLVE, RECORD_CLASS, RECORD_RESTRICTED_IDENTIFIER, REFLECT, REMOVE, REMOVE_ALL, REQUIRE_NON_NULL, REQUIRED, RESOURCE_FREE_CLOSEABLE_J_U_STREAMS, RESOURCE_FREE_CLOSEABLE_STREAMEX, RETAIN_ALL, RUNTIME, SEALED, SERIALPERSISTENTFIELDS, SERIALVERSIONUID, SHORT, SINCE, SPRING, STRING_CONCAT_MARKER_1, SYNTHETIC_ACCESS_METHOD_PREFIX, SYNTHETIC_ASSERT_DISABLED, SYNTHETIC_CLASS, SYNTHETIC_ENCLOSING_INSTANCE_PREFIX, SYNTHETIC_ENUM_CONSTANT_INITIALIZATION_METHOD_PREFIX, SYNTHETIC_ENUM_VALUES, SYNTHETIC_OUTER_LOCAL_PREFIX, SYNTHETIC_STATIC_FACTORY, SYNTHETIC_SWITCH_ENUM_TABLE, TOSTRING, TYPE, TYPE_PARAMETER_TARGET, TYPE_USE_TARGET, TYPEBINDING, UPPER_ANNOTATION_TYPE, UPPER_CLASS, UPPER_CONSTRUCTOR, UPPER_FIELD, UPPER_LOCAL_VARIABLE, UPPER_METHOD, UPPER_MODULE, UPPER_PACKAGE, UPPER_PARAMETER, UPPER_RECORD_COMPONENT, UPPER_RUNTIME, UPPER_SOURCE, UTIL, VALIDATE_CLASS, VALUE, VALUEOF, VALUES, VAR, VOID, WILDCARD_CAPTURE, WILDCARD_CAPTURE_NAME_PREFIX, WILDCARD_CAPTURE_NAME_SUFFIX, WILDCARD_CAPTURE_SIGNABLE_NAME_SUFFIX, WILDCARD_EXTENDS, WILDCARD_MINUS, WILDCARD_NAME, WILDCARD_PLUS, WILDCARD_STAR, WILDCARD_SUPER, WRITEOBJECT, WRITEREPLACE, YIELD, ZIP -
Constructor Summary
ConstructorsConstructorDescriptionAjLookupEnvironment(ITypeRequestor typeRequestor, CompilerOptions options, ProblemReporter problemReporter, INameEnvironment nameEnvironment) AjLookupEnvironment(LookupEnvironment env, ModuleBinding moduleBinding) -
Method Summary
Modifier and TypeMethodDescriptionvoidanonymousTypeBindingCreated(LocalTypeBinding aBinding) Callback driven when the compiler detects an anonymous type during block resolution.voidbuildTypeBindings(CompilationUnitDeclaration unit, AccessRestriction accessRestriction) voidcreateBinaryTypeFrom(IBinaryType binaryType, PackageBinding packageBinding, boolean needFieldsAndMethods, AccessRestriction accessRestriction) voiddoSupertypesFirst(ReferenceBinding rb, Collection<? extends ReferenceBinding> yetToProcess) For any given sourcetypebinding, this method checks that if it is a parameterized aspect, the type parameters specified for any supertypes meet the bounds for the generic type variables.voidreset()voidwarnOnAddedInterface(ResolvedType type, ResolvedType parent) wrapInModuleEnvironment(ModuleBinding moduleBinding) Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment
addResolutionListener, askForType, cacheBinaryType, cacheBinaryType, canTypeBeAccessed, checkForMissingAnalysisAnnotation, completeTypeBindings, completeTypeBindings, completeTypeBindings, completeTypeBindings, computeBoxingType, containsNullTypeAnnotation, containsNullTypeAnnotation, convertToParameterizedType, convertToRawType, convertToRawTypes, convertUnresolvedBinaryToRawType, createAnnotatedType, createAnnotatedType, createAnnotation, createArrayType, createArrayType, createBinaryTypeFrom, createCapturedWildcard, createGetClassMethod, createIntersectionType18, createMemberType, createMissingType, createNonNullAnnotatedType, createPackage, createParameterizedGenericMethod, createParameterizedGenericMethod, createParameterizedGenericMethod, createParameterizedGenericMethod, createParameterizedType, createParameterizedType, createPlainPackage, createPolymorphicMethod, createRawType, createRawType, createUnresolvedAnnotation, createWildcard, createWildcard, filterNullTypeAnnotations, getAccessRestriction, getAnnotatedTypes, getCachedType, getCachedType0, getInaccessibleBinding, getModule, getNonNullAnnotation, getNonNullAnnotationName, getNonNullByDefaultAnnotationName, getNotOwningAnnotation, getNotOwningAnnotationName, getNullableAnnotation, getNullableAnnotationName, getOwningAnnotation, getOwningAnnotationName, getResolvedJavaBaseType, getResolvedType, getResolvedType, getType, getType, getTypeFromConstantPoolName, getTypeFromTypeSignature, getUnannotatedType, isNullnessAnnotationPackage, javaBaseModule, maybeCreateParameterizedType, methodVerifier, newMethodVerifier, nullAnnotationsFromTagBits, releaseClassFiles, setAccessRestriction, updatePolymorphicMethodReturnType, usesAnnotatedTypeSystem, usesNullTypeAnnotations, usesOwningAnnotations
-
Field Details
-
factory
-
-
Constructor Details
-
AjLookupEnvironment
public AjLookupEnvironment(ITypeRequestor typeRequestor, CompilerOptions options, ProblemReporter problemReporter, INameEnvironment nameEnvironment) -
AjLookupEnvironment
-
-
Method Details
-
completeTypeBindings
public void completeTypeBindings()- Overrides:
completeTypeBindingsin classLookupEnvironment
-
doSupertypesFirst
public void doSupertypesFirst(ReferenceBinding rb, Collection<? extends ReferenceBinding> yetToProcess) For any given sourcetypebinding, this method checks that if it is a parameterized aspect, the type parameters specified for any supertypes meet the bounds for the generic type variables. -
warnOnAddedInterface
-
createBinaryTypeFrom
public BinaryTypeBinding createBinaryTypeFrom(IBinaryType binaryType, PackageBinding packageBinding, boolean needFieldsAndMethods, AccessRestriction accessRestriction) - Overrides:
createBinaryTypeFromin classLookupEnvironment
-
anonymousTypeBindingCreated
Callback driven when the compiler detects an anonymous type during block resolution. We need to add it to the weaver so that we don't trip up later.- Specified by:
anonymousTypeBindingCreatedin interfaceAnonymousClassCreationListener- Parameters:
aBinding-
-
buildTypeBindings
- Overrides:
buildTypeBindingsin classLookupEnvironment
-
reset
public void reset()- Overrides:
resetin classLookupEnvironment
-
wrapInModuleEnvironment
- Overrides:
wrapInModuleEnvironmentin classLookupEnvironment
-