Package org.jf.dexlib2.immutable
Class ImmutableClassDef
java.lang.Object
org.jf.dexlib2.base.reference.BaseReference
org.jf.dexlib2.base.reference.BaseTypeReference
org.jf.dexlib2.immutable.ImmutableClassDef
- All Implemented Interfaces:
CharSequence,Comparable<CharSequence>,Annotatable,ClassDef,Reference,TypeReference
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.jf.dexlib2.iface.reference.Reference
Reference.InvalidReferenceException -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final intprotected final com.google.common.collect.ImmutableSet<? extends ImmutableAnnotation> private static final ImmutableConverter<ImmutableClassDef, ClassDef> protected final com.google.common.collect.ImmutableSortedSet<? extends ImmutableMethod> protected final com.google.common.collect.ImmutableSortedSet<? extends ImmutableField> protected final com.google.common.collect.ImmutableList<String> protected final Stringprotected final com.google.common.collect.ImmutableSortedSet<? extends ImmutableField> protected final Stringprotected final Stringprotected final com.google.common.collect.ImmutableSortedSet<? extends ImmutableMethod> -
Constructor Summary
ConstructorsConstructorDescriptionImmutableClassDef(String type, int accessFlags, String superclass, com.google.common.collect.ImmutableList<String> interfaces, String sourceFile, com.google.common.collect.ImmutableSet<? extends ImmutableAnnotation> annotations, com.google.common.collect.ImmutableSortedSet<? extends ImmutableField> staticFields, com.google.common.collect.ImmutableSortedSet<? extends ImmutableField> instanceFields, com.google.common.collect.ImmutableSortedSet<? extends ImmutableMethod> directMethods, com.google.common.collect.ImmutableSortedSet<? extends ImmutableMethod> virtualMethods) ImmutableClassDef(String type, int accessFlags, String superclass, Collection<String> interfaces, String sourceFile, Collection<? extends Annotation> annotations, Iterable<? extends Field> staticFields, Iterable<? extends Field> instanceFields, Iterable<? extends Method> directMethods, Iterable<? extends Method> virtualMethods) ImmutableClassDef(String type, int accessFlags, String superclass, Collection<String> interfaces, String sourceFile, Collection<? extends Annotation> annotations, Iterable<? extends Field> fields, Iterable<? extends Method> methods) -
Method Summary
Modifier and TypeMethodDescriptionintGets the access flags for this class.com.google.common.collect.ImmutableSet<? extends ImmutableAnnotation> Gets a set of the annotations that are applied to this class.com.google.common.collect.ImmutableSet<? extends ImmutableMethod> Gets the direct methods that are defined by this class.Collection<? extends ImmutableField> Gets all the fields that are defined by this class.com.google.common.collect.ImmutableSet<? extends ImmutableField> Gets the instance fields that are defined by this class.com.google.common.collect.ImmutableList<String> Gets a list of the interfaces that this class implements.Collection<? extends ImmutableMethod> Gets all the methods that are defined by this class.Gets the name of the primary source file that this class is defined in, if available.com.google.common.collect.ImmutableSet<? extends ImmutableField> Gets the static fields that are defined by this class.Gets the superclass of this class.getType()Gets the class type.com.google.common.collect.ImmutableSet<? extends ImmutableMethod> Gets the virtual methods that are defined by this class.static com.google.common.collect.ImmutableSet<ImmutableClassDef> immutableSetOf(Iterable<? extends ClassDef> iterable) static ImmutableClassDefMethods inherited from class org.jf.dexlib2.base.reference.BaseTypeReference
charAt, compareTo, equals, hashCode, length, subSequence, toStringMethods inherited from class org.jf.dexlib2.base.reference.BaseReference
validateReferenceMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.CharSequence
charAt, chars, codePoints, isEmpty, length, subSequence, toStringMethods inherited from interface org.jf.dexlib2.iface.reference.Reference
validateReferenceMethods inherited from interface org.jf.dexlib2.iface.reference.TypeReference
compareTo, equals, hashCode
-
Field Details
-
type
-
accessFlags
protected final int accessFlags -
superclass
-
interfaces
-
sourceFile
-
annotations
@Nonnull protected final com.google.common.collect.ImmutableSet<? extends ImmutableAnnotation> annotations -
staticFields
@Nonnull protected final com.google.common.collect.ImmutableSortedSet<? extends ImmutableField> staticFields -
instanceFields
@Nonnull protected final com.google.common.collect.ImmutableSortedSet<? extends ImmutableField> instanceFields -
directMethods
@Nonnull protected final com.google.common.collect.ImmutableSortedSet<? extends ImmutableMethod> directMethods -
virtualMethods
@Nonnull protected final com.google.common.collect.ImmutableSortedSet<? extends ImmutableMethod> virtualMethods -
CONVERTER
-
-
Constructor Details
-
ImmutableClassDef
public ImmutableClassDef(@Nonnull String type, int accessFlags, @Nullable String superclass, @Nullable Collection<String> interfaces, @Nullable String sourceFile, @Nullable Collection<? extends Annotation> annotations, @Nullable Iterable<? extends Field> fields, @Nullable Iterable<? extends Method> methods) -
ImmutableClassDef
public ImmutableClassDef(@Nonnull String type, int accessFlags, @Nullable String superclass, @Nullable Collection<String> interfaces, @Nullable String sourceFile, @Nullable Collection<? extends Annotation> annotations, @Nullable Iterable<? extends Field> staticFields, @Nullable Iterable<? extends Field> instanceFields, @Nullable Iterable<? extends Method> directMethods, @Nullable Iterable<? extends Method> virtualMethods) -
ImmutableClassDef
public ImmutableClassDef(@Nonnull String type, int accessFlags, @Nullable String superclass, @Nullable com.google.common.collect.ImmutableList<String> interfaces, @Nullable String sourceFile, @Nullable com.google.common.collect.ImmutableSet<? extends ImmutableAnnotation> annotations, @Nullable com.google.common.collect.ImmutableSortedSet<? extends ImmutableField> staticFields, @Nullable com.google.common.collect.ImmutableSortedSet<? extends ImmutableField> instanceFields, @Nullable com.google.common.collect.ImmutableSortedSet<? extends ImmutableMethod> directMethods, @Nullable com.google.common.collect.ImmutableSortedSet<? extends ImmutableMethod> virtualMethods)
-
-
Method Details
-
of
-
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
-
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
-
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
-
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
-
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
-
getAnnotations
@Nonnull public com.google.common.collect.ImmutableSet<? extends ImmutableAnnotation> 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
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
-
getInstanceFields
@Nonnull public com.google.common.collect.ImmutableSet<? extends ImmutableField> 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
-
getDirectMethods
@Nonnull public com.google.common.collect.ImmutableSet<? extends ImmutableMethod> 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.
-
getVirtualMethods
@Nonnull public com.google.common.collect.ImmutableSet<? extends ImmutableMethod> 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.
-
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 -
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.
-
immutableSetOf
@Nonnull public static com.google.common.collect.ImmutableSet<ImmutableClassDef> immutableSetOf(@Nullable Iterable<? extends ClassDef> iterable)
-