org.eclipse.jdt.internal.compiler.lookup
Class Scope

java.lang.Object
  extended by org.eclipse.jdt.internal.compiler.lookup.Scope
All Implemented Interfaces:
TypeConstants, TypeIds
Direct Known Subclasses:
BlockScope, ClassScope, CompilationUnitScope

public abstract class Scope
extends java.lang.Object
implements TypeConstants, TypeIds


Field Summary
static int AUTOBOX_COMPATIBLE
           
static int BLOCK_SCOPE
           
static int CLASS_SCOPE
           
static int COMPATIBLE
           
static int COMPILATION_UNIT_SCOPE
           
static int EQUAL_OR_MORE_SPECIFIC
           
 int kind
           
static int METHOD_SCOPE
           
static int MORE_GENERIC
           
static int NOT_COMPATIBLE
           
static int NOT_RELATED
           
 Scope parent
           
static int VARARGS_COMPATIBLE
           
 
Fields inherited from interface 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, JML_ANNOTATION, JML_ANNOTATION_CODE_BIGINT_MATH, JML_ANNOTATION_CODE_JAVA_MATH, JML_ANNOTATION_CODE_SAFE_MATH, JML_ANNOTATION_GHOST, JML_ANNOTATION_HELPER, JML_ANNOTATION_INSTANCE, JML_ANNOTATION_MODEL, JML_ANNOTATION_NON_NULL, JML_ANNOTATION_NON_NULL_BY_DEFAULT, JML_ANNOTATION_NULLABLE, JML_ANNOTATION_NULLABLE_BY_DEFAULT, JML_ANNOTATION_PEER, JML_ANNOTATION_PKG, JML_ANNOTATION_PURE, JML_ANNOTATION_READONLY, JML_ANNOTATION_REP, JML_ANNOTATION_SPEC_BIGINT_MATH, JML_ANNOTATION_SPEC_JAVA_MATH, JML_ANNOTATION_SPEC_PROTECTED, JML_ANNOTATION_SPEC_PUBLIC, JML_ANNOTATION_SPEC_SAFE_MATH, JML_ANNOTATION_TYPE_CODE_BIGINT_MATH, JML_ANNOTATION_TYPE_CODE_JAVA_MATH, JML_ANNOTATION_TYPE_CODE_SAFE_MATH, JML_ANNOTATION_TYPE_GHOST, JML_ANNOTATION_TYPE_HELPER, JML_ANNOTATION_TYPE_INSTANCE, JML_ANNOTATION_TYPE_MODEL, JML_ANNOTATION_TYPE_NON_NULL_BY_DEFAULT, JML_ANNOTATION_TYPE_NONNULL, JML_ANNOTATION_TYPE_NULLABLE, JML_ANNOTATION_TYPE_NULLABLE_BY_DEFAULT, JML_ANNOTATION_TYPE_PEER, JML_ANNOTATION_TYPE_PURE, JML_ANNOTATION_TYPE_READONLY, JML_ANNOTATION_TYPE_REP, JML_ANNOTATION_TYPE_SPEC_BIGINT_MATH, JML_ANNOTATION_TYPE_SPEC_JAVA_MATH, JML_ANNOTATION_TYPE_SPEC_PROTECTED, JML_ANNOTATION_TYPE_SPEC_PUBLIC, JML_ANNOTATION_TYPE_SPEC_SAFE_MATH, JML_ANNOTATION_TYPE_UNINITIALIZED, JML_ANNOTATION_UNINITIALIZED, JML_ORG, JML_RUNTIME, JML_RUNTIME_ANNOTATION, JML4, JMLSPECS, 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
 
Fields inherited from interface org.eclipse.jdt.internal.compiler.lookup.TypeIds
Boolean2Boolean, Boolean2Int, Boolean2String, BOXING, Byte2Byte, Byte2Char, Byte2Double, Byte2Float, Byte2Int, Byte2Long, Byte2Short, Byte2String, Char2Byte, Char2Char, Char2Double, Char2Float, Char2Int, Char2Long, Char2Short, Char2String, COMPILE_TYPE_MASK, Double2Byte, Double2Char, Double2Double, Double2Float, Double2Int, Double2Long, Double2Short, Double2String, Float2Byte, Float2Char, Float2Double, Float2Float, Float2Int, Float2Long, Float2Short, Float2String, IMPLICIT_CONVERSION_MASK, Int2Byte, Int2Char, Int2Double, Int2Float, Int2Int, Int2Long, Int2Short, Int2String, Long2Byte, Long2Char, Long2Double, Long2Float, Long2Int, Long2Long, Long2Short, Long2String, NoId, Null2String, Object2Object, Object2String, Short2Byte, Short2Char, Short2Double, Short2Float, Short2Int, Short2Long, Short2Short, Short2String, String2String, T_boolean, T_byte, T_char, T_double, T_float, T_int, T_JavaIoException, T_JavaIoExternalizable, T_JavaIoObjectStreamException, T_JavaIoPrintStream, T_JavaIoSerializable, T_JavaLangAnnotationAnnotation, T_JavaLangAnnotationDocumented, T_JavaLangAnnotationElementType, T_JavaLangAnnotationInherited, T_JavaLangAnnotationRetention, T_JavaLangAnnotationRetentionPolicy, T_JavaLangAnnotationTarget, T_JavaLangAssertionError, T_JavaLangBoolean, T_JavaLangByte, T_JavaLangCharacter, T_JavaLangClass, T_JavaLangClassNotFoundException, T_JavaLangCloneable, T_JavaLangDeprecated, T_JavaLangDouble, T_JavaLangEnum, T_JavaLangError, T_JavaLangException, T_JavaLangFloat, T_JavaLangIllegalArgumentException, T_JavaLangInteger, T_JavaLangIterable, T_JavaLangLong, T_JavaLangNoClassDefError, T_JavaLangObject, T_JavaLangOverride, T_JavaLangReflectConstructor, T_JavaLangReflectField, T_JavaLangReflectMethod, T_JavaLangRuntimeException, T_JavaLangShort, T_JavaLangString, T_JavaLangStringBuffer, T_JavaLangStringBuilder, T_JavaLangSuppressWarnings, T_JavaLangSystem, T_JavaLangThrowable, T_JavaLangVoid, T_JavaUtilIterator, T_long, T_null, T_short, T_undefined, T_void, UNBOXING
 
Method Summary
 TypeBinding boxing(TypeBinding type)
           
 ClassScope classScope()
           
static int compareTypes(TypeBinding left, TypeBinding right)
           
 CompilationUnitScope compilationUnitScope()
           
 CompilerOptions compilerOptions()
          Finds the most specific compiler options
 ArrayBinding createArrayType(TypeBinding type, int dimension)
           
 TypeVariableBinding[] createTypeVariables(TypeParameter[] typeParameters, Binding declaringElement)
           
 ClassScope enclosingClassScope()
           
 MethodScope enclosingMethodScope()
           
 ReferenceBinding enclosingReceiverType()
           
 ReferenceContext enclosingReferenceContext()
          Returns the immediately enclosing reference context, starting from current scope parent.
 SourceTypeBinding enclosingSourceType()
           
 LookupEnvironment environment()
           
 ReferenceBinding findDirectMemberType(char[] typeName, ReferenceBinding enclosingType)
           
 MethodBinding findExactMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite)
           
 FieldBinding findField(TypeBinding receiverType, char[] fieldName, InvocationSite invocationSite, boolean needResolve)
           
 ReferenceBinding findMemberType(char[] typeName, ReferenceBinding enclosingType)
           
 MethodBinding findMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite)
           
 MethodBinding findMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite, boolean inStaticContext)
           
 MethodBinding findMethodForArray(ArrayBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite)
           
 ReferenceBinding findType(char[] typeName, PackageBinding declarationPackage, PackageBinding invocationPackage)
           
 LocalVariableBinding findVariable(char[] variable)
           
static TypeBinding getBaseType(char[] name)
           
 Binding getBinding(char[] name, int mask, InvocationSite invocationSite, boolean needResolve)
           
 MethodBinding getConstructor(ReferenceBinding receiverType, TypeBinding[] argumentTypes, InvocationSite invocationSite)
           
 PackageBinding getCurrentPackage()
           
 int getDeclarationModifiers()
          Returns the modifiers of the innermost enclosing declaration.
 FieldBinding getField(TypeBinding receiverType, char[] fieldName, InvocationSite invocationSite)
           
 MethodBinding getImplicitMethod(char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite)
           
 ReferenceBinding getJavaIoSerializable()
           
 ReferenceBinding getJavaLangAnnotationAnnotation()
           
 ReferenceBinding getJavaLangAssertionError()
           
 ReferenceBinding getJavaLangClass()
           
 ReferenceBinding getJavaLangCloneable()
           
 ReferenceBinding getJavaLangEnum()
           
 ReferenceBinding getJavaLangIterable()
           
 ReferenceBinding getJavaLangObject()
           
 ReferenceBinding getJavaLangString()
           
 ReferenceBinding getJavaLangThrowable()
           
 ReferenceBinding getJavaUtilIterator()
           
 ReferenceBinding getMemberType(char[] typeName, ReferenceBinding enclosingType)
           
 MethodBinding getMethod(TypeBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite)
           
 Binding getPackage(char[][] compoundName)
           
 TypeBinding getType(char[] name)
           
 TypeBinding getType(char[][] compoundName, int typeNameLength)
           
 TypeBinding getType(char[] name, PackageBinding packageBinding)
           
 Binding getTypeOrPackage(char[][] compoundName)
           
static ReferenceBinding[] greaterLowerBound(ReferenceBinding[] types)
           
static TypeBinding[] greaterLowerBound(TypeBinding[] types)
           
 CaseStatement innermostSwitchCase()
          Returns the immediately enclosing switchCase statement (carried by closest blockScope),
 boolean isBoxingCompatibleWith(TypeBinding expressionType, TypeBinding targetType)
           
 boolean isDefinedInField(FieldBinding field)
           
 boolean isDefinedInMethod(MethodBinding method)
           
 boolean isDefinedInSameUnit(ReferenceBinding type)
           
 boolean isDefinedInType(ReferenceBinding type)
           
 boolean isInsideCase(CaseStatement caseStatement)
          Returns true if the scope or one of its parent is associated to a given caseStatement, denoting being part of a given switch case statement.
 boolean isInsideDeprecatedCode()
           
 TypeBinding lowerUpperBound(TypeBinding[] types)
          Returns VoidBinding if types have no intersection (e.g.
 MethodScope methodScope()
           
 ClassScope outerMostClassScope()
           
 MethodScope outerMostMethodScope()
           
 int parameterCompatibilityLevel(MethodBinding method, TypeBinding[] arguments)
           
abstract  ProblemReporter problemReporter()
           
 CompilationUnitDeclaration referenceCompilationUnit()
           
 ReferenceContext referenceContext()
          Returns the nearest reference context, starting from current scope.
static ReferenceBinding[] substitute(Substitution substitution, ReferenceBinding[] originalTypes)
          Returns an array of types, where original types got substituted given a substitution.
static TypeBinding substitute(Substitution substitution, TypeBinding originalType)
          Returns a type, where original type was substituted using the receiver parameterized type.
static TypeBinding[] substitute(Substitution substitution, TypeBinding[] originalTypes)
          Returns an array of types, where original types got substituted given a substitution.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BLOCK_SCOPE

public static final int BLOCK_SCOPE
See Also:
Constant Field Values

CLASS_SCOPE

public static final int CLASS_SCOPE
See Also:
Constant Field Values

COMPILATION_UNIT_SCOPE

public static final int COMPILATION_UNIT_SCOPE
See Also:
Constant Field Values

METHOD_SCOPE

public static final int METHOD_SCOPE
See Also:
Constant Field Values

NOT_COMPATIBLE

public static final int NOT_COMPATIBLE
See Also:
Constant Field Values

COMPATIBLE

public static final int COMPATIBLE
See Also:
Constant Field Values

AUTOBOX_COMPATIBLE

public static final int AUTOBOX_COMPATIBLE
See Also:
Constant Field Values

VARARGS_COMPATIBLE

public static final int VARARGS_COMPATIBLE
See Also:
Constant Field Values

EQUAL_OR_MORE_SPECIFIC

public static final int EQUAL_OR_MORE_SPECIFIC
See Also:
Constant Field Values

NOT_RELATED

public static final int NOT_RELATED
See Also:
Constant Field Values

MORE_GENERIC

public static final int MORE_GENERIC
See Also:
Constant Field Values

kind

public int kind

parent

public Scope parent
Method Detail

compareTypes

public static int compareTypes(TypeBinding left,
                               TypeBinding right)

getBaseType

public static TypeBinding getBaseType(char[] name)

greaterLowerBound

public static ReferenceBinding[] greaterLowerBound(ReferenceBinding[] types)

greaterLowerBound

public static TypeBinding[] greaterLowerBound(TypeBinding[] types)

substitute

public static ReferenceBinding[] substitute(Substitution substitution,
                                            ReferenceBinding[] originalTypes)
Returns an array of types, where original types got substituted given a substitution. Only allocate an array if anything is different.


substitute

public static TypeBinding substitute(Substitution substitution,
                                     TypeBinding originalType)
Returns a type, where original type was substituted using the receiver parameterized type. In raw mode, all parameterized type denoting same original type are converted to raw types. e.g. class X { X foo; X bar; } when used in raw fashion, then type of both foo and bar is raw type X.


substitute

public static TypeBinding[] substitute(Substitution substitution,
                                       TypeBinding[] originalTypes)
Returns an array of types, where original types got substituted given a substitution. Only allocate an array if anything is different.


boxing

public TypeBinding boxing(TypeBinding type)

classScope

public final ClassScope classScope()

compilationUnitScope

public final CompilationUnitScope compilationUnitScope()

compilerOptions

public final CompilerOptions compilerOptions()
Finds the most specific compiler options


createArrayType

public ArrayBinding createArrayType(TypeBinding type,
                                    int dimension)

createTypeVariables

public TypeVariableBinding[] createTypeVariables(TypeParameter[] typeParameters,
                                                 Binding declaringElement)

enclosingClassScope

public final ClassScope enclosingClassScope()

enclosingMethodScope

public final MethodScope enclosingMethodScope()

enclosingReceiverType

public final ReferenceBinding enclosingReceiverType()

enclosingReferenceContext

public ReferenceContext enclosingReferenceContext()
Returns the immediately enclosing reference context, starting from current scope parent. If starting on a class, it will skip current class. If starting on unitScope, returns null.


enclosingSourceType

public final SourceTypeBinding enclosingSourceType()

environment

public final LookupEnvironment environment()

findDirectMemberType

public ReferenceBinding findDirectMemberType(char[] typeName,
                                             ReferenceBinding enclosingType)

findExactMethod

public MethodBinding findExactMethod(ReferenceBinding receiverType,
                                     char[] selector,
                                     TypeBinding[] argumentTypes,
                                     InvocationSite invocationSite)

findField

public FieldBinding findField(TypeBinding receiverType,
                              char[] fieldName,
                              InvocationSite invocationSite,
                              boolean needResolve)

findMemberType

public ReferenceBinding findMemberType(char[] typeName,
                                       ReferenceBinding enclosingType)

findMethod

public MethodBinding findMethod(ReferenceBinding receiverType,
                                char[] selector,
                                TypeBinding[] argumentTypes,
                                InvocationSite invocationSite)

findMethod

public MethodBinding findMethod(ReferenceBinding receiverType,
                                char[] selector,
                                TypeBinding[] argumentTypes,
                                InvocationSite invocationSite,
                                boolean inStaticContext)

findMethodForArray

public MethodBinding findMethodForArray(ArrayBinding receiverType,
                                        char[] selector,
                                        TypeBinding[] argumentTypes,
                                        InvocationSite invocationSite)

findType

public ReferenceBinding findType(char[] typeName,
                                 PackageBinding declarationPackage,
                                 PackageBinding invocationPackage)

findVariable

public LocalVariableBinding findVariable(char[] variable)

getBinding

public Binding getBinding(char[] name,
                          int mask,
                          InvocationSite invocationSite,
                          boolean needResolve)

getConstructor

public MethodBinding getConstructor(ReferenceBinding receiverType,
                                    TypeBinding[] argumentTypes,
                                    InvocationSite invocationSite)

getCurrentPackage

public final PackageBinding getCurrentPackage()

getDeclarationModifiers

public int getDeclarationModifiers()
Returns the modifiers of the innermost enclosing declaration.

Returns:
modifiers

getField

public FieldBinding getField(TypeBinding receiverType,
                             char[] fieldName,
                             InvocationSite invocationSite)

getImplicitMethod

public MethodBinding getImplicitMethod(char[] selector,
                                       TypeBinding[] argumentTypes,
                                       InvocationSite invocationSite)

getJavaIoSerializable

public final ReferenceBinding getJavaIoSerializable()

getJavaLangAnnotationAnnotation

public final ReferenceBinding getJavaLangAnnotationAnnotation()

getJavaLangAssertionError

public final ReferenceBinding getJavaLangAssertionError()

getJavaLangClass

public final ReferenceBinding getJavaLangClass()

getJavaLangCloneable

public final ReferenceBinding getJavaLangCloneable()

getJavaLangEnum

public final ReferenceBinding getJavaLangEnum()

getJavaLangIterable

public final ReferenceBinding getJavaLangIterable()

getJavaLangObject

public final ReferenceBinding getJavaLangObject()

getJavaLangString

public final ReferenceBinding getJavaLangString()

getJavaLangThrowable

public final ReferenceBinding getJavaLangThrowable()

getJavaUtilIterator

public final ReferenceBinding getJavaUtilIterator()

getMemberType

public final ReferenceBinding getMemberType(char[] typeName,
                                            ReferenceBinding enclosingType)

getMethod

public MethodBinding getMethod(TypeBinding receiverType,
                               char[] selector,
                               TypeBinding[] argumentTypes,
                               InvocationSite invocationSite)

getPackage

public final Binding getPackage(char[][] compoundName)

getType

public final TypeBinding getType(char[] name)

getType

public final TypeBinding getType(char[] name,
                                 PackageBinding packageBinding)

getType

public final TypeBinding getType(char[][] compoundName,
                                 int typeNameLength)

getTypeOrPackage

public final Binding getTypeOrPackage(char[][] compoundName)

innermostSwitchCase

public CaseStatement innermostSwitchCase()
Returns the immediately enclosing switchCase statement (carried by closest blockScope),


isBoxingCompatibleWith

public boolean isBoxingCompatibleWith(TypeBinding expressionType,
                                      TypeBinding targetType)

isDefinedInField

public final boolean isDefinedInField(FieldBinding field)

isDefinedInMethod

public final boolean isDefinedInMethod(MethodBinding method)

isDefinedInSameUnit

public final boolean isDefinedInSameUnit(ReferenceBinding type)

isDefinedInType

public final boolean isDefinedInType(ReferenceBinding type)

isInsideCase

public boolean isInsideCase(CaseStatement caseStatement)
Returns true if the scope or one of its parent is associated to a given caseStatement, denoting being part of a given switch case statement.


isInsideDeprecatedCode

public boolean isInsideDeprecatedCode()

lowerUpperBound

public TypeBinding lowerUpperBound(TypeBinding[] types)
Returns VoidBinding if types have no intersection (e.g. 2 unrelated interfaces), or null if no common supertype (e.g. List and List), or the intersection type if possible


methodScope

public final MethodScope methodScope()

outerMostClassScope

public final ClassScope outerMostClassScope()

outerMostMethodScope

public final MethodScope outerMostMethodScope()

parameterCompatibilityLevel

public int parameterCompatibilityLevel(MethodBinding method,
                                       TypeBinding[] arguments)

problemReporter

public abstract ProblemReporter problemReporter()

referenceCompilationUnit

public final CompilationUnitDeclaration referenceCompilationUnit()

referenceContext

public ReferenceContext referenceContext()
Returns the nearest reference context, starting from current scope. If starting on a class, it will return current class. If starting on unitScope, returns unit.