summaryrefslogtreecommitdiffstats
path: root/dexgen
diff options
context:
space:
mode:
authorBrett Chabot <brettchabot@google.com>2010-09-23 16:56:56 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-09-23 16:56:56 -0700
commit88d74f786b88301f4435c2d9dec5ffbc3d5a1d9b (patch)
treee833cbe4c9a914027476d6843494982d388c8468 /dexgen
parentf6fd27112ca997dde07a1ad10d1f6edb8d9d3d3e (diff)
parent4cd5f4e3732f5fc5f4f13aeefc1a479f2bf77618 (diff)
downloadandroid_dalvik-88d74f786b88301f4435c2d9dec5ffbc3d5a1d9b.tar.gz
android_dalvik-88d74f786b88301f4435c2d9dec5ffbc3d5a1d9b.tar.bz2
android_dalvik-88d74f786b88301f4435c2d9dec5ffbc3d5a1d9b.zip
am 4cd5f4e3: Merge "Add user-friendly constructors to StdField"
Merge commit '4cd5f4e3732f5fc5f4f13aeefc1a479f2bf77618' into dalvik-dev * commit '4cd5f4e3732f5fc5f4f13aeefc1a479f2bf77618': Add user-friendly constructors to StdField
Diffstat (limited to 'dexgen')
-rw-r--r--dexgen/src/com/android/dexgen/rop/StdField.java31
1 files changed, 30 insertions, 1 deletions
diff --git a/dexgen/src/com/android/dexgen/rop/StdField.java b/dexgen/src/com/android/dexgen/rop/StdField.java
index 3084dcca4..9adcc30ad 100644
--- a/dexgen/src/com/android/dexgen/rop/StdField.java
+++ b/dexgen/src/com/android/dexgen/rop/StdField.java
@@ -18,6 +18,7 @@ package com.android.dexgen.rop;
import com.android.dexgen.rop.cst.CstNat;
import com.android.dexgen.rop.cst.CstType;
+import com.android.dexgen.rop.cst.CstUtf8;
import com.android.dexgen.rop.cst.TypedConstant;
/**
@@ -38,6 +39,34 @@ public final class StdField extends StdMember implements Field {
super(definingClass, accessFlags, nat, attributes);
}
+ /**
+ * Constructs an instance having Java field as its pattern.
+ *
+ * @param field {@code non-null;} pattern for dex field
+ */
+ public StdField(java.lang.reflect.Field field) {
+ this(CstType.intern(field.getDeclaringClass()),
+ field.getModifiers(),
+ new CstNat(new CstUtf8(field.getName()),
+ CstType.intern(field.getType()).getDescriptor()),
+ new StdAttributeList(0));
+ }
+
+ /**
+ * Constructs an instance taking field description as user-friendly arguments.
+ *
+ * @param declaringClass {@code non-null;} the class field belongs to
+ * @param type {@code non-null;} type of the field
+ * @param name {@code non-null;} name of the field
+ * @param modifiers access flags of the field
+ */
+ public StdField(Class definingClass, Class type, String name, int modifiers) {
+ this(CstType.intern(definingClass),
+ modifiers,
+ new CstNat(new CstUtf8(name), CstType.intern(type).getDescriptor()),
+ new StdAttributeList(0));
+ }
+
/** {@inheritDoc} */
public TypedConstant getConstantValue() {
AttributeList attribs = getAttributes();
@@ -50,4 +79,4 @@ public final class StdField extends StdMember implements Field {
return cval.getConstantValue();
}
-}
+} \ No newline at end of file