Package org.jf.dexlib2.dexbacked
Class DexBackedField
- java.lang.Object
-
- org.jf.dexlib2.base.reference.BaseReference
-
- org.jf.dexlib2.base.reference.BaseFieldReference
-
- org.jf.dexlib2.dexbacked.DexBackedField
-
- All Implemented Interfaces:
java.lang.Comparable<FieldReference>,Annotatable,Field,Member,FieldReference,Reference
public class DexBackedField extends BaseFieldReference implements Field
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.jf.dexlib2.iface.reference.Reference
Reference.InvalidReferenceException
-
-
Field Summary
Fields Modifier and Type Field Description intaccessFlagsintannotationSetOffsetClassDefclassDefDexBackedDexFiledexFileintfieldIndexEncodedValueinitialValue
-
Constructor Summary
Constructors Constructor Description DexBackedField(DexBackedDexFile dexFile, DexReader reader, DexBackedClassDef classDef, int previousFieldIndex, AnnotationsDirectory.AnnotationIterator annotationIterator, int hiddenApiRestrictions)DexBackedField(DexBackedDexFile dexFile, DexReader reader, DexBackedClassDef classDef, int previousFieldIndex, EncodedArrayItemIterator staticInitialValueIterator, AnnotationsDirectory.AnnotationIterator annotationIterator, int hiddenApiRestrictions)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetAccessFlags()Gets the access flags for this field.java.util.Set<? extends DexBackedAnnotation>getAnnotations()Gets a set of the annotations that are applied to this field.java.lang.StringgetDefiningClass()Gets the type of the class that defines this field.java.util.Set<HiddenApiRestriction>getHiddenApiRestrictions()Gets the hidden api restrictions for this field.EncodedValuegetInitialValue()Gets the initial value for this field, if available.java.lang.StringgetName()Gets the name of this field.intgetSize()Calculate and return the private size of a field definition.java.lang.StringgetType()Gets the type of this field.static voidskipFields(DexReader reader, int count)Skips the reader over the specified number of encoded_field structures-
Methods inherited from class org.jf.dexlib2.base.reference.BaseFieldReference
compareTo, equals, hashCode, toString
-
Methods inherited from class org.jf.dexlib2.base.reference.BaseReference
validateReference
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.jf.dexlib2.iface.reference.FieldReference
compareTo, equals, hashCode
-
Methods inherited from interface org.jf.dexlib2.iface.reference.Reference
validateReference
-
-
-
-
Field Detail
-
dexFile
@Nonnull public final DexBackedDexFile dexFile
-
classDef
@Nonnull public final ClassDef classDef
-
accessFlags
public final int accessFlags
-
initialValue
@Nullable public final EncodedValue initialValue
-
annotationSetOffset
public final int annotationSetOffset
-
fieldIndex
public final int fieldIndex
-
-
Constructor Detail
-
DexBackedField
public DexBackedField(@Nonnull DexBackedDexFile dexFile, @Nonnull DexReader reader, @Nonnull DexBackedClassDef classDef, int previousFieldIndex, @Nonnull EncodedArrayItemIterator staticInitialValueIterator, @Nonnull AnnotationsDirectory.AnnotationIterator annotationIterator, int hiddenApiRestrictions)
-
DexBackedField
public DexBackedField(@Nonnull DexBackedDexFile dexFile, @Nonnull DexReader reader, @Nonnull DexBackedClassDef classDef, int previousFieldIndex, @Nonnull AnnotationsDirectory.AnnotationIterator annotationIterator, int hiddenApiRestrictions)
-
-
Method Detail
-
getName
@Nonnull public java.lang.String getName()
Description copied from interface:FieldGets the name of this field.
-
getType
@Nonnull public java.lang.String getType()
Description copied from interface:FieldGets the type of this field.- Specified by:
getTypein interfaceField- Specified by:
getTypein interfaceFieldReference- Returns:
- The type of this field
-
getDefiningClass
@Nonnull public java.lang.String getDefiningClass()
Description copied from interface:FieldGets the type of the class that defines this field.- Specified by:
getDefiningClassin interfaceField- Specified by:
getDefiningClassin interfaceFieldReference- Specified by:
getDefiningClassin interfaceMember- Returns:
- The type of the class that defines this field
-
getAccessFlags
public int getAccessFlags()
Description copied from interface:FieldGets the access flags for this field. This will be a combination of the AccessFlags.* flags that are marked as compatible for use with a field.- Specified by:
getAccessFlagsin interfaceField- Specified by:
getAccessFlagsin interfaceMember- Returns:
- The access flags for this field
-
getInitialValue
@Nullable public EncodedValue getInitialValue()
Description copied from interface:FieldGets the initial value for this field, if available. Only static field may have an initial value set, but are not required to have an initial value.- Specified by:
getInitialValuein interfaceField- Returns:
- The initial value for this field, or null if this field is not a static field, or if this static field does not have an initial value.
-
getAnnotations
@Nonnull public java.util.Set<? extends DexBackedAnnotation> getAnnotations()
Description copied from interface:FieldGets a set of the annotations that are applied to this field. The annotations in the returned set are guaranteed to have unique types.- Specified by:
getAnnotationsin interfaceAnnotatable- Specified by:
getAnnotationsin interfaceField- Returns:
- A set of the annotations that are applied to this field
-
getHiddenApiRestrictions
@Nonnull public java.util.Set<HiddenApiRestriction> getHiddenApiRestrictions()
Description copied from interface:FieldGets the hidden api restrictions for this field. This will contain at most 1 normal flag (with isDomainSpecificApiFlag() = false), and 1 domain-specific api flag (with isDomainSpecificApiFlag() = true)- Specified by:
getHiddenApiRestrictionsin interfaceField- Specified by:
getHiddenApiRestrictionsin interfaceMember- Returns:
- A set of the hidden api restrictions for this field.
-
skipFields
public static void skipFields(@Nonnull DexReader reader, int count)Skips the reader over the specified number of encoded_field structures- Parameters:
reader- The reader to skipcount- The number of encoded_field structures to skip over
-
getSize
public int getSize()
Calculate and return the private size of a field definition. Calculated as: field_idx_diff + access_flags + annotations overhead + initial value size + field reference size- Returns:
- size in bytes
-
-