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;
/**
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();
return cval.getConstantValue();
}
-}
+}
\ No newline at end of file