From: Brett Chabot Date: Thu, 23 Sep 2010 23:51:18 +0000 (-0700) Subject: Merge "Add user-friendly constructors to StdField" X-Git-Tag: android-x86-4.0-r1~301 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=4cd5f4e3732f5fc5f4f13aeefc1a479f2bf77618;hp=7232f7150c2757c6784171cd0c96f90d0e438bca;p=android-x86%2Fdalvik.git Merge "Add user-friendly constructors to StdField" --- 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