org.aspectj.org.eclipse.jdt.internal.compiler.ast
Class TypeReference

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode
      extended by org.aspectj.org.eclipse.jdt.internal.compiler.ast.Statement
          extended by org.aspectj.org.eclipse.jdt.internal.compiler.ast.Expression
              extended by org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeReference
All Implemented Interfaces:
TypeConstants, TypeIds
Direct Known Subclasses:
IntersectionCastTypeReference, JavadocImplicitTypeReference, QualifiedTypeReference, SingleTypeReference, UnionTypeReference

public abstract class TypeReference
extends Expression


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeConstants
TypeConstants.CloseMethodRecord
 
Field Summary
 Annotation[][] annotations
           
static TypeReference[] NO_TYPE_ARGUMENTS
           
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Expression
constant, implicitConversion, resolvedType, statementEnd
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Statement
COMPLAINED_FAKE_REACHABLE, COMPLAINED_UNREACHABLE, NOT_COMPLAINED
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode
Bit1, Bit10, Bit11, Bit12, Bit13, Bit14, Bit15, Bit16, Bit17, Bit18, Bit19, Bit2, Bit20, Bit21, Bit22, Bit23, Bit24, Bit25, Bit26, Bit27, Bit28, Bit29, Bit3, Bit30, Bit31, Bit32, Bit32L, Bit33L, Bit34L, Bit35L, Bit36L, Bit37L, Bit38L, Bit39L, Bit4, Bit40L, Bit41L, Bit42L, Bit43L, Bit44L, Bit45L, Bit46L, Bit47L, Bit48L, Bit49L, Bit5, Bit50L, Bit51L, Bit52L, Bit53L, Bit54L, Bit55L, Bit56L, Bit57L, Bit58L, Bit59L, Bit6, Bit60L, Bit61L, Bit62L, Bit63L, Bit64L, Bit7, Bit8, Bit9, bits, BlockExit, CanBeStatic, ContainsAssertion, DepthMASK, DepthSHIFT, DidResolve, DisableUnnecessaryCastCheck, DiscardEnclosingInstance, DocumentedCasesOmitted, DocumentedFallthrough, Empty, ErrorInSignature, FirstAssignmentToLocal, GenerateCheckcast, HasAbstractMethods, HasAllMethodBodies, HasBeenGenerated, HasBeenResolved, HasFunctionalInterfaceTypes, HasLocalType, HasSyntaxErrors, HasTypeAnnotations, IgnoreNoEffectAssignCheck, IgnoreRawTypeCheck, InsideExpressionStatement, InsideJavadoc, INVOCATION_ARGUMENT_OK, INVOCATION_ARGUMENT_UNCHECKED, INVOCATION_ARGUMENT_WILDCARD, IsAnnotationDefaultValue, IsAnonymousType, IsAnySubRoutineEscaping, IsArgument, IsCapturedOuterLocal, IsCompoundAssigned, IsDefaultConstructor, IsDiamond, IsElseIfStatement, IsElseStatementUnreachable, IsForeachElementVariable, IsImplicitThis, IsImplicitUnit, IsLocalDeclarationReachable, IsLocalType, IsMemberType, IsNonNull, IsReachable, IsRecovered, IsReturnedValue, IsSecondaryType, IsStrictlyAssigned, IsSubRoutineEscaping, IsSuperType, IsSynchronized, IsSynthetic, IsThenStatementUnreachable, IsTryBlockExiting, IsTypeElided, IsUnionType, IsUsefulEmptyStatement, IsVarArgs, LabelUsed, NeededScope, NeedFreeReturn, NeedReceiverGenericCast, NO_ARGUMENTS, OnDemand, OperatorMASK, OperatorSHIFT, OverridingMethodWithSupercall, ParenthesizedMASK, ParenthesizedSHIFT, ResolveJavadoc, RestrictiveFlagMASK, ReturnTypeIDMASK, ShadowsOuterLocal, sourceEnd, sourceStart, SuperAccess, ThenExit, Unchecked, UndocumentedEmptyBlock, UnnecessaryCast, UnsafeCast, Used
 
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, ASSERT_CLASS, ASSERT_FALSE, ASSERT_NOTNULL, ASSERT_NULL, ASSERT_TRUE, BOOLEAN, BYTE, CAPTURE18, 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, 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, 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, FLOAT, FRAMEWORK, GETCLASS, GOOGLE, GUAVA_CLOSEABLES, HASHCODE, INIT, INJECT_PACKAGE, INJECT_TYPE, INT, INTERNAL, INVOKE, IO, IS_NOTNULL, IS_TRUE, ITYPEBINDING, JAVA, 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_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_DEPRECATED, JAVA_LANG_DOUBLE, JAVA_LANG_ENUM, JAVA_LANG_ERROR, JAVA_LANG_EXCEPTION, JAVA_LANG_FLOAT, JAVA_LANG_FUNCTIONAL_INTERFACE, JAVA_LANG_ILLEGALARGUMENTEXCEPTION, JAVA_LANG_INTEGER, JAVA_LANG_INVOKE_LAMBDAMETAFACTORY, JAVA_LANG_INVOKE_METHODHANDLE_$_POLYMORPHICSIGNATURE, JAVA_LANG_INVOKE_METHODHANDLE_POLYMORPHICSIGNATURE, JAVA_LANG_INVOKE_METHODHANDLES, JAVA_LANG_INVOKE_SERIALIZEDLAMBDA, 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_NIO_FILE_FILES, JAVA_UTIL_COLLECTION, JAVA_UTIL_ITERATOR, JAVA_UTIL_OBJECTS, JAVA_UTIL_ZIP_WRAPPER_CLOSEABLES, JAVAX, JAVAX_ANNOTATION_INJECT_INJECT, JAVAX_RMI_CORBA_STUB, JDT, JUNIT, JUNIT_FRAMEWORK_ASSERT, LAMBDA_TYPE, LANG, LANG3, LENGTH, LONG, LOOKUP, MAIN, MISMATCH, NOT_NULL, NULL, OBJECT, OK, 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, OTHER_WRAPPER_CLOSEABLES, PACKAGE_INFO_NAME, READOBJECT, READRESOLVE, REFLECT, REQUIRE_NON_NULL, RESOURCE_FREE_CLOSEABLE_STREAM, RUNTIME, 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, TYPE_PARAMETER_TARGET, TYPE_USE_TARGET, TYPEBINDING, UNCHECKED, UPPER_ANNOTATION_TYPE, UPPER_CLASS, UPPER_CONSTRUCTOR, UPPER_FIELD, UPPER_LOCAL_VARIABLE, UPPER_METHOD, UPPER_PACKAGE, UPPER_PARAMETER, UPPER_RUNTIME, UPPER_SOURCE, UTIL, VALIDATE_CLASS, 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, ZIP
 
Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeIds
BitAutoCloseable, BitCloseable, BitResourceFreeCloseable, BitUninitialized, BitUninternedType, BitWrapperCloseable, 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, InheritableBits, Int2Byte, Int2Char, Int2Double, Int2Float, Int2Int, Int2Long, Int2Short, Int2String, Long2Byte, Long2Char, Long2Double, Long2Float, Long2Int, Long2Long, Long2Short, Long2String, NoId, Null2Null, Null2String, Object2boolean, Object2byte, Object2char, Object2double, Object2float, Object2int, Object2long, Object2Object, Object2short, Object2String, Short2Byte, Short2Char, Short2Double, Short2Float, Short2Int, Short2Long, Short2Short, Short2String, String2String, T_boolean, T_byte, T_char, T_ComGoogleCommonBasePreconditions, T_ComGoogleInjectInject, T_ConfiguredAnnotationNonNull, T_ConfiguredAnnotationNonNullByDefault, T_ConfiguredAnnotationNullable, 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_JavaLangAnnotationRepeatable, T_JavaLangAnnotationRetention, T_JavaLangAnnotationRetentionPolicy, T_JavaLangAnnotationTarget, T_JavaLangAssertionError, T_JavaLangAutoCloseable, 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_JavaLangFunctionalInterface, T_JavaLangIllegalArgumentException, T_JavaLangInteger, T_JavaLangInvokeMethodHandlePolymorphicSignature, T_JavaLangIterable, T_JavaLangLong, T_JavaLangNoClassDefError, T_JavaLangObject, T_JavaLangOverride, T_JavaLangReflectConstructor, T_JavaLangReflectField, T_JavaLangReflectMethod, T_JavaLangRuntimeException, T_JavaLangSafeVarargs, T_JavaLangShort, T_JavaLangString, T_JavaLangStringBuffer, T_JavaLangStringBuilder, T_JavaLangSuppressWarnings, T_JavaLangSystem, T_JavaLangThrowable, T_JavaLangVoid, T_JavaUtilCollection, T_JavaUtilIterator, T_JavaUtilObjects, T_JavaxInjectInject, T_JunitFrameworkAssert, T_LastWellKnownTypeId, T_long, T_null, T_OrgApacheCommonsLang3Validate, T_OrgApacheCommonsLangValidate, T_OrgEclipseCoreRuntimeAssert, T_OrgJunitAssert, T_short, T_undefined, T_void, UNBOXING
 
Constructor Summary
TypeReference()
           
 
Method Summary
 void aboutToResolve(Scope scope)
           
 FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
abstract  TypeReference augmentTypeWithAdditionalDimensions(int additionalDimensions, Annotation[][] additionalAnnotations, boolean isVarargs)
           
static TypeReference baseTypeReference(int baseType, int dim)
           
static TypeReference baseTypeReference(int baseType, int dim, Annotation[][] dimAnnotations)
           
 void checkBounds(Scope scope)
           
protected  void checkNullConstraints(Scope scope, TypeBinding[] variables, int rank)
          Check whether this type reference conforms to the null constraints defined for the corresponding type variable.
protected  void checkNullConstraints(Scope scope, TypeReference[] typeArguments)
          Check all typeArguments against null constraints on their corresponding type variables.
static boolean containsNullAnnotation(Annotation[] annotations)
           
 int dimensions()
           
 int extraDimensions()
          This method is used to return the array dimension declared after the name of a local or a field declaration.
 Annotation findAnnotation(long nullTagBits)
          Retrieve the null annotation that has been translated to the given nullTagBits.
 AnnotationContext[] getAllAnnotationContexts(int targetType)
           
 void getAllAnnotationContexts(int targetType, int info, int typeIndex, java.util.List allAnnotationContexts)
           
 void getAllAnnotationContexts(int targetType, int info, java.util.List allAnnotationContexts)
          info can be either a type index (superclass/superinterfaces) or a pc into the bytecode
 void getAllAnnotationContexts(int targetType, int info, java.util.List allAnnotationContexts, Annotation[] se7Annotations)
           
 void getAllAnnotationContexts(int targetType, int info, java.util.List allAnnotationContexts, Annotation[][] annotationsOnDimensions, int dimensions)
          info can be either a type index (superclass/superinterfaces) or a pc into the bytecode
 void getAllAnnotationContexts(int targetType, java.util.List allAnnotationContexts)
           
 int getAnnotatableLevels()
           
 Annotation[][] getAnnotationsOnDimensions()
           
 Annotation[][] getAnnotationsOnDimensions(boolean useSourceOrder)
           
abstract  char[] getLastToken()
           
protected  Annotation[][] getMergedAnnotationsOnDimensions(int additionalDimensions, Annotation[][] additionalAnnotations)
           
 char[][] getParameterizedTypeName()
           
 TypeReference[][] getTypeArguments()
           
protected abstract  TypeBinding getTypeBinding(Scope scope)
           
 TypeBinding getTypeBindingPublic(Scope scope)
           
abstract  char[][] getTypeName()
           
 TypeReference[] getTypeReferences()
           
 boolean hasNullTypeAnnotation()
           
protected  TypeBinding internalResolveType(Scope scope, int location)
           
 boolean isParameterizedTypeReference()
           
 boolean isTypeReference()
           
 boolean isUnionType()
           
 boolean isVarargs()
           
 boolean isWildcard()
           
protected  void reportDeprecatedType(TypeBinding type, Scope scope)
           
protected  void reportDeprecatedType(TypeBinding type, Scope scope, int index)
           
protected  void reportInvalidType(Scope scope)
           
protected  void resolveAnnotations(Scope scope, int location)
           
 TypeBinding resolveSuperType(ClassScope scope)
           
 TypeBinding resolveType(BlockScope blockScope)
          Resolve the type of this expression in the context of a blockScope
 TypeBinding resolveType(BlockScope scope, boolean checkBounds)
           
 TypeBinding resolveType(BlockScope scope, boolean checkBounds, int location)
           
 TypeBinding resolveType(ClassScope scope)
          Resolve the type of this expression in the context of a classScope
 TypeBinding resolveType(ClassScope scope, int location)
           
 TypeBinding resolveTypeArgument(BlockScope blockScope, ReferenceBinding genericType, int rank)
           
 TypeBinding resolveTypeArgument(ClassScope classScope, ReferenceBinding genericType, int rank)
           
 void setAnnotationsOnDimensions(Annotation[][] annotationsOnDimensions)
           
abstract  void traverse(ASTVisitor visitor, BlockScope scope)
          Traverse an expression in the context of a blockScope
abstract  void traverse(ASTVisitor visitor, ClassScope scope)
          Traverse an expression in the context of a classScope
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Expression
analyseCode, checkAgainstFinalTargetType, checkCastTypesCompatibility, checkNPE, checkNPEbyUnboxing, checkUnsafeCast, computeConversion, forcedToBeRaw, generateCode, generateCode, generateOptimizedBoolean, generateOptimizedStringConcatenation, generateOptimizedStringConcatenationCreation, getDirectBinding, isAssignmentCompatible, isBoxingCompatibleWith, isCompactableOperation, isCompatibleWith, isConstantValueOfTypeAssignableToType, isConstantValueRepresentable, isExactMethodReference, isPertinentToApplicability, isPolyExpression, isPolyExpression, localVariableBinding, markAsNonNull, nullAnnotatedVariableBinding, nullStatus, optimizedBooleanConstant, postConversionType, print, printExpression, printStatement, resolve, resolveTypeExpecting, reusableJSRTarget, setExpectedType, setExpressionContext, sIsMoreSpecific, statementExpression, tagAsEllipsisArgument, tagAsNeedCheckCast, tagAsUnnecessaryCast, toTypeReference
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Statement
analyseArguments, branchChainTo, checkAgainstNullTypeAnnotation, complainIfUnreachable, expectedType, findConstructorBinding, generateArguments, getExpressionContext, invocationTargetType, isBoxingCompatible, isEmptyBlock, isKnowDeadCodePattern, isValidJavaStatement, recordExceptionsForEnclosingLambda, resolveCase
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode
checkInvocationArguments, concreteStatement, copySE8AnnotationsToType, isFieldUseDeprecated, isImplicitThis, isMethodUseDeprecated, isSuper, isThis, isTypeUseDeprecated, isUnqualifiedSuper, printAnnotations, printIndent, printModifiers, receiverIsImplicitThis, resolveAnnotations, resolveAnnotations, resolveAnnotations, resolveDeprecatedAnnotations, resolvePolyExpressionArguments, resolvePolyExpressionArguments, sourceEnd, sourceStart, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NO_TYPE_ARGUMENTS

public static final TypeReference[] NO_TYPE_ARGUMENTS

annotations

public Annotation[][] annotations
Constructor Detail

TypeReference

public TypeReference()
Method Detail

baseTypeReference

public static final TypeReference baseTypeReference(int baseType,
                                                    int dim,
                                                    Annotation[][] dimAnnotations)

baseTypeReference

public static final TypeReference baseTypeReference(int baseType,
                                                    int dim)

aboutToResolve

public void aboutToResolve(Scope scope)

analyseCode

public FlowInfo analyseCode(BlockScope currentScope,
                            FlowContext flowContext,
                            FlowInfo flowInfo)
Overrides:
analyseCode in class Expression

checkBounds

public void checkBounds(Scope scope)

augmentTypeWithAdditionalDimensions

public abstract TypeReference augmentTypeWithAdditionalDimensions(int additionalDimensions,
                                                                  Annotation[][] additionalAnnotations,
                                                                  boolean isVarargs)

getMergedAnnotationsOnDimensions

protected Annotation[][] getMergedAnnotationsOnDimensions(int additionalDimensions,
                                                          Annotation[][] additionalAnnotations)

dimensions

public int dimensions()

extraDimensions

public int extraDimensions()
This method is used to return the array dimension declared after the name of a local or a field declaration. For example: int i, j[] = null, k[][] = {{}}; It should return 0 for i, 1 for j and 2 for k.

Returns:
int the extra dimension found

getAllAnnotationContexts

public AnnotationContext[] getAllAnnotationContexts(int targetType)

getAllAnnotationContexts

public void getAllAnnotationContexts(int targetType,
                                     int info,
                                     java.util.List allAnnotationContexts)
info can be either a type index (superclass/superinterfaces) or a pc into the bytecode

Parameters:
targetType -
info -
allAnnotationContexts -

getAllAnnotationContexts

public void getAllAnnotationContexts(int targetType,
                                     int info,
                                     java.util.List allAnnotationContexts,
                                     Annotation[] se7Annotations)

getAllAnnotationContexts

public void getAllAnnotationContexts(int targetType,
                                     int info,
                                     java.util.List allAnnotationContexts,
                                     Annotation[][] annotationsOnDimensions,
                                     int dimensions)
info can be either a type index (superclass/superinterfaces) or a pc into the bytecode


getAllAnnotationContexts

public void getAllAnnotationContexts(int targetType,
                                     int info,
                                     int typeIndex,
                                     java.util.List allAnnotationContexts)

getAllAnnotationContexts

public void getAllAnnotationContexts(int targetType,
                                     java.util.List allAnnotationContexts)

getAnnotationsOnDimensions

public Annotation[][] getAnnotationsOnDimensions()

getTypeArguments

public TypeReference[][] getTypeArguments()

getAnnotationsOnDimensions

public Annotation[][] getAnnotationsOnDimensions(boolean useSourceOrder)
Parameters:
useSourceOrder - if true annotations on dimensions are returned in source order, otherwise they are returned per how they ought to be interpreted by a type system, or external persistence view. For example, given the following: int @Nullable [] f @NonNull [] ==> f is really a @NonNull array of @Nullable arrays of ints. This is the type system view since extended dimensions bind more readily than type components that precede the identifier. This is how it ought to be encoded in bindings and how it ought to be persisted in class files. However for DOM/AST construction, we need the dimensions in source order, so we provide a way for the clients to ask what they want.

setAnnotationsOnDimensions

public void setAnnotationsOnDimensions(Annotation[][] annotationsOnDimensions)

getLastToken

public abstract char[] getLastToken()

getParameterizedTypeName

public char[][] getParameterizedTypeName()
Returns:
char[][] TODO (jerome) should merge back into #getTypeName()

getTypeBindingPublic

public TypeBinding getTypeBindingPublic(Scope scope)

getTypeBinding

protected abstract TypeBinding getTypeBinding(Scope scope)

getTypeName

public abstract char[][] getTypeName()
Returns:
char[][]

internalResolveType

protected TypeBinding internalResolveType(Scope scope,
                                          int location)

isTypeReference

public boolean isTypeReference()
Overrides:
isTypeReference in class Expression

isWildcard

public boolean isWildcard()

isUnionType

public boolean isUnionType()

isVarargs

public boolean isVarargs()

isParameterizedTypeReference

public boolean isParameterizedTypeReference()

reportDeprecatedType

protected void reportDeprecatedType(TypeBinding type,
                                    Scope scope,
                                    int index)

reportDeprecatedType

protected void reportDeprecatedType(TypeBinding type,
                                    Scope scope)

reportInvalidType

protected void reportInvalidType(Scope scope)

resolveSuperType

public TypeBinding resolveSuperType(ClassScope scope)

resolveType

public final TypeBinding resolveType(BlockScope blockScope)
Description copied from class: Expression
Resolve the type of this expression in the context of a blockScope

Overrides:
resolveType in class Expression
Returns:
Return the actual type of this expression after resolution

resolveType

public TypeBinding resolveType(BlockScope scope,
                               boolean checkBounds)

resolveType

public TypeBinding resolveType(BlockScope scope,
                               boolean checkBounds,
                               int location)

resolveType

public TypeBinding resolveType(ClassScope scope)
Description copied from class: Expression
Resolve the type of this expression in the context of a classScope

Overrides:
resolveType in class Expression
Returns:
Return the actual type of this expression after resolution

resolveType

public TypeBinding resolveType(ClassScope scope,
                               int location)

resolveTypeArgument

public TypeBinding resolveTypeArgument(BlockScope blockScope,
                                       ReferenceBinding genericType,
                                       int rank)

resolveTypeArgument

public TypeBinding resolveTypeArgument(ClassScope classScope,
                                       ReferenceBinding genericType,
                                       int rank)

traverse

public abstract void traverse(ASTVisitor visitor,
                              BlockScope scope)
Description copied from class: Expression
Traverse an expression in the context of a blockScope

Overrides:
traverse in class Expression

traverse

public abstract void traverse(ASTVisitor visitor,
                              ClassScope scope)
Description copied from class: Expression
Traverse an expression in the context of a classScope

Overrides:
traverse in class Expression

resolveAnnotations

protected void resolveAnnotations(Scope scope,
                                  int location)

getAnnotatableLevels

public int getAnnotatableLevels()

checkNullConstraints

protected void checkNullConstraints(Scope scope,
                                    TypeReference[] typeArguments)
Check all typeArguments against null constraints on their corresponding type variables.


checkNullConstraints

protected void checkNullConstraints(Scope scope,
                                    TypeBinding[] variables,
                                    int rank)
Check whether this type reference conforms to the null constraints defined for the corresponding type variable.


findAnnotation

public Annotation findAnnotation(long nullTagBits)
Retrieve the null annotation that has been translated to the given nullTagBits.


hasNullTypeAnnotation

public boolean hasNullTypeAnnotation()

containsNullAnnotation

public static boolean containsNullAnnotation(Annotation[] annotations)

getTypeReferences

public TypeReference[] getTypeReferences()