diff --git a/baksmali/src/main/java/org/jf/baksmali/Adaptors/AnnotationAdaptor.java b/baksmali/src/main/java/org/jf/baksmali/Adaptors/AnnotationAdaptor.java index 96e29270..5babe38c 100644 --- a/baksmali/src/main/java/org/jf/baksmali/Adaptors/AnnotationAdaptor.java +++ b/baksmali/src/main/java/org/jf/baksmali/Adaptors/AnnotationAdaptor.java @@ -44,15 +44,7 @@ public class AnnotationAdaptor { } public String getVisibility() { - switch (annotationItem.getVisibility()) { - case 0: - return "build"; - case 1: - return "runtime"; - case 2: - return "system"; - } - return null; + return annotationItem.getVisibility().name(); } public TypeReference getAnnotationType() { diff --git a/dexlib/src/main/java/org/jf/dexlib/AnnotationDirectoryItem.java b/dexlib/src/main/java/org/jf/dexlib/AnnotationDirectoryItem.java index 21c5f7b1..7647f564 100644 --- a/dexlib/src/main/java/org/jf/dexlib/AnnotationDirectoryItem.java +++ b/dexlib/src/main/java/org/jf/dexlib/AnnotationDirectoryItem.java @@ -45,7 +45,7 @@ public class AnnotationDirectoryItem extends OffsettedItem methodAnnotationListField; private final FieldListField parameterAnnotationListField; - public AnnotationDirectoryItem(final DexFile dexFile, int offset) { + protected AnnotationDirectoryItem(final DexFile dexFile, int offset) { super(offset); fields = new Field[] { @@ -76,7 +76,7 @@ public class AnnotationDirectoryItem extends OffsettedItem fieldAnnotations, @@ -135,7 +135,6 @@ public class AnnotationDirectoryItem extends OffsettedItem implements Comparable { private final IndexedItemReference fieldReferenceField; diff --git a/dexlib/src/main/java/org/jf/dexlib/AnnotationItem.java b/dexlib/src/main/java/org/jf/dexlib/AnnotationItem.java index 3280aac8..57451568 100644 --- a/dexlib/src/main/java/org/jf/dexlib/AnnotationItem.java +++ b/dexlib/src/main/java/org/jf/dexlib/AnnotationItem.java @@ -61,11 +61,35 @@ public class AnnotationItem extends OffsettedItem { return "annotation_item @0x" + Integer.toHexString(getOffset()); } - public byte getVisibility() { - return (byte)visibilityField.getCachedValue(); + public Visibility getVisibility() { + return Visibility.get((byte)visibilityField.getCachedValue()); } public AnnotationEncodedValueSubField getEncodedAnnotation() { return annotationField; } + + public enum Visibility { + build(0x00), + runtime(0x01), + system(0x02); + + public final byte value; + + private Visibility(int value) { + this.value = (byte)value; + } + + public static Visibility get(byte value) { + switch (value) { + case 0x00: + return build; + case 0x01: + return runtime; + case 0x02: + return system; + } + return null; + } + } } diff --git a/smali/src/main/antlr3/org/jf/smali/smaliParser.g b/smali/src/main/antlr3/org/jf/smali/smaliParser.g index 47698504..6417f401 100644 --- a/smali/src/main/antlr3/org/jf/smali/smaliParser.g +++ b/smali/src/main/antlr3/org/jf/smali/smaliParser.g @@ -126,7 +126,7 @@ tokens { @header { package org.jf.smali; -import org.jf.dexlib.code.Format.*; +import org.jf.dexlib.Code.Format.*; } diff --git a/smali/src/main/antlr3/org/jf/smali/smaliTreeWalker.g b/smali/src/main/antlr3/org/jf/smali/smaliTreeWalker.g index fc1cb80c..f0d8aa3d 100644 --- a/smali/src/main/antlr3/org/jf/smali/smaliTreeWalker.g +++ b/smali/src/main/antlr3/org/jf/smali/smaliTreeWalker.g @@ -40,9 +40,9 @@ import java.util.HashMap; import org.jf.dexlib.*; import org.jf.dexlib.EncodedValue.*; -import org.jf.dexlib.util.*; -import org.jf.dexlib.code.*; -import org.jf.dexlib.code.Format.*; +import org.jf.dexlib.Util.*; +import org.jf.dexlib.Code.*; +import org.jf.dexlib.Code.Format.*; } @members {