org.aspectj.ajdt.internal.compiler.lookup
Class AjLookupEnvironment

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment
      extended by 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. 1. To provide some additional phases to completeTypeBindings that weave declare parents and inter-type declarations at the correct time. 2. To intercept the loading of new binary types to ensure the they will have declare parents and inter-type declarations woven when appropriate.


Field Summary
 EclipseFactory factory
           
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment
arrayClone, BUILD_FIELDS_AND_METHODS, BUILD_TYPE_HIERARCHY, CHECK_AND_SET_IMPORTS, classFilePool, CONNECT_TYPE_HIERARCHY, defaultPackage, globalOptions, isProcessingAnnotations, lastCompletedUnitIndex, lastUnitIndex, missingClassFileLocation, nameEnvironment, problemReporter, stepCompleted, typeRequestor, unitBeingCompleted, units
 
Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ProblemReasons
Ambiguous, IllegalSuperTypeVariable, InheritedNameHidesEnclosingName, InternalNameProvided, InvalidTypeForAutoManagedResource, InvalidTypeForStaticImport, NoError, NonStaticReferenceInConstructorInvocation, NonStaticReferenceInStaticContext, NotFound, NotVisible, ParameterBoundMismatch, ParameterizedMethodTypeMismatch, ReceiverTypeNotVisible, TypeArgumentsForRawGenericMethod, TypeParameterArityMismatch
 
Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeConstants
ANNOTATION, ANNOTATION_PREFIX, ANNOTATION_SUFFIX, ANONYM_PREFIX, ANONYM_SUFFIX, BOOLEAN, BYTE, 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, CLINIT, CLONE, CONSTRAINT_EQUAL, CONSTRAINT_EXTENDS, CONSTRAINT_SUPER, DOUBLE, EQUALS, FLOAT, GETCLASS, HASHCODE, INIT, INT, INVOKE, IO, JAVA, JAVA_IO, JAVA_IO_EXTERNALIZABLE, JAVA_IO_IOEXCEPTION, JAVA_IO_OBJECTINPUTSTREAM, JAVA_IO_OBJECTOUTPUTSTREAM, JAVA_IO_OBJECTSTREAMEXCEPTION, JAVA_IO_PRINTSTREAM, JAVA_IO_SERIALIZABLE, JAVA_LANG, JAVA_LANG_ANNOTATION_ANNOTATION, JAVA_LANG_ANNOTATION_DOCUMENTED, JAVA_LANG_ANNOTATION_ELEMENTTYPE, JAVA_LANG_ANNOTATION_INHERITED, 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_DEPRECATED, JAVA_LANG_DOUBLE, JAVA_LANG_ENUM, JAVA_LANG_ERROR, JAVA_LANG_EXCEPTION, JAVA_LANG_FLOAT, JAVA_LANG_ILLEGALARGUMENTEXCEPTION, JAVA_LANG_INTEGER, JAVA_LANG_INVOKE_METHODHANDLE_$_POLYMORPHICSIGNATURE, JAVA_LANG_INVOKE_METHODHANDLE_POLYMORPHICSIGNATURE, JAVA_LANG_ITERABLE, JAVA_LANG_LONG, JAVA_LANG_NOCLASSDEFERROR, JAVA_LANG_OBJECT, JAVA_LANG_OVERRIDE, JAVA_LANG_REFLECT_CONSTRUCTOR, JAVA_LANG_REFLECT_FIELD, JAVA_LANG_REFLECT_METHOD, 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_UTIL_COLLECTION, JAVA_UTIL_ITERATOR, JAVAX_RMI_CORBA_STUB, LANG, LENGTH, LONG, MAIN, MISMATCH, NULL, OBJECT, OK, PACKAGE_INFO_NAME, READOBJECT, READRESOLVE, REFLECT, SERIALPERSISTENTFIELDS, SERIALVERSIONUID, SHORT, 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, TYPE, UNCHECKED, UPPER_ANNOTATION_TYPE, UPPER_CLASS, UPPER_CONSTRUCTOR, UPPER_FIELD, UPPER_LOCAL_VARIABLE, UPPER_METHOD, UPPER_PACKAGE, UPPER_PARAMETER, UPPER_RUNTIME, UPPER_SOURCE, UTIL, VALUE, VALUEOF, VALUES, VOID, WILDCARD_CAPTURE, WILDCARD_CAPTURE_NAME_PREFIX, WILDCARD_CAPTURE_NAME_SUFFIX, WILDCARD_EXTENDS, WILDCARD_MINUS, WILDCARD_NAME, WILDCARD_PLUS, WILDCARD_STAR, WILDCARD_SUPER, WRITEOBJECT, WRITEREPLACE
 
Constructor Summary
AjLookupEnvironment(ITypeRequestor typeRequestor, CompilerOptions options, ProblemReporter problemReporter, INameEnvironment nameEnvironment)
           
 
Method Summary
 void anonymousTypeBindingCreated(LocalTypeBinding aBinding)
          Callback driven when the compiler detects an anonymous type during block resolution.
 void completeTypeBindings()
           
 BinaryTypeBinding createBinaryTypeFrom(IBinaryType binaryType, PackageBinding packageBinding, boolean needFieldsAndMethods, AccessRestriction accessRestriction)
           
 void doSupertypesFirst(ReferenceBinding rb, java.util.Collection yetToProcess)
           
 void warnOnAddedInterface(ResolvedType type, ResolvedType parent)
           
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment
askForType, buildTypeBindings, cacheBinaryType, cacheBinaryType, completeTypeBindings, completeTypeBindings, completeTypeBindings, computeArrayClone, computeBoxingType, convertToParameterizedType, convertToRawType, convertToRawTypes, convertUnresolvedBinaryToRawType, createAnnotation, createArrayType, createBinaryTypeFrom, createGetClassMethod, createMissingType, createPackage, createParameterizedGenericMethod, createParameterizedGenericMethod, createParameterizedType, createPolymorphicMethod, createRawType, createWildcard, getAccessRestriction, getCachedType, getResolvedType, getType, getTypeFromTypeSignature, methodVerifier, newMethodVerifier, releaseClassFiles, reset, setAccessRestriction, updatePolymorphicMethodReturnType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

factory

public EclipseFactory factory
Constructor Detail

AjLookupEnvironment

public AjLookupEnvironment(ITypeRequestor typeRequestor,
                           CompilerOptions options,
                           ProblemReporter problemReporter,
                           INameEnvironment nameEnvironment)
Method Detail

completeTypeBindings

public void completeTypeBindings()
Overrides:
completeTypeBindings in class LookupEnvironment

doSupertypesFirst

public void doSupertypesFirst(ReferenceBinding rb,
                              java.util.Collection yetToProcess)

warnOnAddedInterface

public void warnOnAddedInterface(ResolvedType type,
                                 ResolvedType parent)

createBinaryTypeFrom

public BinaryTypeBinding createBinaryTypeFrom(IBinaryType binaryType,
                                              PackageBinding packageBinding,
                                              boolean needFieldsAndMethods,
                                              AccessRestriction accessRestriction)
Overrides:
createBinaryTypeFrom in class LookupEnvironment

anonymousTypeBindingCreated

public void anonymousTypeBindingCreated(LocalTypeBinding aBinding)
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 interface AnonymousClassCreationListener
Parameters:
aBinding -