trait AttributeReader extends Constant_PoolAbstractions with AttributesAbstractions
Generic infrastructure used by specific parsers of class file attributes to register with the overall framework (org.opalj.bi.reader.AttributesReader).
- Source
- AttributeReader.scala
- Alphabetic
- By Inheritance
- 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 Value Members
- 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 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.
- 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.
- 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()
- 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
- 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.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- 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