org.eclipse.jdt.internal.compiler.ast
类 TypeDeclaration

java.lang.Object
  继承者 org.eclipse.jdt.internal.compiler.ast.ASTNode
      继承者 org.eclipse.jdt.internal.compiler.ast.Statement
          继承者 org.eclipse.jdt.internal.compiler.ast.TypeDeclaration
所有已实现的接口:
ReferenceContext, TypeConstants, TypeIds, ProblemSeverities

public class TypeDeclaration
extends Statement
implements ProblemSeverities, ReferenceContext


字段摘要
 QualifiedAllocationExpression allocation
           
static int ANNOTATION_TYPE_DECL
           
 Annotation[] annotations
           
 SourceTypeBinding binding
           
 int bodyEnd
           
 int bodyStart
           
static int CLASS_DECL
           
 CompilationResult compilationResult
           
 int declarationSourceEnd
           
 int declarationSourceStart
           
 TypeDeclaration enclosingType
           
static int ENUM_DECL
           
 int enumConstantsCounter
           
 FieldBinding enumValuesSyntheticfield
           
 FieldDeclaration[] fields
           
 boolean ignoreFurtherInvestigation
           
 MethodScope initializerScope
           
static int INTERFACE_DECL
           
 Javadoc javadoc
           
 int maxFieldCount
           
 TypeDeclaration[] memberTypes
           
 AbstractMethodDeclaration[] methods
           
 MethodDeclaration[] missingAbstractMethods
           
 int modifiers
           
 int modifiersSourceStart
           
 char[] name
           
 ClassScope scope
           
 MethodScope staticInitializerScope
           
 TypeReference superclass
           
 TypeReference[] superInterfaces
           
 TypeParameter[] typeParameters
           
 
从类 org.eclipse.jdt.internal.compiler.ast.Statement 继承的字段
COMPLAINED_FAKE_REACHABLE, COMPLAINED_UNREACHABLE, NOT_COMPLAINED
 
从类 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, DocumentedFallthrough, Empty, ErrorInSignature, FirstAssignmentToLocal, GenerateCheckcast, HasAbstractMethods, HasAllMethodBodies, HasBeenGenerated, HasBeenResolved, HasLocalType, HasSyntaxErrors, IgnoreNoEffectAssignCheck, IgnoreRawTypeCheck, InsideExpressionStatement, InsideJavadoc, INVOCATION_ARGUMENT_OK, INVOCATION_ARGUMENT_UNCHECKED, INVOCATION_ARGUMENT_WILDCARD, IsAnnotationDefaultValue, IsAnonymousType, IsAnySubRoutineEscaping, IsArgument, IsCompoundAssigned, IsDefaultConstructor, IsDiamond, IsElseIfStatement, IsElseStatementUnreachable, IsImplicitThis, IsImplicitUnit, IsLocalDeclarationReachable, IsLocalType, IsMemberType, IsNonNull, IsReachable, IsRecovered, IsReturnedValue, IsSecondaryType, IsStrictlyAssigned, IsSubRoutineEscaping, IsSuperType, IsSynchronized, IsThenStatementUnreachable, IsTryBlockExiting, IsUnionType, IsUsefulEmptyStatement, IsVarArgs, LabelUsed, NeededScope, NeedFreeReturn, NeedReceiverGenericCast, OnDemand, OperatorMASK, OperatorSHIFT, OverridingMethodWithSupercall, ParenthesizedMASK, ParenthesizedSHIFT, ResolveJavadoc, RestrictiveFlagMASK, ReturnTypeIDMASK, sourceEnd, sourceStart, SuperAccess, ThenExit, Unchecked, UndocumentedEmptyBlock, UnnecessaryCast, UnsafeCast, Used
 
从接口 org.eclipse.jdt.internal.compiler.problem.ProblemSeverities 继承的字段
Abort, AbortCompilation, AbortCompilationUnit, AbortMethod, AbortType, Error, Fatal, Ignore, Optional, SecondaryError, Warning
 
从接口 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
 
从接口 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, 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_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_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_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_long, T_null, T_short, T_undefined, T_void, UNBOXING
 
构造方法摘要
TypeDeclaration(CompilationResult compilationResult)
           
 
方法摘要
 void abort(int abortLevel, CategorizedProblem problem)
           
 void addClinit()
          This method is responsible for adding a method declaration to the type method collections.
 MethodDeclaration addMissingAbstractMethodFor(MethodBinding methodBinding)
           
 FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
          Flow analysis for a local innertype
 void analyseCode(ClassScope enclosingClassScope)
          Flow analysis for a member innertype
 void analyseCode(ClassScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
          Flow analysis for a local member innertype
 void analyseCode(CompilationUnitScope unitScope)
          Flow analysis for a package member type
 boolean checkConstructors(Parser parser)
          Check for constructor vs. method with no return type.
 CompilationResult compilationResult()
           
 ConstructorDeclaration createDefaultConstructor(boolean needExplicitConstructorCall, boolean needToInsert)
           
 MethodBinding createDefaultConstructorWithBinding(MethodBinding inheritedConstructorBinding, boolean eraseThrownExceptions)
           
 FieldDeclaration declarationOf(FieldBinding fieldBinding)
          Find the matching parse node, answers null if nothing found
 TypeDeclaration declarationOf(MemberTypeBinding memberTypeBinding)
          Find the matching parse node, answers null if nothing found
 AbstractMethodDeclaration declarationOf(MethodBinding methodBinding)
          Find the matching parse node, answers null if nothing found
 TypeDeclaration declarationOfType(char[][] typeName)
          Finds the matching type amoung this type's member types.
 void generateCode(BlockScope blockScope, CodeStream codeStream)
          Bytecode generation for a local inner type (API as a normal statement code gen)
 void generateCode(ClassFile enclosingClassFile)
          Generic bytecode generation for type
 void generateCode(ClassScope classScope, ClassFile enclosingClassFile)
          Bytecode generation for a member inner type
 void generateCode(CompilationUnitScope unitScope)
          Bytecode generation for a package member
 boolean hasErrors()
           
 boolean isSecondary()
          Returns whether the type is a secondary one or not.
static int kind(int flags)
           
 void manageEnclosingInstanceAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo)
           
 void manageEnclosingInstanceAccessIfNecessary(ClassScope currentScope, FlowInfo flowInfo)
          Access emulation for a local member type force to emulation of access to direct enclosing instance.
 boolean needClassInitMethod()
          A will be requested as soon as static fields or assertions are present.
 void parseMethods(Parser parser, CompilationUnitDeclaration unit)
           
 StringBuffer print(int indent, StringBuffer output)
           
 StringBuffer printBody(int indent, StringBuffer output)
           
 StringBuffer printHeader(int indent, StringBuffer output)
           
 StringBuffer printStatement(int tab, StringBuffer output)
           
 void resolve()
           
 void resolve(BlockScope blockScope)
          Resolve a local type declaration
 void resolve(ClassScope upperScope)
          Resolve a member type declaration (can be a local member)
 void resolve(CompilationUnitScope upperScope)
          Resolve a top level type declaration
 void tagAsHavingErrors()
           
 void traverse(ASTVisitor visitor, BlockScope blockScope)
          Iteration for a local innertype
 void traverse(ASTVisitor visitor, ClassScope classScope)
          Iteration for a member innertype
 void traverse(ASTVisitor visitor, CompilationUnitScope unitScope)
          Iteration for a package member type
 
从类 org.eclipse.jdt.internal.compiler.ast.Statement 继承的方法
branchChainTo, checkAgainstNullAnnotation, complainIfUnreachable, expectedType, generateArguments, isBoxingCompatible, isEmptyBlock, isKnowDeadCodePattern, isValidJavaStatement, resolveCase
 
从类 org.eclipse.jdt.internal.compiler.ast.ASTNode 继承的方法
checkInvocationArguments, concreteStatement, isFieldUseDeprecated, isImplicitThis, isMethodUseDeprecated, isSuper, isThis, isTypeUseDeprecated, printAnnotations, printIndent, printModifiers, resolveAnnotations, resolveDeprecatedAnnotations, sourceEnd, sourceStart, toString
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

CLASS_DECL

public static final int CLASS_DECL
另请参见:
常量字段值

INTERFACE_DECL

public static final int INTERFACE_DECL
另请参见:
常量字段值

ENUM_DECL

public static final int ENUM_DECL
另请参见:
常量字段值

ANNOTATION_TYPE_DECL

public static final int ANNOTATION_TYPE_DECL
另请参见:
常量字段值

modifiers

public int modifiers

modifiersSourceStart

public int modifiersSourceStart

annotations

public Annotation[] annotations

name

public char[] name

superclass

public TypeReference superclass

superInterfaces

public TypeReference[] superInterfaces

fields

public FieldDeclaration[] fields

methods

public AbstractMethodDeclaration[] methods

memberTypes

public TypeDeclaration[] memberTypes

binding

public SourceTypeBinding binding

scope

public ClassScope scope

initializerScope

public MethodScope initializerScope

staticInitializerScope

public MethodScope staticInitializerScope

ignoreFurtherInvestigation

public boolean ignoreFurtherInvestigation

maxFieldCount

public int maxFieldCount

declarationSourceStart

public int declarationSourceStart

declarationSourceEnd

public int declarationSourceEnd

bodyStart

public int bodyStart

bodyEnd

public int bodyEnd

compilationResult

public CompilationResult compilationResult

missingAbstractMethods

public MethodDeclaration[] missingAbstractMethods

javadoc

public Javadoc javadoc

allocation

public QualifiedAllocationExpression allocation

enclosingType

public TypeDeclaration enclosingType

enumValuesSyntheticfield

public FieldBinding enumValuesSyntheticfield

enumConstantsCounter

public int enumConstantsCounter

typeParameters

public TypeParameter[] typeParameters
构造方法详细信息

TypeDeclaration

public TypeDeclaration(CompilationResult compilationResult)
方法详细信息

abort

public void abort(int abortLevel,
                  CategorizedProblem problem)
指定者:
接口 ReferenceContext 中的 abort

addClinit

public final void addClinit()
This method is responsible for adding a method declaration to the type method collections. Note that this implementation is inserting it in first place (as VAJ or javac), and that this impacts the behavior of the method ConstantPool.resetForClinit(int. int), in so far as the latter will have to reset the constant pool state accordingly (if it was added first, it does not need to preserve some of the method specific cached entries since this will be the first method). inserts the clinit method declaration in the first position.

另请参见:
ConstantPool.resetForClinit(int, int)

addMissingAbstractMethodFor

public MethodDeclaration addMissingAbstractMethodFor(MethodBinding methodBinding)

analyseCode

public FlowInfo analyseCode(BlockScope currentScope,
                            FlowContext flowContext,
                            FlowInfo flowInfo)
Flow analysis for a local innertype

指定者:
Statement 中的 analyseCode

analyseCode

public void analyseCode(ClassScope enclosingClassScope)
Flow analysis for a member innertype


analyseCode

public void analyseCode(ClassScope currentScope,
                        FlowContext flowContext,
                        FlowInfo flowInfo)
Flow analysis for a local member innertype


analyseCode

public void analyseCode(CompilationUnitScope unitScope)
Flow analysis for a package member type


checkConstructors

public boolean checkConstructors(Parser parser)
Check for constructor vs. method with no return type. Answers true if at least one constructor is defined


compilationResult

public CompilationResult compilationResult()
指定者:
接口 ReferenceContext 中的 compilationResult

createDefaultConstructor

public ConstructorDeclaration createDefaultConstructor(boolean needExplicitConstructorCall,
                                                       boolean needToInsert)

createDefaultConstructorWithBinding

public MethodBinding createDefaultConstructorWithBinding(MethodBinding inheritedConstructorBinding,
                                                         boolean eraseThrownExceptions)

declarationOf

public FieldDeclaration declarationOf(FieldBinding fieldBinding)
Find the matching parse node, answers null if nothing found


declarationOf

public TypeDeclaration declarationOf(MemberTypeBinding memberTypeBinding)
Find the matching parse node, answers null if nothing found


declarationOf

public AbstractMethodDeclaration declarationOf(MethodBinding methodBinding)
Find the matching parse node, answers null if nothing found


declarationOfType

public TypeDeclaration declarationOfType(char[][] typeName)
Finds the matching type amoung this type's member types. Returns null if no type with this name is found. The type name is a compound name relative to this type e.g. if this type is X and we're looking for Y.X.A.B then a type name would be {X, A, B}


generateCode

public void generateCode(ClassFile enclosingClassFile)
Generic bytecode generation for type


generateCode

public void generateCode(BlockScope blockScope,
                         CodeStream codeStream)
Bytecode generation for a local inner type (API as a normal statement code gen)

指定者:
Statement 中的 generateCode

generateCode

public void generateCode(ClassScope classScope,
                         ClassFile enclosingClassFile)
Bytecode generation for a member inner type


generateCode

public void generateCode(CompilationUnitScope unitScope)
Bytecode generation for a package member


hasErrors

public boolean hasErrors()
指定者:
接口 ReferenceContext 中的 hasErrors

kind

public static final int kind(int flags)

manageEnclosingInstanceAccessIfNecessary

public void manageEnclosingInstanceAccessIfNecessary(BlockScope currentScope,
                                                     FlowInfo flowInfo)

manageEnclosingInstanceAccessIfNecessary

public void manageEnclosingInstanceAccessIfNecessary(ClassScope currentScope,
                                                     FlowInfo flowInfo)
Access emulation for a local member type force to emulation of access to direct enclosing instance. By using the initializer scope, we actually only request an argument emulation, the field is not added until actually used. However we will force allocations to be qualified with an enclosing instance. Local member cannot be static.


needClassInitMethod

public final boolean needClassInitMethod()
A will be requested as soon as static fields or assertions are present. It will be eliminated during classfile creation if no bytecode was actually produced based on some optimizations/compiler settings.


parseMethods

public void parseMethods(Parser parser,
                         CompilationUnitDeclaration unit)

print

public StringBuffer print(int indent,
                          StringBuffer output)
覆盖:
Statement 中的 print

printBody

public StringBuffer printBody(int indent,
                              StringBuffer output)

printHeader

public StringBuffer printHeader(int indent,
                                StringBuffer output)

printStatement

public StringBuffer printStatement(int tab,
                                   StringBuffer output)
指定者:
Statement 中的 printStatement

resolve

public void resolve()

resolve

public void resolve(BlockScope blockScope)
Resolve a local type declaration

指定者:
Statement 中的 resolve

resolve

public void resolve(ClassScope upperScope)
Resolve a member type declaration (can be a local member)


resolve

public void resolve(CompilationUnitScope upperScope)
Resolve a top level type declaration


tagAsHavingErrors

public void tagAsHavingErrors()
指定者:
接口 ReferenceContext 中的 tagAsHavingErrors

traverse

public void traverse(ASTVisitor visitor,
                     CompilationUnitScope unitScope)
Iteration for a package member type


traverse

public void traverse(ASTVisitor visitor,
                     BlockScope blockScope)
Iteration for a local innertype

覆盖:
ASTNode 中的 traverse

traverse

public void traverse(ASTVisitor visitor,
                     ClassScope classScope)
Iteration for a member innertype


isSecondary

public boolean isSecondary()
Returns whether the type is a secondary one or not.



Copyright © 2013. All Rights Reserved.