com.android.dx.dex.file
Class UniformListItem<T extends OffsettedItem>

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.UniformListItem<T>
Type Parameters:
T - type of element contained in an instance
All Implemented Interfaces:
Comparable<OffsettedItem>

public final class UniformListItem<T extends OffsettedItem>
extends OffsettedItem

Class that represents a contiguous list of uniform items. Each item in the list, in particular, must have the same write size and alignment.

This class inherits its alignment from its items, bumped up to 4 if the items have a looser alignment requirement. If it is more than 4, then there will be a gap after the output list size (which is four bytes) and before the first item.


Constructor Summary
UniformListItem(ItemType itemType, List<T> items)
          Constructs an instance.
 
Method Summary
 void addContents(DexFile file)
          Populates a DexFile with items from within this instance.
 List<T> getItems()
          Gets the underlying list of items.
 ItemType itemType()
          Returns the item type for this instance.
protected  void place0(Section addedTo, int offset)
          Does additional work required when placing an instance.
 String toHuman()
          Gets a short human-readable string representing this instance.
 String toString()
          
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, compareTo0, 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, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UniformListItem

public UniformListItem(ItemType itemType,
                       List<T> items)
Constructs an instance. It is illegal to modify the given list once it is used to construct an instance of this class.

Parameters:
itemType - non-null; the type of the item
items - non-null and non-empty; list of items to represent
Method Detail

itemType

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

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

toString

public String toString()

Overrides:
toString in class Object

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

toHuman

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

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

getItems

public final List<T> getItems()
Gets the underlying list of items.

Returns:
non-null; the list

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

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 © 2013. All Rights Reserved.