Class AnnotationsDirectoryItem
java.lang.Object
com.android.dx.dex.file.Item
com.android.dx.dex.file.OffsettedItem
com.android.dx.dex.file.AnnotationsDirectoryItem
- All Implemented Interfaces:
Comparable<OffsettedItem>
Per-class directory of annotations.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddContents(DexFile file) Populates aDexFilewith items from within this instance.voidaddFieldAnnotations(CstFieldRef field, Annotations annotations, DexFile dexFile) Adds a field annotations item to this instance.voidaddMethodAnnotations(CstMethodRef method, Annotations annotations, DexFile dexFile) Adds a method annotations item to this instance.voidaddParameterAnnotations(CstMethodRef method, AnnotationsList list, DexFile dexFile) Adds a parameter annotations item to this instance.intcompareTo0(OffsettedItem other) Compares this instance to another which is guaranteed to be of the same class.getMethodAnnotations(CstMethodRef method) Gets the method annotations for a given method, if any.getParameterAnnotations(CstMethodRef method) Gets the parameter annotations for a given method, if any.inthashCode()booleanisEmpty()Returns whether this item is empty (has no contents).booleanReturns whether this item is a candidate for interning.itemType()Returns the item type for this instance.protected voidDoes additional work required when placing an instance.voidsetClassAnnotations(Annotations annotations, DexFile dexFile) Sets the direct annotations on this instance.toHuman()Gets a short human-readable string representing this instance.protected voidwriteTo0(DexFile file, AnnotatedOutput out) Performs the actual write of the contents of this instance to the given data section.Methods inherited from class OffsettedItem
compareTo, equals, getAbsoluteOffset, getAbsoluteOffsetOr0, getAlignment, getRelativeOffset, offsetString, place, setWriteSize, writeSize, writeTo
-
Constructor Details
-
AnnotationsDirectoryItem
public AnnotationsDirectoryItem()Constructs an empty instance.
-
-
Method Details
-
itemType
-
isEmpty
public boolean isEmpty()Returns whether this item is empty (has no contents).- Returns:
trueif this item is empty, orfalseif not
-
isInternable
public boolean isInternable()Returns whether this item is a candidate for interning. The only interning candidates are ones that only have a non-null set of class annotations, with no other lists.- Returns:
trueif this is an interning candidate, orfalseif not
-
hashCode
-
compareTo0
Compares this instance to another which is guaranteed to be of the same class. The default implementation of this method is to throw an exception (unsupported operation). If a particular class needs to actually sort, then it should override this method.Note:: This throws an exception if this item is not internable.
- Overrides:
compareTo0in classOffsettedItem- Parameters:
other-non-null;instance to compare to- Returns:
-1,0, or1, depending on the sort order of this instance and the other- See Also:
-
setClassAnnotations
Sets the direct annotations on this instance. These are annotations made on the class, per se, as opposed to on one of its members. It is only valid to call this method at most once per instance.- Parameters:
annotations-non-null;annotations to set for this classdexFile-non-null;dex output
-
addFieldAnnotations
Adds a field annotations item to this instance.- Parameters:
field-non-null;field in questionannotations-non-null;associated annotations to adddexFile-non-null;dex output
-
addMethodAnnotations
Adds a method annotations item to this instance.- Parameters:
method-non-null;method in questionannotations-non-null;associated annotations to adddexFile-non-null;dex output
-
addParameterAnnotations
Adds a parameter annotations item to this instance.- Parameters:
method-non-null;method in questionlist-non-null;associated list of annotation sets to adddexFile-non-null;dex output
-
getMethodAnnotations
Gets the method annotations for a given method, if any. This is meant for use by debugging / dumping code.- Parameters:
method-non-null;the method- Returns:
null-ok;the method annotations, if any
-
getParameterAnnotations
Gets the parameter annotations for a given method, if any. This is meant for use by debugging / dumping code.- Parameters:
method-non-null;the method- Returns:
null-ok;the parameter annotations, if any
-
addContents
Populates aDexFilewith 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:
addContentsin classItem- Parameters:
file-non-null;the file to populate
-
toHuman
Gets a short human-readable string representing this instance.- Specified by:
toHumanin classOffsettedItem- Returns:
non-null;the human form
-
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:
place0in 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(DexFile, AnnotatedOutput), which will have taken care of ensuring alignment.- Specified by:
writeTo0in classOffsettedItem- Parameters:
file-non-null;the file to use for referenceout-non-null;where to write to
-