summaryrefslogtreecommitdiffstats
path: root/dexgen
diff options
context:
space:
mode:
authorBrett Chabot <brettchabot@google.com>2010-09-23 16:51:18 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-09-23 16:51:18 -0700
commit4cd5f4e3732f5fc5f4f13aeefc1a479f2bf77618 (patch)
tree280b6e717f8c5f1b7f7beeabb5737bf747b215dc /dexgen
parent7232f7150c2757c6784171cd0c96f90d0e438bca (diff)
parent7351211af4fdfc436eae69a3641c0880f8c8b608 (diff)
downloadandroid_dalvik-4cd5f4e3732f5fc5f4f13aeefc1a479f2bf77618.tar.gz
android_dalvik-4cd5f4e3732f5fc5f4f13aeefc1a479f2bf77618.tar.bz2
android_dalvik-4cd5f4e3732f5fc5f4f13aeefc1a479f2bf77618.zip
Merge "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