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.CompleteTypeBindingsSteps
Nested classes/interfaces inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeConstants
TypeConstants.BoundCheckStatus, TypeConstants.CloseMethodRecord, TypeConstants.DangerousMethod
-
Field Summary
Fields 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, UnNamedModule
Fields 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, NoError, NonStaticOrAlienTypeReceiver, NonStaticReferenceInConstructorInvocation, NonStaticReferenceInStaticContext, NoProperEnclosingInstance, NoSuchMethodOnArray, NoSuchSingleAbstractMethod, NotAccessible, NotAWellFormedParameterizedType, NotFound, NotVisible, ParameterBoundMismatch, ParameterizedMethodTypeMismatch, ReceiverTypeNotVisible, TypeArgumentsForRawGenericMethod, TypeParameterArityMismatch, VarargsElementTypeNotVisible
Fields 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, 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, ESSENTIAL_API, FACTORY, FILTER, FLOAT, FLUENT_RESOURCE_CLASSES, FOR_REMOVAL, FRAMEWORK, GET, 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_IO, JAVA_IO_CLOSEABLE, JAVA_IO_EXTERNALIZABLE, 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_NOCLASSDEFERROR, 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_RUNTIME_TEMPLATERUNTIME, JAVA_LANG_RUNTIMEEXCEPTION, JAVA_LANG_SAFEVARARGS, JAVA_LANG_SHORT, JAVA_LANG_STRING, JAVA_LANG_STRING_TEMPLATE_STR, JAVA_LANG_STRINGBUFFER, JAVA_LANG_STRINGBUILDER, JAVA_LANG_STRINGTEMPLATE, JAVA_LANG_STRINGTEMPLATE_PROCESSOR, 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, 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, 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
ConstructorDescriptionAjLookupEnvironment
(ITypeRequestor typeRequestor, CompilerOptions options, ProblemReporter problemReporter, INameEnvironment nameEnvironment) AjLookupEnvironment
(LookupEnvironment env, ModuleBinding moduleBinding) -
Method Summary
Modifier and TypeMethodDescriptionvoid
anonymousTypeBindingCreated
(LocalTypeBinding aBinding) Callback driven when the compiler detects an anonymous type during block resolution.void
buildTypeBindings
(CompilationUnitDeclaration unit, AccessRestriction accessRestriction) void
createBinaryTypeFrom
(IBinaryType binaryType, PackageBinding packageBinding, boolean needFieldsAndMethods, AccessRestriction accessRestriction) 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.void
reset()
void
warnOnAddedInterface
(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, 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, 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:
completeTypeBindings
in 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:
createBinaryTypeFrom
in 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:
anonymousTypeBindingCreated
in interfaceAnonymousClassCreationListener
- Parameters:
aBinding
-
-
buildTypeBindings
- Overrides:
buildTypeBindings
in classLookupEnvironment
-
reset
public void reset()- Overrides:
reset
in classLookupEnvironment
-
wrapInModuleEnvironment
- Overrides:
wrapInModuleEnvironment
in classLookupEnvironment
-