Klasse ClassFile
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.compiler.ClassFile
- Alle implementierten Schnittstellen:
TypeConstants,TypeIds
- Bekannte direkte Unterklassen:
AjClassFile,CodeSnippetClassFile
Represents a class file wrapper on bytes, it is aware of its actual
type name.
Public APIs are listed below:
byte[] getBytes();
Answer the actual bytes of the class file
char[][] getCompoundName();
Answer the compound name of the class file.
For example, {{java}, {util}, {Hashtable}}.
byte[] getReducedBytes();
Answer a smaller byte format, which is only contains some structural
information. Those bytes are decodable with a regular class file reader,
such as DietClassFileReader
-
Verschachtelte Klassen - Übersicht
Von Schnittstelle geerbte verschachtelte Klassen/Schnittstellen org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeConstants
TypeConstants.BoundCheckStatus, TypeConstants.CloseMethodRecord, TypeConstants.DangerousMethod -
Feldübersicht
FelderModifizierer und TypFeldBeschreibungstatic final Stringstatic final String[]static final Stringintbyte[]intprotected booleanstatic final Stringbyte[]intstatic final intstatic final intstatic final intbooleanstatic final Stringintintstatic final intintlongstatic final StringVon Schnittstelle geerbte Felder 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, API, ASSERT_CLASS, ASSERT_FALSE, ASSERT_NOTNULL, ASSERT_NULL, ASSERT_TRUE, ASSERTIONS_CLASS, AUTOMATIC_MODULE_NAME, AUTOWIRED, BEANS, BOOLEAN, BYTE, CAPTURE18, CHANNELS, 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, CharArray_JAVA_LANG_RECORD, CharArray_JAVA_LANG_RECORD_SLASH, 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, CONTAINS, CONTAINS_ALL, CONTAINS_KEY, CONTAINS_VALUE, 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, ESSENTIAL_API, FACTORY, FLOAT, FLUENT_RESOURCE_CLASSES, FOR_REMOVAL, FRAMEWORK, GET, GETCLASS, GOOGLE, GUAVA_CLOSEABLES, HASHCODE, IMPLEMENTS, INDEX_OF, INIT, INJECT_PACKAGE, INJECT_TYPE, INT, INTERNAL, INVOKE, IO, IS_INSTANCE, IS_NOTNULL, IS_NULL, IS_TRUE, ITYPEBINDING, JAVA, JAVA_BASE, 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, 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_INCOMPATIBLECLASSCHANGEERROR, JAVA_LANG_INTEGER, JAVA_LANG_INVOKE_LAMBDAMETAFACTORY, JAVA_LANG_INVOKE_METHODHANDLE, JAVA_LANG_INVOKE_METHODHANDLE_$_POLYMORPHICSIGNATURE, JAVA_LANG_INVOKE_METHODHANDLE_POLYMORPHICSIGNATURE, JAVA_LANG_INVOKE_METHODHANDLES, JAVA_LANG_INVOKE_SERIALIZEDLAMBDA, JAVA_LANG_INVOKE_VARHANDLE, JAVA_LANG_ITERABLE, JAVA_LANG_LONG, JAVA_LANG_NOCLASSDEFERROR, JAVA_LANG_NOSUCHFIELDERROR, JAVA_LANG_OBJECT, JAVA_LANG_OVERRIDE, JAVA_LANG_RECORD, JAVA_LANG_REFLECT_CONSTRUCTOR, JAVA_LANG_REFLECT_FIELD, JAVA_LANG_REFLECT_METHOD, JAVA_LANG_RUNTIME_OBJECTMETHODS, JAVA_LANG_RUNTIME_SWITCHBOOTSTRAPS, 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_ARRAYS, JAVA_UTIL_COLLECTION, JAVA_UTIL_ITERATOR, JAVA_UTIL_LIST, JAVA_UTIL_MAP, JAVA_UTIL_OBJECTS, JAVA_UTIL_STREAM, JAVA_UTIL_ZIP_WRAPPER_CLOSEABLES, JAVAC, JAVAX, JAVAX_ANNOTATION_INJECT_INJECT, JAVAX_RMI_CORBA_STUB, JDK, JDK_INTERNAL_JAVAC_PREVIEW_FEATURE, JDK_INTERNAL_PREVIEW_FEATURE, JDK_INTERNAL_VALUEBASED, JDT, JUNIT, JUNIT_FRAMEWORK_ASSERT, JUPITER, KEYWORD_EXTENDS, LAMBDA_TYPE, LANG, LANG3, LAST_INDEX_OF, LENGTH, LONG, LOOKUP, MAIN, META_INF_MANIFEST_MF, METHOD_SOURCE, MODULE_INFO_CLASS_NAME, MODULE_INFO_CLASS_NAME_STRING, MODULE_INFO_FILE_NAME, MODULE_INFO_FILE_NAME_STRING, MODULE_INFO_NAME, MODULE_INFO_NAME_STRING, NEXT, NIO, NON_NULL, NOT_NULL, NULL, OBJECT, ONE_UTIL_STREAMEX, 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, ORG_JUNIT_JUPITER_API_ASSERTIONS, ORG_JUNIT_METHOD_SOURCE, ORG_SPRING_AUTOWIRED, OTHER_WRAPPER_CLOSEABLES, PACKAGE_INFO_NAME, PARAMS, PERMITS, PROVIDER, READOBJECT, READRESOLVE, RECORD_CLASS, RECORD_RESTRICTED_IDENTIFIER, REFLECT, REMOVE, REMOVE_ALL, REQUIRE_NON_NULL, REQUIRED, RESOURCE_FREE_CLOSEABLE_J_U_STREAMS, RESOURCE_FREE_CLOSEABLE_STREAMEX, RETAIN_ALL, RUNTIME, SEALED, SERIALPERSISTENTFIELDS, SERIALVERSIONUID, SHORT, SINCE, SPRING, 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, TOSTRING, TYPE, TYPE_PARAMETER_TARGET, TYPE_USE_TARGET, TYPEBINDING, UPPER_ANNOTATION_TYPE, UPPER_CLASS, UPPER_CONSTRUCTOR, UPPER_FIELD, UPPER_LOCAL_VARIABLE, UPPER_METHOD, UPPER_MODULE, UPPER_PACKAGE, UPPER_PARAMETER, UPPER_RECORD_COMPONENT, UPPER_RUNTIME, UPPER_SOURCE, UTIL, VALIDATE_CLASS, VALUE, VALUEOF, VALUES, VAR, VOID, WILDCARD_CAPTURE, WILDCARD_CAPTURE_NAME_PREFIX, WILDCARD_CAPTURE_NAME_SUFFIX, WILDCARD_CAPTURE_SIGNABLE_NAME_SUFFIX, WILDCARD_EXTENDS, WILDCARD_MINUS, WILDCARD_NAME, WILDCARD_PLUS, WILDCARD_STAR, WILDCARD_SUPER, WRITEOBJECT, WRITEREPLACE, YIELD, ZIPVon Schnittstelle geerbte Felder org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeIds
BitAnyNullAnnotation, BitAutoCloseable, BitCloseable, BitCollection, BitList, BitMap, BitNonNullAnnotation, BitNonNullByDefaultAnnotation, BitNullableAnnotation, 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_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_JavaLangRecord, 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_JavaUtilList, T_JavaUtilMap, T_JavaUtilObjects, T_JavaxInjectInject, T_JdkInternalPreviewFeature, T_JunitFrameworkAssert, T_LastWellKnownTypeId, T_long, T_null, T_OrgApacheCommonsLang3Validate, T_OrgApacheCommonsLangValidate, T_OrgEclipseCoreRuntimeAssert, T_OrgJunitAssert, T_OrgJunitJupiterApiAssertions, T_OrgJunitJupiterParamsProviderMethodSource, T_OrgSpringframeworkBeansFactoryAnnotationAutowired, T_short, T_undefined, T_void, UNBOXING -
Konstruktorübersicht
KonstruktorenModifiziererKonstruktorBeschreibungprotectedINTERNAL USE-ONLY This methods creates a new instance of the receiver.ClassFile(ModuleBinding moduleBinding, CompilerOptions options) ClassFile(SourceTypeBinding typeBinding) -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungvoidaddAbstractMethod(AbstractMethodDeclaration method, MethodBinding methodBinding) INTERNAL USE-ONLY Generate the byte for a problem method info that correspond to a bogus method.voidINTERNAL USE-ONLY This methods generate all the attributes for the receiver.voidINTERNAL USE-ONLY This methods generate all the default abstract method infos that correpond to the abstract methods inherited from superinterfaces.voidINTERNAL USE-ONLY This methods generate all the fields infos for the receiver.voidaddModuleAttributes(ModuleBinding module, Annotation[] annotations, CompilationUnitDeclaration cud) INTERNAL USE-ONLY This methods generate all the module attributes for the receiver.voidaddProblemClinit(CategorizedProblem[] problems) INTERNAL USE-ONLY Generate the byte for a problem clinit method info that correspond to a boggus method.voidaddProblemConstructor(AbstractMethodDeclaration method, MethodBinding methodBinding, CategorizedProblem[] problems) INTERNAL USE-ONLY Generate the byte for a problem method info that correspond to a boggus constructor.voidaddProblemConstructor(AbstractMethodDeclaration method, MethodBinding methodBinding, CategorizedProblem[] problems, int savedOffset) INTERNAL USE-ONLY Generate the byte for a problem method info that correspond to a boggus constructor.voidaddProblemMethod(AbstractMethodDeclaration method, MethodBinding methodBinding, CategorizedProblem[] problems) INTERNAL USE-ONLY Generate the byte for a problem method info that correspond to a boggus method.voidaddProblemMethod(AbstractMethodDeclaration method, MethodBinding methodBinding, CategorizedProblem[] problems, int savedOffset) INTERNAL USE-ONLY Generate the byte for a problem method info that correspond to a boggus method.voidaddSpecialMethods(TypeDeclaration typeDecl) INTERNAL USE-ONLY Generate the byte for all the special method infos.voidaddSyntheticArrayClone(SyntheticMethodBinding methodBinding) voidaddSyntheticArrayConstructor(SyntheticMethodBinding methodBinding) voidaddSyntheticConstructorAccessMethod(SyntheticMethodBinding methodBinding) INTERNAL USE-ONLY Generate the bytes for a synthetic method that provides an access to a private constructor.voidaddSyntheticDeserializeLambda(SyntheticMethodBinding methodBinding, SyntheticMethodBinding[] syntheticMethodBindings) voidaddSyntheticEnumInitializationMethod(SyntheticMethodBinding methodBinding) voidaddSyntheticEnumValueOfMethod(SyntheticMethodBinding methodBinding) INTERNAL USE-ONLY Generate the bytes for a synthetic method that implements Enum#valueOf(String) for a given enum typevoidaddSyntheticEnumValuesMethod(SyntheticMethodBinding methodBinding) INTERNAL USE-ONLY Generate the bytes for a synthetic method that implements Enum#values() for a given enum typevoidaddSyntheticFactoryMethod(SyntheticMethodBinding methodBinding) voidaddSyntheticFieldReadAccessMethod(SyntheticMethodBinding methodBinding) INTERNAL USE-ONLY Generate the byte for a problem method info that correspond to a synthetic method that generate an read access to a private field.voidaddSyntheticFieldWriteAccessMethod(SyntheticMethodBinding methodBinding) INTERNAL USE-ONLY Generate the byte for a problem method info that correspond to a synthetic method that generate an write access to a private field.voidaddSyntheticMethodAccessMethod(SyntheticMethodBinding methodBinding) INTERNAL USE-ONLY Generate the bytes for a synthetic method that provides access to a private method.voidaddSyntheticSwitchTable(SyntheticMethodBinding methodBinding) voidcompleteCodeAttribute(int codeAttributeOffset, MethodScope scope) INTERNAL USE-ONLY That method completes the creation of the code attribute by setting - the attribute_length - max_stack - max_locals - code_length - exception table - and debug attributes if necessary.voidcompleteCodeAttributeForClinit(int codeAttributeOffset, int problemLine, MethodScope scope) INTERNAL USE-ONLY That method completes the creation of the code attribute by setting - the attribute_length - max_stack - max_locals - code_length - exception table - and debug attributes if necessary.voidcompleteCodeAttributeForClinit(int codeAttributeOffset, Scope scope) INTERNAL USE-ONLY That method completes the creation of the code attribute by setting - the attribute_length - max_stack - max_locals - code_length - exception table - and debug attributes if necessary.voidcompleteCodeAttributeForMissingAbstractProblemMethod(MethodBinding binding, int codeAttributeOffset, int[] startLineIndexes, int problemLine) voidcompleteCodeAttributeForProblemMethod(AbstractMethodDeclaration method, MethodBinding binding, int codeAttributeOffset, int[] startLineIndexes, int problemLine) INTERNAL USE-ONLY That method completes the creation of the code attribute by setting - the attribute_length - max_stack - max_locals - code_length - exception table - and debug attributes if necessary.voidcompleteCodeAttributeForSyntheticMethod(boolean hasExceptionHandlers, SyntheticMethodBinding binding, int codeAttributeOffset, int[] startLineIndexes, Scope scope) INTERNAL USE-ONLY That method completes the creation of the code attribute by setting - the attribute_length - max_stack - max_locals - code_length - exception table - and debug attributes if necessary.voidcompleteCodeAttributeForSyntheticMethod(SyntheticMethodBinding binding, int codeAttributeOffset, int[] startLineIndexes) INTERNAL USE-ONLY That method completes the creation of the code attribute by setting - the attribute_length - max_stack - max_locals - code_length - exception table - and debug attributes if necessary.voidcompleteMethodInfo(MethodBinding binding, int methodAttributeOffset, int attributesNumber) INTERNAL USE-ONLY Complete the creation of a method info by setting up the number of attributes at the right offset.static voidcreateProblemType(TypeDeclaration typeDeclaration, CompilationResult unitResult) INTERNAL USE-ONLY Request the creation of a ClassFile compatible representation of a problematic typechar[]fileName()INTERNAL USE-ONLY This methods returns a char[] representing the file name of the receivervoidINTERNAL USE-ONLY That method generates the header of a code attributeintgenerateMethodInfoAttributes(MethodBinding methodBinding) intgenerateMethodInfoAttributes(MethodBinding methodBinding, List extraAttributes) INTERNAL USE-ONLY That method generates the attributes of a code attribute.intgenerateMethodInfoAttributes(MethodBinding methodBinding, AnnotationMethodDeclaration declaration) voidgenerateMethodInfoHeader(MethodBinding methodBinding) INTERNAL USE-ONLY That method generates the header of a method info: The header consists in: - the access flags - the name index of the method name inside the constant pool - the descriptor index of the signature of the method inside the constant pool.voidgenerateMethodInfoHeader(MethodBinding methodBinding, int accessFlags) INTERNAL USE-ONLY That method generates the header of a method info: The header consists in: - the access flags - the name index of the method name inside the constant pool - the descriptor index of the signature of the method inside the constant pool.voidINTERNAL USE-ONLY That method generates the method info header of a clinit: The header consists in: - the access flags (always default access + static) - the name index of the method name (always) inside the constant pool - the descriptor index of the signature (always ()V) of the method inside the constant pool. voidgenerateMissingAbstractMethods(MethodDeclaration[] methodDeclarations, CompilationResult compilationResult) INTERNAL USE-ONLY Generate the byte for problem method infos that correspond to missing abstract methods.intbyte[]getBytes()EXTERNAL API Answer the actual bytes of the class file This method encodes the receiver structure into a byte array which is the content of the classfile.char[][]EXTERNAL API Answer the compound name of the class file.static ClassFilegetNewInstance(SourceTypeBinding typeBinding) protected voidinitByteArrays(int members) voidinitialize(SourceTypeBinding aType, ClassFile parentClassFile, boolean createProblemType) voidinitializeForModule(ModuleBinding module) INTERNAL USE-ONLY Returns the most enclosing classfile of the receiver.intrecordBootstrapMethod(FunctionalExpression expression) intrecordBootstrapMethod(SwitchStatement switchStatement) voidrecordInnerClasses(TypeBinding binding) voidrecordInnerClasses(TypeBinding binding, boolean onBottomForBug445231) voidrecordNestMember(SourceTypeBinding binding) voidreset(SourceTypeBinding typeBinding, CompilerOptions options) voidINTERNAL USE-ONLY This methods leaves the space for method counts recording.traverse(MethodBinding methodBinding, int maxLocals, byte[] bytecodes, int codeOffset, int codeLength, Map<Integer, StackMapFrame> frames, boolean isClinit, Scope scope) char[]utf8At(byte[] reference, int absoluteOffset, int bytesAvailable)
-
Felddetails
-
codeStream
-
constantPool
-
constantPoolOffset
public int constantPoolOffset -
contents
public byte[] contents -
contentsOffset
public int contentsOffset -
creatingProblemType
protected boolean creatingProblemType -
enclosingClassFile
-
header
public byte[] header -
headerOffset
public int headerOffset -
innerClassesBindings
-
nestMembers
-
bootstrapMethods
-
methodCount
public int methodCount -
methodCountOffset
public int methodCountOffset -
produceAttributes
public int produceAttributes -
referenceBinding
-
isNestedType
public boolean isNestedType -
targetJDK
public long targetJDK -
missingTypes
-
visitedTypes
-
INITIAL_CONTENTS_SIZE
public static final int INITIAL_CONTENTS_SIZE- Siehe auch:
-
INITIAL_HEADER_SIZE
public static final int INITIAL_HEADER_SIZE- Siehe auch:
-
INNER_CLASSES_SIZE
public static final int INNER_CLASSES_SIZE- Siehe auch:
-
NESTED_MEMBER_SIZE
public static final int NESTED_MEMBER_SIZE- Siehe auch:
-
ALTMETAFACTORY_STRING
-
METAFACTORY_STRING
-
BOOTSTRAP_STRING
-
TYPESWITCH_STRING
-
ENUMSWITCH_STRING
-
BOOTSTRAP_METHODS
-
extraAttributes
-
-
Konstruktordetails
-
ClassFile
protected ClassFile()INTERNAL USE-ONLY This methods creates a new instance of the receiver. -
ClassFile
-
ClassFile
-
-
Methodendetails
-
createProblemType
INTERNAL USE-ONLY Request the creation of a ClassFile compatible representation of a problematic type- Parameter:
typeDeclaration- org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeDeclarationunitResult- org.aspectj.org.eclipse.jdt.internal.compiler.CompilationUnitResult
-
getNewInstance
-
addAbstractMethod
INTERNAL USE-ONLY Generate the byte for a problem method info that correspond to a bogus method.- Parameter:
method- org.aspectj.org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclarationmethodBinding- org.aspectj.org.eclipse.jdt.internal.compiler.nameloopkup.MethodBinding
-
addAttributes
public void addAttributes()INTERNAL USE-ONLY This methods generate all the attributes for the receiver. For a class they could be: - source file attribute - inner classes attribute - deprecated attribute -
addModuleAttributes
public void addModuleAttributes(ModuleBinding module, Annotation[] annotations, CompilationUnitDeclaration cud) INTERNAL USE-ONLY This methods generate all the module attributes for the receiver. -
addDefaultAbstractMethods
public void addDefaultAbstractMethods()INTERNAL USE-ONLY This methods generate all the default abstract method infos that correpond to the abstract methods inherited from superinterfaces. -
addFieldInfos
public void addFieldInfos()INTERNAL USE-ONLY This methods generate all the fields infos for the receiver. This includes: - a field info for each defined field of that class - a field info for each synthetic field (e.g. this$0) -
addProblemClinit
INTERNAL USE-ONLY Generate the byte for a problem clinit method info that correspond to a boggus method.- Parameter:
problems- org.aspectj.org.eclipse.jdt.internal.compiler.problem.Problem[]
-
addProblemConstructor
public void addProblemConstructor(AbstractMethodDeclaration method, MethodBinding methodBinding, CategorizedProblem[] problems) INTERNAL USE-ONLY Generate the byte for a problem method info that correspond to a boggus constructor.- Parameter:
method- org.aspectj.org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclarationmethodBinding- org.aspectj.org.eclipse.jdt.internal.compiler.nameloopkup.MethodBindingproblems- org.aspectj.org.eclipse.jdt.internal.compiler.problem.Problem[]
-
addProblemConstructor
public void addProblemConstructor(AbstractMethodDeclaration method, MethodBinding methodBinding, CategorizedProblem[] problems, int savedOffset) INTERNAL USE-ONLY Generate the byte for a problem method info that correspond to a boggus constructor. Reset the position inside the contents byte array to the savedOffset.- Parameter:
method- org.aspectj.org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclarationmethodBinding- org.aspectj.org.eclipse.jdt.internal.compiler.nameloopkup.MethodBindingproblems- org.aspectj.org.eclipse.jdt.internal.compiler.problem.Problem[]savedOffset-int
-
addProblemMethod
public void addProblemMethod(AbstractMethodDeclaration method, MethodBinding methodBinding, CategorizedProblem[] problems) INTERNAL USE-ONLY Generate the byte for a problem method info that correspond to a boggus method.- Parameter:
method- org.aspectj.org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclarationmethodBinding- org.aspectj.org.eclipse.jdt.internal.compiler.nameloopkup.MethodBindingproblems- org.aspectj.org.eclipse.jdt.internal.compiler.problem.Problem[]
-
addProblemMethod
public void addProblemMethod(AbstractMethodDeclaration method, MethodBinding methodBinding, CategorizedProblem[] problems, int savedOffset) INTERNAL USE-ONLY Generate the byte for a problem method info that correspond to a boggus method. Reset the position inside the contents byte array to the savedOffset.- Parameter:
method- org.aspectj.org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclarationmethodBinding- org.aspectj.org.eclipse.jdt.internal.compiler.nameloopkup.MethodBindingproblems- org.aspectj.org.eclipse.jdt.internal.compiler.problem.Problem[]savedOffset-int
-
addSpecialMethods
INTERNAL USE-ONLY Generate the byte for all the special method infos. They are: - synthetic access methods - default abstract methods - lambda methods. -
addSyntheticArrayConstructor
-
addSyntheticArrayClone
-
addSyntheticFactoryMethod
-
addSyntheticConstructorAccessMethod
INTERNAL USE-ONLY Generate the bytes for a synthetic method that provides an access to a private constructor.- Parameter:
methodBinding- org.aspectj.org.eclipse.jdt.internal.compiler.nameloopkup.SyntheticAccessMethodBinding
-
addSyntheticEnumValueOfMethod
INTERNAL USE-ONLY Generate the bytes for a synthetic method that implements Enum#valueOf(String) for a given enum type- Parameter:
methodBinding- org.aspectj.org.eclipse.jdt.internal.compiler.nameloopkup.SyntheticAccessMethodBinding
-
addSyntheticEnumValuesMethod
INTERNAL USE-ONLY Generate the bytes for a synthetic method that implements Enum#values() for a given enum type- Parameter:
methodBinding- org.aspectj.org.eclipse.jdt.internal.compiler.nameloopkup.SyntheticAccessMethodBinding
-
addSyntheticEnumInitializationMethod
-
addSyntheticFieldReadAccessMethod
INTERNAL USE-ONLY Generate the byte for a problem method info that correspond to a synthetic method that generate an read access to a private field.- Parameter:
methodBinding- org.aspectj.org.eclipse.jdt.internal.compiler.nameloopkup.SyntheticAccessMethodBinding
-
addSyntheticFieldWriteAccessMethod
INTERNAL USE-ONLY Generate the byte for a problem method info that correspond to a synthetic method that generate an write access to a private field.- Parameter:
methodBinding- org.aspectj.org.eclipse.jdt.internal.compiler.nameloopkup.SyntheticAccessMethodBinding
-
addSyntheticMethodAccessMethod
INTERNAL USE-ONLY Generate the bytes for a synthetic method that provides access to a private method.- Parameter:
methodBinding- org.aspectj.org.eclipse.jdt.internal.compiler.nameloopkup.SyntheticAccessMethodBinding
-
addSyntheticSwitchTable
-
completeCodeAttribute
INTERNAL USE-ONLY That method completes the creation of the code attribute by setting - the attribute_length - max_stack - max_locals - code_length - exception table - and debug attributes if necessary.- Parameter:
codeAttributeOffset-int
-
generateTypeAnnotationsOnCodeAttribute
public int generateTypeAnnotationsOnCodeAttribute() -
completeCodeAttributeForClinit
INTERNAL USE-ONLY That method completes the creation of the code attribute by setting - the attribute_length - max_stack - max_locals - code_length - exception table - and debug attributes if necessary.- Parameter:
codeAttributeOffset-int
-
completeCodeAttributeForClinit
public void completeCodeAttributeForClinit(int codeAttributeOffset, int problemLine, MethodScope scope) INTERNAL USE-ONLY That method completes the creation of the code attribute by setting - the attribute_length - max_stack - max_locals - code_length - exception table - and debug attributes if necessary. -
completeCodeAttributeForMissingAbstractProblemMethod
public void completeCodeAttributeForMissingAbstractProblemMethod(MethodBinding binding, int codeAttributeOffset, int[] startLineIndexes, int problemLine) -
completeCodeAttributeForProblemMethod
public void completeCodeAttributeForProblemMethod(AbstractMethodDeclaration method, MethodBinding binding, int codeAttributeOffset, int[] startLineIndexes, int problemLine) INTERNAL USE-ONLY That method completes the creation of the code attribute by setting - the attribute_length - max_stack - max_locals - code_length - exception table - and debug attributes if necessary.- Parameter:
codeAttributeOffset-int
-
completeCodeAttributeForSyntheticMethod
public void completeCodeAttributeForSyntheticMethod(boolean hasExceptionHandlers, SyntheticMethodBinding binding, int codeAttributeOffset, int[] startLineIndexes, Scope scope) INTERNAL USE-ONLY That method completes the creation of the code attribute by setting - the attribute_length - max_stack - max_locals - code_length - exception table - and debug attributes if necessary.- Parameter:
binding- org.aspectj.org.eclipse.jdt.internal.compiler.lookup.SyntheticAccessMethodBindingcodeAttributeOffset-int
-
completeCodeAttributeForSyntheticMethod
public void completeCodeAttributeForSyntheticMethod(SyntheticMethodBinding binding, int codeAttributeOffset, int[] startLineIndexes) INTERNAL USE-ONLY That method completes the creation of the code attribute by setting - the attribute_length - max_stack - max_locals - code_length - exception table - and debug attributes if necessary.- Parameter:
binding- org.aspectj.org.eclipse.jdt.internal.compiler.lookup.SyntheticAccessMethodBindingcodeAttributeOffset-int
-
completeMethodInfo
public void completeMethodInfo(MethodBinding binding, int methodAttributeOffset, int attributesNumber) INTERNAL USE-ONLY Complete the creation of a method info by setting up the number of attributes at the right offset.- Parameter:
methodAttributeOffset-intattributesNumber-int
-
fileName
public char[] fileName()INTERNAL USE-ONLY This methods returns a char[] representing the file name of the receiver- Gibt zurück:
- char[]
-
generateCodeAttributeHeader
public void generateCodeAttributeHeader()INTERNAL USE-ONLY That method generates the header of a code attribute. - the index inside the constant pool for the attribute name ("Code") - leave some space for attribute_length(4), max_stack(2), max_locals(2), code_length(4). -
generateMethodInfoAttributes
INTERNAL USE-ONLY That method generates the attributes of a code attribute. They could be: - an exception attribute for each try/catch found inside the method - a deprecated attribute - a synthetic attribute for synthetic access methods It returns the number of attributes created for the code attribute.- Parameter:
methodBinding- org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBinding- Gibt zurück:
int
-
generateMethodInfoAttributes
-
generateMethodInfoAttributes
public int generateMethodInfoAttributes(MethodBinding methodBinding, AnnotationMethodDeclaration declaration) -
generateMethodInfoHeader
INTERNAL USE-ONLY That method generates the header of a method info: The header consists in: - the access flags - the name index of the method name inside the constant pool - the descriptor index of the signature of the method inside the constant pool.- Parameter:
methodBinding- org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBinding
-
generateMethodInfoHeader
INTERNAL USE-ONLY That method generates the header of a method info: The header consists in: - the access flags - the name index of the method name inside the constant pool - the descriptor index of the signature of the method inside the constant pool.- Parameter:
methodBinding- org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBindingaccessFlags- the access flags
-
addSyntheticDeserializeLambda
public void addSyntheticDeserializeLambda(SyntheticMethodBinding methodBinding, SyntheticMethodBinding[] syntheticMethodBindings) -
generateMethodInfoHeaderForClinit
public void generateMethodInfoHeaderForClinit()INTERNAL USE-ONLY That method generates the method info header of a clinit: The header consists in: - the access flags (always default access + static) - the name index of the method name (always) inside the constant pool - the descriptor index of the signature (always ()V) of the method inside the constant pool. -
generateMissingAbstractMethods
public void generateMissingAbstractMethods(MethodDeclaration[] methodDeclarations, CompilationResult compilationResult) INTERNAL USE-ONLY Generate the byte for problem method infos that correspond to missing abstract methods. http://dev.eclipse.org/bugs/show_bug.cgi?id=3179- Parameter:
methodDeclarations- Array of all missing abstract methods
-
getBytes
public byte[] getBytes()EXTERNAL API Answer the actual bytes of the class file This method encodes the receiver structure into a byte array which is the content of the classfile. Returns the byte array that represents the encoded structure of the receiver.- Gibt zurück:
- byte[]
-
getCompoundName
public char[][] getCompoundName()EXTERNAL API Answer the compound name of the class file.- Gibt zurück:
- char[][] e.g. {{java}, {util}, {Hashtable}}.
-
initByteArrays
protected void initByteArrays(int members) -
initialize
public void initialize(SourceTypeBinding aType, ClassFile parentClassFile, boolean createProblemType) -
initializeForModule
-
outerMostEnclosingClassFile
INTERNAL USE-ONLY Returns the most enclosing classfile of the receiver. This is used know to store the constant pool name for all inner types of the receiver.- Gibt zurück:
- org.aspectj.org.eclipse.jdt.internal.compiler.codegen.ClassFile
-
recordInnerClasses
-
recordInnerClasses
-
recordNestMember
-
getNestMembers
-
recordBootstrapMethod
-
recordBootstrapMethod
-
reset
-
setForMethodInfos
public void setForMethodInfos()INTERNAL USE-ONLY This methods leaves the space for method counts recording. -
traverse
public List<StackMapFrame> traverse(MethodBinding methodBinding, int maxLocals, byte[] bytecodes, int codeOffset, int codeLength, Map<Integer, StackMapFrame> frames, boolean isClinit, Scope scope) -
utf8At
public char[] utf8At(byte[] reference, int absoluteOffset, int bytesAvailable)
-