Helper method to get map_item name. Useful when dumping stats.

This commit is contained in:
Izzat Bahadirov 2012-12-28 10:57:12 -08:00 committed by Ben Gruver
parent 7dff6ada5e
commit 0e3a7a36d1
2 changed files with 30 additions and 0 deletions

View File

@ -31,6 +31,8 @@
package org.jf.dexlib2.dexbacked;
import org.jf.dexlib2.writer.DexItemType;
import javax.annotation.Nonnull;
public class DexBackedMapItem {
@ -51,6 +53,10 @@ public class DexBackedMapItem {
return dexBuf.readUshort(mapItemOffset + TYPE_OFFSET);
}
public String getName() {
return DexItemType.getItemTypeName(getType());
}
public int getNumItems() {
return dexBuf.readSmallUint(mapItemOffset + SIZE_OFFSET);
}

View File

@ -50,4 +50,28 @@ public class DexItemType {
public static final int ANNOTATION_ITEM = 0x2004;
public static final int ENCODED_ARRAY_ITEM = 0x2005;
public static final int ANNOTATION_DIRECTORY_ITEM = 0x2006;
public static String getItemTypeName(int itemType) {
switch (itemType) {
case HEADER_ITEM: return "HEADER_ITEM";
case STRING_ID_ITEM: return "STRING_ID_ITEM";
case TYPE_ID_ITEM: return "TYPE_ID_ITEM";
case PROTO_ID_ITEM: return "PROTO_ID_ITEM";
case FIELD_ID_ITEM: return "FIELD_ID_ITEM";
case METHOD_ID_ITEM: return "METHOD_ID_ITEM";
case CLASS_DEF_ITEM: return "CLASS_DEF_ITEM";
case MAP_LIST: return "MAP_LIST";
case TYPE_LIST: return "TYPE_LIST";
case ANNOTATION_SET_REF_LIST: return "ANNOTATION_SET_REF_LIST";
case ANNOTATION_SET_ITEM: return "ANNOTATION_SET_ITEM";
case CLASS_DATA_ITEM: return "CLASS_DATA_ITEM";
case CODE_ITEM: return "CODE_ITEM";
case STRING_DATA_ITEM: return "STRING_DATA_ITEM";
case DEBUG_INFO_ITEM: return "DEBUG_INFO_ITEM";
case ANNOTATION_ITEM: return "ANNOTATION_ITEM";
case ENCODED_ARRAY_ITEM: return "ENCODED_ARRAY_ITEM";
case ANNOTATION_DIRECTORY_ITEM: return "ANNOTATION_DIRECTORY_ITEM";
default: return "Unknown dex item type";
}
}
}