Package com.strobel.assembler.ir
Class MetadataReader
java.lang.Object
com.strobel.assembler.ir.MetadataReader
- Direct Known Subclasses:
ClassFileReader
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract MetadataParser
protected abstract IMetadataScope
getScope()
protected final SourceAttribute
inflateAttribute
(SourceAttribute attribute) protected final SourceAttribute
inflateAttribute
(Buffer buffer, SourceAttribute attribute) protected void
inflateAttributes
(SourceAttribute[] attributes) protected void
inflateAttributes
(List<SourceAttribute> attributes) readAttribute
(Buffer buffer) protected SourceAttribute
readAttributeCore
(String name, Buffer buffer, int originalOffset, int length) Reads aSourceAttribute
from the specified buffer.void
readAttributes
(Buffer input, SourceAttribute[] attributes)
-
Constructor Details
-
MetadataReader
protected MetadataReader()
-
-
Method Details
-
getScope
-
getParser
-
readAttributes
-
readAttribute
-
readAttributeCore
protected SourceAttribute readAttributeCore(String name, Buffer buffer, int originalOffset, int length) Reads aSourceAttribute
from the specified buffer.- Parameters:
name
- The name of the attribute to decode.buffer
- A buffer containing the attribute blob.originalOffset
- The offset of position 0 in the buffer relative to the start of the original class file. This is needed during lazy inflation ofCodeAttribute
(and possibly others). In the case ofCodeAttribute
, it is helpful to know exactly where each method's body begins so we can load it on demand at some point in the future.length
- The length of the attribute. Implementations should not rely onbuffer.size()
.
-
inflateAttributes
-
inflateAttribute
-
inflateAttribute
-
inflateAttributes
-