com.android.dx.dex.file
Class AnnotationItem

java.lang.Object
  extended by com.android.dx.dex.file.Item
      extended by com.android.dx.dex.file.OffsettedItem
          extended by com.android.dx.dex.file.AnnotationItem
All Implemented Interfaces:
Comparable<OffsettedItem>

public final class AnnotationItem
extends OffsettedItem

Single annotation, which consists of a type and a set of name-value element pairs.


Constructor Summary
AnnotationItem(Annotation annotation, DexFile dexFile)
          Constructs an instance.
 
Method Summary
 void addContents(DexFile file)
          Populates a DexFile with items from within this instance.
 void annotateTo(AnnotatedOutput out, String prefix)
          Write a (listing file) annotation for this instance to the given output, that consumes no bytes of output.
protected  int compareTo0(OffsettedItem other)
          Compares this instance to another which is guaranteed to be of the same class.
 int hashCode()
          
 ItemType itemType()
          Returns the item type for this instance.
protected  void place0(Section addedTo, int offset)
          Does additional work required when placing an instance.
static void sortByTypeIdIndex(AnnotationItem[] array)
          Sorts an array of instances, in place, by type id index, ignoring all other aspects of the elements.
 String toHuman()
          Gets a short human-readable string representing this instance.
protected  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, equals, getAbsoluteOffset, getAbsoluteOffsetOr0, getAlignment, getRelativeOffset, offsetString, place, setWriteSize, writeSize, writeTo
 
Methods inherited from class com.android.dx.dex.file.Item
typeName
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AnnotationItem

public AnnotationItem(Annotation annotation,
                      DexFile dexFile)
Constructs an instance.

Parameters:
annotation - non-null; annotation to represent
dexFile - non-null; dex output
Method Detail

sortByTypeIdIndex

public static void sortByTypeIdIndex(AnnotationItem[] array)
Sorts an array of instances, in place, by type id index, ignoring all other aspects of the elements. This is only valid to use after type id indices are known.

Parameters:
array - non-null; array to sort

itemType

public ItemType itemType()
Returns the item type for this instance.

Specified by:
itemType in class Item
Returns:
non-null; the item type

hashCode

public int hashCode()

Overrides:
hashCode in class Object

compareTo0

protected int compareTo0(OffsettedItem other)
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.

Overrides:
compareTo0 in class OffsettedItem
Parameters:
other - non-null; instance to compare to
Returns:
-1, 0, or 1, depending on the sort order of this instance and the other

toHuman

public String toHuman()
Gets a short human-readable string representing this instance.

Specified by:
toHuman in class OffsettedItem
Returns:
non-null; the human form

addContents

public void addContents(DexFile file)
Populates a DexFile 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 class Item
Parameters:
file - non-null; the file to populate

place0

protected void place0(Section addedTo,
                      int offset)
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 class OffsettedItem
Parameters:
addedTo - non-null; the section this instance has been added to
offset - >= 0; the offset from the start of the section where this instance was placed

annotateTo

public void annotateTo(AnnotatedOutput out,
                       String prefix)
Write a (listing file) annotation for this instance to the given output, that consumes no bytes of output. This is for annotating a reference to this instance at the point of the reference.

Parameters:
out - non-null; where to output to
prefix - non-null; prefix for each line of output

writeTo0

protected void writeTo0(DexFile file,
                        AnnotatedOutput out)
Performs the actual write of the contents of this instance to the given data section. This is called by OffsettedItem.writeTo(com.android.dx.dex.file.DexFile, com.android.dx.util.AnnotatedOutput), which will have taken care of ensuring alignment.

Specified by:
writeTo0 in class OffsettedItem
Parameters:
file - non-null; the file to use for reference
out - non-null; where to write to


Copyright © 2015. All rights reserved.