org.aspectj.org.eclipse.jdt.internal.compiler.lookup
Class LookupEnvironment
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment
- All Implemented Interfaces:
- ProblemReasons, TypeConstants
- Direct Known Subclasses:
- AjLookupEnvironment
public class LookupEnvironment
- extends java.lang.Object
- implements ProblemReasons, TypeConstants
AspectJ Extension - made many methods and fields more visible for extension
Also modified error checking on getType(char[][] compoundName) to allow
refering to inner types directly.
| Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ProblemReasons |
Ambiguous, IllegalSuperTypeVariable, InheritedNameHidesEnclosingName, InternalNameProvided, 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, FLOAT, GETCLASS, INIT, INT, 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_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_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_SHORT, JAVA_LANG_STRING, JAVA_LANG_STRINGBUFFER, JAVA_LANG_STRINGBUILDER, JAVA_LANG_SUPPRESSWARNINGS, JAVA_LANG_SYSTEM, JAVA_LANG_THROWABLE, JAVA_LANG_VOID, JAVA_UTIL_ITERATOR, 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_VALUES, SYNTHETIC_OUTER_LOCAL_PREFIX, 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 |
|
Method Summary |
ReferenceBinding |
askForType(char[][] compoundName)
Ask the name environment for a type which corresponds to the compoundName. |
void |
buildTypeBindings(CompilationUnitDeclaration unit,
AccessRestriction accessRestriction)
|
BinaryTypeBinding |
cacheBinaryType(IBinaryType binaryType,
AccessRestriction accessRestriction)
|
BinaryTypeBinding |
cacheBinaryType(IBinaryType binaryType,
boolean needFieldsAndMethods,
AccessRestriction accessRestriction)
|
BinaryTypeBinding |
cacheMissingBinaryType(char[][] compoundName,
CompilationUnitDeclaration unit)
|
void |
completeTypeBindings()
|
void |
completeTypeBindings(CompilationUnitDeclaration parsedUnit)
|
void |
completeTypeBindings(CompilationUnitDeclaration parsedUnit,
boolean buildFieldsAndMethods)
|
TypeBinding |
computeBoxingType(TypeBinding type)
|
ReferenceBinding |
convertToParameterizedType(ReferenceBinding originalType)
Convert a given source type into a parameterized form if generic. |
TypeBinding |
convertToRawType(TypeBinding type)
|
TypeBinding |
convertUnresolvedBinaryToRawType(TypeBinding type)
|
AnnotationBinding |
createAnnotation(ReferenceBinding annotationType,
ElementValuePair[] pairs)
|
ArrayBinding |
createArrayType(TypeBinding leafComponentType,
int dimensionCount)
|
BinaryTypeBinding |
createBinaryTypeFrom(IBinaryType binaryType,
PackageBinding packageBinding,
AccessRestriction accessRestriction)
|
BinaryTypeBinding |
createBinaryTypeFrom(IBinaryType binaryType,
PackageBinding packageBinding,
boolean needFieldsAndMethods,
AccessRestriction accessRestriction)
|
PackageBinding |
createPackage(char[][] compoundName)
|
ParameterizedGenericMethodBinding |
createParameterizedGenericMethod(MethodBinding genericMethod,
RawTypeBinding rawType)
|
ParameterizedGenericMethodBinding |
createParameterizedGenericMethod(MethodBinding genericMethod,
TypeBinding[] typeArguments)
|
ParameterizedTypeBinding |
createParameterizedType(ReferenceBinding genericType,
TypeBinding[] typeArguments,
ReferenceBinding enclosingType)
|
RawTypeBinding |
createRawType(ReferenceBinding genericType,
ReferenceBinding enclosingType)
|
WildcardBinding |
createWildcard(ReferenceBinding genericType,
int rank,
TypeBinding bound,
TypeBinding[] otherBounds,
int boundKind)
|
AccessRestriction |
getAccessRestriction(TypeBinding type)
Returns the access restriction associated to a given type, or null if none |
ReferenceBinding |
getCachedType(char[][] compoundName)
Answer the type for the compoundName if it exists in the cache. |
ReferenceBinding |
getResolvedType(char[][] compoundName,
Scope scope)
|
ReferenceBinding |
getType(char[][] compoundName)
|
MethodVerifier |
methodVerifier()
|
void |
reset()
|
void |
setAccessRestriction(ReferenceBinding type,
AccessRestriction accessRestriction)
Associate a given type with some access restriction
(did not store the restriction directly into binding, since sparse information) |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BUILD_FIELDS_AND_METHODS
protected static final int BUILD_FIELDS_AND_METHODS
- See Also:
- Constant Field Values
BUILD_TYPE_HIERARCHY
protected static final int BUILD_TYPE_HIERARCHY
- See Also:
- Constant Field Values
CHECK_AND_SET_IMPORTS
protected static final int CHECK_AND_SET_IMPORTS
- See Also:
- Constant Field Values
CONNECT_TYPE_HIERARCHY
protected static final int CONNECT_TYPE_HIERARCHY
- See Also:
- Constant Field Values
defaultPackage
public PackageBinding defaultPackage
lastCompletedUnitIndex
protected int lastCompletedUnitIndex
lastUnitIndex
protected int lastUnitIndex
nameEnvironment
public INameEnvironment nameEnvironment
globalOptions
public CompilerOptions globalOptions
problemReporter
public ProblemReporter problemReporter
classFilePool
public ClassFilePool classFilePool
stepCompleted
protected int stepCompleted
typeRequestor
public ITypeRequestor typeRequestor
unitBeingCompleted
public CompilationUnitDeclaration unitBeingCompleted
missingClassFileLocation
public java.lang.Object missingClassFileLocation
units
protected CompilationUnitDeclaration[] units
LookupEnvironment
public LookupEnvironment(ITypeRequestor typeRequestor,
CompilerOptions globalOptions,
ProblemReporter problemReporter,
INameEnvironment nameEnvironment)
askForType
public ReferenceBinding askForType(char[][] compoundName)
- Ask the name environment for a type which corresponds to the compoundName.
Answer null if the name cannot be found.
buildTypeBindings
public void buildTypeBindings(CompilationUnitDeclaration unit,
AccessRestriction accessRestriction)
cacheBinaryType
public BinaryTypeBinding cacheBinaryType(IBinaryType binaryType,
AccessRestriction accessRestriction)
cacheBinaryType
public BinaryTypeBinding cacheBinaryType(IBinaryType binaryType,
boolean needFieldsAndMethods,
AccessRestriction accessRestriction)
cacheMissingBinaryType
public BinaryTypeBinding cacheMissingBinaryType(char[][] compoundName,
CompilationUnitDeclaration unit)
completeTypeBindings
public void completeTypeBindings()
completeTypeBindings
public void completeTypeBindings(CompilationUnitDeclaration parsedUnit)
completeTypeBindings
public void completeTypeBindings(CompilationUnitDeclaration parsedUnit,
boolean buildFieldsAndMethods)
computeBoxingType
public TypeBinding computeBoxingType(TypeBinding type)
convertToParameterizedType
public ReferenceBinding convertToParameterizedType(ReferenceBinding originalType)
- Convert a given source type into a parameterized form if generic.
generic X --> param X
convertToRawType
public TypeBinding convertToRawType(TypeBinding type)
convertUnresolvedBinaryToRawType
public TypeBinding convertUnresolvedBinaryToRawType(TypeBinding type)
createAnnotation
public AnnotationBinding createAnnotation(ReferenceBinding annotationType,
ElementValuePair[] pairs)
createArrayType
public ArrayBinding createArrayType(TypeBinding leafComponentType,
int dimensionCount)
createBinaryTypeFrom
public BinaryTypeBinding createBinaryTypeFrom(IBinaryType binaryType,
PackageBinding packageBinding,
AccessRestriction accessRestriction)
createBinaryTypeFrom
public BinaryTypeBinding createBinaryTypeFrom(IBinaryType binaryType,
PackageBinding packageBinding,
boolean needFieldsAndMethods,
AccessRestriction accessRestriction)
createPackage
public PackageBinding createPackage(char[][] compoundName)
createParameterizedGenericMethod
public ParameterizedGenericMethodBinding createParameterizedGenericMethod(MethodBinding genericMethod,
RawTypeBinding rawType)
createParameterizedGenericMethod
public ParameterizedGenericMethodBinding createParameterizedGenericMethod(MethodBinding genericMethod,
TypeBinding[] typeArguments)
createParameterizedType
public ParameterizedTypeBinding createParameterizedType(ReferenceBinding genericType,
TypeBinding[] typeArguments,
ReferenceBinding enclosingType)
createRawType
public RawTypeBinding createRawType(ReferenceBinding genericType,
ReferenceBinding enclosingType)
createWildcard
public WildcardBinding createWildcard(ReferenceBinding genericType,
int rank,
TypeBinding bound,
TypeBinding[] otherBounds,
int boundKind)
getAccessRestriction
public AccessRestriction getAccessRestriction(TypeBinding type)
- Returns the access restriction associated to a given type, or null if none
getCachedType
public ReferenceBinding getCachedType(char[][] compoundName)
- Answer the type for the compoundName if it exists in the cache.
Answer theNotFoundType if it could not be resolved the first time
it was looked up, otherwise answer null.
NOTE: Do not use for nested types... the answer is NOT the same for a.b.C or a.b.C.D.E
assuming C is a type in both cases. In the a.b.C.D.E case, null is the answer.
getResolvedType
public ReferenceBinding getResolvedType(char[][] compoundName,
Scope scope)
getType
public ReferenceBinding getType(char[][] compoundName)
methodVerifier
public MethodVerifier methodVerifier()
reset
public void reset()
setAccessRestriction
public void setAccessRestriction(ReferenceBinding type,
AccessRestriction accessRestriction)
- Associate a given type with some access restriction
(did not store the restriction directly into binding, since sparse information)