trait Signature_attributeReader extends AttributeReader with ClassFileReaderConfiguration
Implements the template method to read signature attributes.
The Signature attribute is an optional attribute in the attributes table of a ClassFile, field_info or method_info structure.
- Alphabetic
- By Inheritance
- Signature_attributeReader
- ClassFileReaderConfiguration
- AttributeReader
- AttributesAbstractions
- Constant_PoolAbstractions
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- abstract type Attribute >: Null <: AnyRef
Specifying a lower bound is necessary to implement a generic
skipAttribute
method.Specifying a lower bound is necessary to implement a generic
skipAttribute
method.- Definition Classes
- AttributesAbstractions
- type Attributes = ArraySeq[Attribute]
- Definition Classes
- AttributesAbstractions
- abstract type CONSTANT_Utf8_info <: Constant_Pool_Entry
- Definition Classes
- Constant_PoolAbstractions
- abstract type ClassFile
- Definition Classes
- Constant_PoolAbstractions
- final type Constant_Pool = Array[Constant_Pool_Entry]
- Definition Classes
- Constant_PoolAbstractions
- abstract type Constant_Pool_Entry <: ConstantPoolEntry
- Definition Classes
- Constant_PoolAbstractions
- final type Constant_Pool_Index = Int
- Definition Classes
- Constant_PoolAbstractions
- type DeferredActionsStore = Buffer[(ClassFile) => ClassFile] with Constant_Pool_Entry
A DeferredActionsStore stores all functions that need to perform post load actions.
A DeferredActionsStore stores all functions that need to perform post load actions.
One example is the resolution of references to attributes. (The constant pool is the only structure that is passed around and hence it is the only place where to store information/functions related to a specific class file).
- Definition Classes
- Constant_PoolAbstractions
- abstract type Signature_attribute >: Null <: Attribute
Abstract Value Members
- abstract def Signature_attribute(constant_pool: Constant_Pool, ap: AttributeParent, ap_name_index: Constant_Pool_Index, ap_descriptor_index: Constant_Pool_Index, attribute_name_index: Constant_Pool_Index, signature_index: Constant_Pool_Index): Signature_attribute
Creates a
Signature_attribute
.Creates a
Signature_attribute
.From the Specification
The constant pool entry at signature_index must be a CONSTANT_Utf8_info structure representing either a class signature, if this signature attribute is an attribute of a ClassFile structure, a method type signature, if this signature is an attribute of a method_info structure, or a field type signature otherwise.
- abstract def applyDeferredActions(cp: Constant_Pool, classFile: ClassFile): ClassFile
This method is called/needs to be called after the class file was completely loaded to perform class file specific transformations.
This method is called/needs to be called after the class file was completely loaded to perform class file specific transformations.
- Definition Classes
- Constant_PoolAbstractions
- implicit abstract val attributeType: ClassTag[Attribute]
- Definition Classes
- AttributesAbstractions
- implicit abstract val constantPoolEntryType: ClassTag[Constant_Pool_Entry]
- Definition Classes
- Constant_PoolAbstractions
- abstract def loadsInterfacesOnly: Boolean
If
true
method bodies are never loaded.If
true
method bodies are never loaded.- Definition Classes
- ClassFileReaderConfiguration
- abstract def registerAttributeReader(reader: (String, (Constant_Pool, AttributeParent, Constant_Pool_Index, Constant_Pool_Index, Constant_Pool_Index, DataInputStream) => Attribute)): Unit
Called (typically by subclasses) to register a reader for a concrete attribute.
Called (typically by subclasses) to register a reader for a concrete attribute. This function is intended to be provided/implemented by an
AttributesReader
that manages the attributes of a class, method_info, field_info or code_attribute structure.- reader
A map where the key is the name of an attribute and the value is a function that given a data input stream that is positioned directly at the beginning of the attribute, the constant pool, the index of the attribute's name and the parent of the attribute reads in the attribute and returns it.
- Definition Classes
- AttributeReader
- abstract def registerAttributesPostProcessor(p: (Attributes) => Attributes): Unit
Registers a new processor for the list of all attributes of a given class file structure (class, field_info, method_info, code_attribute).
Registers a new processor for the list of all attributes of a given class file structure (class, field_info, method_info, code_attribute). This can be used to post-process attributes. E.g., to merge multiple line number tables if they exist or to remove attributes if they are completely resolved.
- Definition Classes
- AttributeReader
- See also
The implementation of org.opalj.br.reader.UnpackedLineNumberTable_attributeBinding for a concrete example.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- implicit val config: Config
The
Config
object that will be used to read the configuration settings for reading in class files.The
Config
object that will be used to read the configuration settings for reading in class files.- Definition Classes
- ClassFileReaderConfiguration
- def defaultConfig: Config
- Definition Classes
- ClassFileReaderConfiguration
- def defaultLogContext: LogContext
- Definition Classes
- ClassFileReaderConfiguration
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- implicit val logContext: LogContext
The org.opalj.log.LogContext that should be used to log rewritings.
The org.opalj.log.LogContext that should be used to log rewritings.
- Definition Classes
- ClassFileReaderConfiguration
- Note
The org.opalj.log.LogContext is typically either the org.opalj.log.GlobalLogContext or a project specific log context.
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- def reifyEmptyAttributes: Boolean
Controls whether empty attributes (e.g., a LocalVariableTypeTable with no entries) should be reified or should be dropped.
Controls whether empty attributes (e.g., a LocalVariableTypeTable with no entries) should be reified or should be dropped.
- Definition Classes
- AttributeReader
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def throwIllegalArgumentException: Boolean
Returns
true
if an exception is to be raised if an invalid signature is found.Returns
true
if an exception is to be raised if an invalid signature is found. The default is to just log the invalid signature and to otherwise ignore it.This method is intended to be overridden.
- returns
false
.
- Note
This method was primarily introduced because we found many class files with invalid signatures AND the JVM also handles this case gracefully!
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated