Package com.android.dx.dex.file
Class ClassDataItem
java.lang.Object
com.android.dx.dex.file.Item
com.android.dx.dex.file.OffsettedItem
com.android.dx.dex.file.ClassDataItem
- All Implemented Interfaces:
Comparable<OffsettedItem>
Representation of all the parts of a Dalvik class that are generally
"inflated" into an in-memory representation at runtime. Instances of
this class are represented in a compact streamable form in a
dex
file, as opposed to a random-access form.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addContents
(DexFile file) Populates aDexFile
with items from within this instance.void
addDirectMethod
(EncodedMethod method) Adds a direct (static
and/orprivate
) method.void
addInstanceField
(EncodedField field) Adds an instance field.void
addStaticField
(EncodedField field, Constant value) Adds a static field.void
addVirtualMethod
(EncodedMethod method) Adds a virtual method.void
debugPrint
(Writer out, boolean verbose) Prints out the contents of this instance, in a debugging-friendly way.Gets all the methods in this class.boolean
isEmpty()
Returns whether this instance is empty.itemType()
Returns the item type for this instance.protected void
Does additional work required when placing an instance.toHuman()
Gets a short human-readable string representing this instance.void
writeTo0
(DexFile file, AnnotatedOutput out) Performs the actual write of the contents of this instance to the given data section.Methods inherited from class com.android.dx.dex.file.OffsettedItem
compareTo, compareTo0, equals, getAbsoluteOffset, getAbsoluteOffsetOr0, getAlignment, getRelativeOffset, offsetString, place, setWriteSize, writeSize, writeTo
-
Constructor Details
-
ClassDataItem
Constructs an instance. Its sets of members are initially empty.- Parameters:
thisClass
-non-null;
what class this data is for, just for listing generation
-
-
Method Details
-
itemType
Returns the item type for this instance. -
toHuman
Gets a short human-readable string representing this instance.- Specified by:
toHuman
in classOffsettedItem
- Returns:
non-null;
the human form
-
isEmpty
public boolean isEmpty()Returns whether this instance is empty.- Returns:
true
if this instance is empty orfalse
if at least one element has been added to it
-
addStaticField
Adds a static field.- Parameters:
field
-non-null;
the field to addvalue
-null-ok;
initial value for the field, if any
-
addInstanceField
Adds an instance field.- Parameters:
field
-non-null;
the field to add
-
addDirectMethod
Adds a direct (static
and/orprivate
) method.- Parameters:
method
-non-null;
the method to add
-
addVirtualMethod
Adds a virtual method.- Parameters:
method
-non-null;
the method to add
-
getMethods
Gets all the methods in this class. The returned list is not linked in any way to the underlying lists contained in this instance, but the objects contained in the list are shared.- Returns:
non-null;
list of all methods
-
debugPrint
Prints out the contents of this instance, in a debugging-friendly way.- Parameters:
out
-non-null;
where to output toverbose
- whether to be verbose with the output
-
addContents
Populates aDexFile
with items from within this instance. This will not add an item to the file for this instance itself (which should have been done by whatever refers to this instance).Note: Subclasses must override this to do something appropriate.
- Specified by:
addContents
in classItem
- Parameters:
file
-non-null;
the file to populate
-
getStaticValuesConstant
- Returns:
null-ok;
the corresponding constant ornull
if there are no values to encode
-
place0
Does additional work required when placing an instance. The default implementation of this method is a no-op. If a particular class needs to do something special, then it should override this method. In particular, if this instance did not know its write size up-front, then this method is responsible for setting it.- Overrides:
place0
in classOffsettedItem
- Parameters:
addedTo
-non-null;
the section this instance has been added tooffset
->= 0;
the offset from the start of the section where this instance was placed
-
writeTo0
Performs the actual write of the contents of this instance to the given data section. This is called byOffsettedItem.writeTo(com.android.dx.dex.file.DexFile, com.android.dx.util.AnnotatedOutput)
, which will have taken care of ensuring alignment.- Specified by:
writeTo0
in classOffsettedItem
- Parameters:
file
-non-null;
the file to use for referenceout
-non-null;
where to write to
-