Package org.jf.dexlib2.dexbacked
Class DexBackedClassDef
- java.lang.Object
-
- org.jf.dexlib2.base.reference.BaseReference
-
- org.jf.dexlib2.base.reference.BaseTypeReference
-
- org.jf.dexlib2.dexbacked.DexBackedClassDef
-
- All Implemented Interfaces:
java.lang.CharSequence,java.lang.Comparable<java.lang.CharSequence>,Annotatable,ClassDef,Reference,TypeReference
public class DexBackedClassDef extends BaseTypeReference implements ClassDef
-
-
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 DexBackedDexFiledexFile
-
Constructor Summary
Constructors Constructor Description DexBackedClassDef(DexBackedDexFile dexFile, int classDefOffset, int hiddenApiRestrictionsOffset)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetAccessFlags()Gets the access flags for this class.java.util.Set<? extends DexBackedAnnotation>getAnnotations()Gets a set of the annotations that are applied to this class.java.lang.Iterable<? extends DexBackedMethod>getDirectMethods()Gets the direct methods that are defined by this class.java.lang.Iterable<? extends DexBackedMethod>getDirectMethods(boolean skipDuplicates)java.lang.Iterable<? extends DexBackedField>getFields()Gets all the fields that are defined by this class.java.lang.Iterable<? extends DexBackedField>getInstanceFields()Gets the instance fields that are defined by this class.java.lang.Iterable<? extends DexBackedField>getInstanceFields(boolean skipDuplicates)java.util.List<java.lang.String>getInterfaces()Gets a list of the interfaces that this class implements.java.lang.Iterable<? extends DexBackedMethod>getMethods()Gets all the methods that are defined by this class.intgetSize()Calculate and return the private size of a class definition.java.lang.StringgetSourceFile()Gets the name of the primary source file that this class is defined in, if available.java.lang.Iterable<? extends DexBackedField>getStaticFields()Gets the static fields that are defined by this class.java.lang.Iterable<? extends DexBackedField>getStaticFields(boolean skipDuplicates)java.lang.StringgetSuperclass()Gets the superclass of this class.java.lang.StringgetType()Gets the class type.java.lang.Iterable<? extends DexBackedMethod>getVirtualMethods()Gets the virtual methods that are defined by this class.java.lang.Iterable<? extends DexBackedMethod>getVirtualMethods(boolean skipDuplicates)-
Methods inherited from class org.jf.dexlib2.base.reference.BaseTypeReference
charAt, compareTo, equals, hashCode, length, subSequence, 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 java.lang.CharSequence
charAt, chars, codePoints, length, subSequence, toString
-
Methods inherited from interface org.jf.dexlib2.iface.reference.Reference
validateReference
-
Methods inherited from interface org.jf.dexlib2.iface.reference.TypeReference
compareTo, equals, hashCode
-
-
-
-
Field Detail
-
dexFile
@Nonnull public final DexBackedDexFile dexFile
-
-
Constructor Detail
-
DexBackedClassDef
public DexBackedClassDef(@Nonnull DexBackedDexFile dexFile, int classDefOffset, int hiddenApiRestrictionsOffset)
-
-
Method Detail
-
getType
@Nonnull public java.lang.String getType()
Description copied from interface:ClassDefGets the class type. This will be a type descriptor per the dex file specification.- Specified by:
getTypein interfaceClassDef- Specified by:
getTypein interfaceTypeReference- Returns:
- The class type
-
getSuperclass
@Nullable public java.lang.String getSuperclass()
Description copied from interface:ClassDefGets the superclass of this class. This will only be null if this is the base java.lang.Object class.- Specified by:
getSuperclassin interfaceClassDef- Returns:
- The superclass of this class
-
getAccessFlags
public int getAccessFlags()
Description copied from interface:ClassDefGets the access flags for this class. This will be a combination of the AccessFlags.* flags that are marked as compatible for use with a class.- Specified by:
getAccessFlagsin interfaceClassDef- Returns:
- The access flags for this class
-
getSourceFile
@Nullable public java.lang.String getSourceFile()
Description copied from interface:ClassDefGets the name of the primary source file that this class is defined in, if available. This will be the default source file associated with all methods defined in this class. This can be overridden for sections of an individual method with the SetSourceFile debug item.- Specified by:
getSourceFilein interfaceClassDef- Returns:
- The name of the primary source file for this class, or null if not available
-
getInterfaces
@Nonnull public java.util.List<java.lang.String> getInterfaces()
Description copied from interface:ClassDefGets a list of the interfaces that this class implements.- Specified by:
getInterfacesin interfaceClassDef- Returns:
- A list of the interfaces that this class implements
-
getAnnotations
@Nonnull public java.util.Set<? extends DexBackedAnnotation> getAnnotations()
Description copied from interface:ClassDefGets a set of the annotations that are applied to this class. The annotations in the returned set are guaranteed to have unique types.- Specified by:
getAnnotationsin interfaceAnnotatable- Specified by:
getAnnotationsin interfaceClassDef- Returns:
- A set of the annotations that are applied to this class
-
getStaticFields
@Nonnull public java.lang.Iterable<? extends DexBackedField> getStaticFields()
Description copied from interface:ClassDefGets the static fields that are defined by this class. The static fields that are returned must have no duplicates.- Specified by:
getStaticFieldsin interfaceClassDef- Returns:
- The static fields that are defined by this class
-
getStaticFields
@Nonnull public java.lang.Iterable<? extends DexBackedField> getStaticFields(boolean skipDuplicates)
-
getInstanceFields
@Nonnull public java.lang.Iterable<? extends DexBackedField> getInstanceFields()
Description copied from interface:ClassDefGets the instance fields that are defined by this class. The instance fields that are returned must have no duplicates.- Specified by:
getInstanceFieldsin interfaceClassDef- Returns:
- The instance fields that are defined by this class
-
getInstanceFields
@Nonnull public java.lang.Iterable<? extends DexBackedField> getInstanceFields(boolean skipDuplicates)
-
getFields
@Nonnull public java.lang.Iterable<? extends DexBackedField> getFields()
Description copied from interface:ClassDefGets all the fields that are defined by this class. This is a convenience method that combines getStaticFields() and getInstanceFields() The returned fields may be in any order. I.e. It's not safe to assume that all instance fields will come after all static fields. Note that there typically should not be any duplicate fields between the two, but some versions of dalvik inadvertently allow duplicate static/instance fields, and are supported here for completeness
-
getDirectMethods
@Nonnull public java.lang.Iterable<? extends DexBackedMethod> getDirectMethods()
Description copied from interface:ClassDefGets the direct methods that are defined by this class. The direct methods that are returned must have no duplicates.- Specified by:
getDirectMethodsin interfaceClassDef- Returns:
- The direct methods that are defined by this class.
-
getDirectMethods
@Nonnull public java.lang.Iterable<? extends DexBackedMethod> getDirectMethods(boolean skipDuplicates)
-
getVirtualMethods
@Nonnull public java.lang.Iterable<? extends DexBackedMethod> getVirtualMethods(boolean skipDuplicates)
-
getVirtualMethods
@Nonnull public java.lang.Iterable<? extends DexBackedMethod> getVirtualMethods()
Description copied from interface:ClassDefGets the virtual methods that are defined by this class. The virtual methods that are returned must have no duplicates.- Specified by:
getVirtualMethodsin interfaceClassDef- Returns:
- The virtual methods that are defined by this class.
-
getMethods
@Nonnull public java.lang.Iterable<? extends DexBackedMethod> getMethods()
Description copied from interface:ClassDefGets all the methods that are defined by this class. This is a convenience method that combines getDirectMethods() and getVirtualMethods(). The returned methods may be in any order. I.e. It's not safe to assume that all virtual methods will come after all direct methods. Note that there typically should not be any duplicate methods between the two, but some versions of dalvik inadvertently allow duplicate direct/virtual methods, and are supported here for completeness- Specified by:
getMethodsin interfaceClassDef- Returns:
- An iterable of the methods that are defined by this class.
-
getSize
public int getSize()
Calculate and return the private size of a class definition. Calculated as: class_def_item size + type_id size + interfaces type_list + annotations_directory_item overhead + class_data_item + static values overhead + methods size + fields size- Returns:
- size in bytes
-
-