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 int
accessFlags
int
annotationSetOffset
ClassDef
classDef
DexBackedDexFile
dexFile
int
fieldIndex
EncodedValue
initialValue
-
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 int
getAccessFlags()
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.String
getDefiningClass()
Gets the type of the class that defines this field.java.util.Set<HiddenApiRestriction>
getHiddenApiRestrictions()
Gets the hidden api restrictions for this field.EncodedValue
getInitialValue()
Gets the initial value for this field, if available.java.lang.String
getName()
Gets the name of this field.int
getSize()
Calculate and return the private size of a field definition.java.lang.String
getType()
Gets the type of this field.static void
skipFields(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:Field
Gets the name of this field.
-
getType
@Nonnull public java.lang.String getType()
Description copied from interface:Field
Gets the type of this field.- Specified by:
getType
in interfaceField
- Specified by:
getType
in interfaceFieldReference
- Returns:
- The type of this field
-
getDefiningClass
@Nonnull public java.lang.String getDefiningClass()
Description copied from interface:Field
Gets the type of the class that defines this field.- Specified by:
getDefiningClass
in interfaceField
- Specified by:
getDefiningClass
in interfaceFieldReference
- Specified by:
getDefiningClass
in interfaceMember
- Returns:
- The type of the class that defines this field
-
getAccessFlags
public int getAccessFlags()
Description copied from interface:Field
Gets 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:
getAccessFlags
in interfaceField
- Specified by:
getAccessFlags
in interfaceMember
- Returns:
- The access flags for this field
-
getInitialValue
@Nullable public EncodedValue getInitialValue()
Description copied from interface:Field
Gets 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:
getInitialValue
in 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:Field
Gets 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:
getAnnotations
in interfaceAnnotatable
- Specified by:
getAnnotations
in 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:Field
Gets 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:
getHiddenApiRestrictions
in interfaceField
- Specified by:
getHiddenApiRestrictions
in 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
-
-