Package org.jf.dexlib2.immutable
Class ImmutableMethod
- java.lang.Object
-
- org.jf.dexlib2.base.reference.BaseReference
-
- org.jf.dexlib2.base.reference.BaseMethodReference
-
- org.jf.dexlib2.immutable.ImmutableMethod
-
- All Implemented Interfaces:
java.lang.Comparable<MethodReference>
,Annotatable
,Member
,Method
,MethodReference
,Reference
public class ImmutableMethod extends BaseMethodReference implements Method
-
-
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 protected int
accessFlags
protected com.google.common.collect.ImmutableSet<? extends ImmutableAnnotation>
annotations
protected java.lang.String
definingClass
protected com.google.common.collect.ImmutableSet<HiddenApiRestriction>
hiddenApiRestrictions
protected ImmutableMethodImplementation
methodImplementation
protected java.lang.String
name
protected com.google.common.collect.ImmutableList<? extends ImmutableMethodParameter>
parameters
protected java.lang.String
returnType
-
Constructor Summary
Constructors Constructor Description ImmutableMethod(java.lang.String definingClass, java.lang.String name, com.google.common.collect.ImmutableList<? extends ImmutableMethodParameter> parameters, java.lang.String returnType, int accessFlags, com.google.common.collect.ImmutableSet<? extends ImmutableAnnotation> annotations, com.google.common.collect.ImmutableSet<HiddenApiRestriction> hiddenApiRestrictions, ImmutableMethodImplementation methodImplementation)
ImmutableMethod(java.lang.String definingClass, java.lang.String name, java.lang.Iterable<? extends MethodParameter> parameters, java.lang.String returnType, int accessFlags, java.util.Set<? extends Annotation> annotations, java.util.Set<HiddenApiRestriction> hiddenApiRestrictions, MethodImplementation methodImplementation)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getAccessFlags()
Gets the access flags for this method.com.google.common.collect.ImmutableSet<? extends ImmutableAnnotation>
getAnnotations()
Gets a set of the annotations that are applied to this method.java.lang.String
getDefiningClass()
Gets the type of the class that defines this method.java.util.Set<HiddenApiRestriction>
getHiddenApiRestrictions()
Gets the hidden api restrictions for this method.ImmutableMethodImplementation
getImplementation()
Gets a MethodImplementation object that defines the implementation of the method.java.lang.String
getName()
Gets the name of this method.com.google.common.collect.ImmutableList<? extends ImmutableMethodParameter>
getParameters()
Gets a list of the parameters of this method.com.google.common.collect.ImmutableList<? extends java.lang.CharSequence>
getParameterTypes()
Gets a list of the types of the parameters of this method.java.lang.String
getReturnType()
Gets the return type of this method.static com.google.common.collect.ImmutableSortedSet<ImmutableMethod>
immutableSetOf(java.lang.Iterable<? extends Method> list)
static ImmutableMethod
of(Method method)
-
Methods inherited from class org.jf.dexlib2.base.reference.BaseMethodReference
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.MethodReference
compareTo, equals, hashCode
-
Methods inherited from interface org.jf.dexlib2.iface.reference.Reference
validateReference
-
-
-
-
Field Detail
-
definingClass
@Nonnull protected final java.lang.String definingClass
-
name
@Nonnull protected final java.lang.String name
-
parameters
@Nonnull protected final com.google.common.collect.ImmutableList<? extends ImmutableMethodParameter> parameters
-
returnType
@Nonnull protected final java.lang.String returnType
-
accessFlags
protected final int accessFlags
-
annotations
@Nonnull protected final com.google.common.collect.ImmutableSet<? extends ImmutableAnnotation> annotations
-
hiddenApiRestrictions
@Nonnull protected final com.google.common.collect.ImmutableSet<HiddenApiRestriction> hiddenApiRestrictions
-
methodImplementation
@Nullable protected final ImmutableMethodImplementation methodImplementation
-
-
Constructor Detail
-
ImmutableMethod
public ImmutableMethod(@Nonnull java.lang.String definingClass, @Nonnull java.lang.String name, @Nullable java.lang.Iterable<? extends MethodParameter> parameters, @Nonnull java.lang.String returnType, int accessFlags, @Nullable java.util.Set<? extends Annotation> annotations, @Nullable java.util.Set<HiddenApiRestriction> hiddenApiRestrictions, @Nullable MethodImplementation methodImplementation)
-
ImmutableMethod
public ImmutableMethod(@Nonnull java.lang.String definingClass, @Nonnull java.lang.String name, @Nullable com.google.common.collect.ImmutableList<? extends ImmutableMethodParameter> parameters, @Nonnull java.lang.String returnType, int accessFlags, @Nullable com.google.common.collect.ImmutableSet<? extends ImmutableAnnotation> annotations, @Nullable com.google.common.collect.ImmutableSet<HiddenApiRestriction> hiddenApiRestrictions, @Nullable ImmutableMethodImplementation methodImplementation)
-
-
Method Detail
-
of
public static ImmutableMethod of(Method method)
-
getDefiningClass
@Nonnull public java.lang.String getDefiningClass()
Description copied from interface:Method
Gets the type of the class that defines this method.- Specified by:
getDefiningClass
in interfaceMember
- Specified by:
getDefiningClass
in interfaceMethod
- Specified by:
getDefiningClass
in interfaceMethodReference
- Returns:
- The type of the class that defines this method
-
getName
@Nonnull public java.lang.String getName()
Description copied from interface:Method
Gets the name of this method.
-
getParameterTypes
@Nonnull public com.google.common.collect.ImmutableList<? extends java.lang.CharSequence> getParameterTypes()
Description copied from interface:MethodReference
Gets a list of the types of the parameters of this method.- Specified by:
getParameterTypes
in interfaceMethodReference
- Returns:
- A list of the parameter types of this method, as strings.
-
getParameters
@Nonnull public com.google.common.collect.ImmutableList<? extends ImmutableMethodParameter> getParameters()
Description copied from interface:Method
Gets a list of the parameters of this method. As per the MethodReference interface, the MethodParameter objects contained in the returned list also act as a simple reference to the type of the parameter. However, the MethodParameter object can also contain additional information about the parameter. Note: In some implementations, the returned list is likely to *not* provide efficient random access.- Specified by:
getParameters
in interfaceMethod
- Returns:
- A list of MethodParameter objects, representing the parameters of this method.
-
getReturnType
@Nonnull public java.lang.String getReturnType()
Description copied from interface:Method
Gets the return type of this method.- Specified by:
getReturnType
in interfaceMethod
- Specified by:
getReturnType
in interfaceMethodReference
- Returns:
- The return type of this method.
-
getAccessFlags
public int getAccessFlags()
Description copied from interface:Method
Gets the access flags for this method. This will be a combination of the AccessFlags.* flags that are marked as compatible for use with a method.- Specified by:
getAccessFlags
in interfaceMember
- Specified by:
getAccessFlags
in interfaceMethod
- Returns:
- The access flags for this method
-
getAnnotations
@Nonnull public com.google.common.collect.ImmutableSet<? extends ImmutableAnnotation> getAnnotations()
Description copied from interface:Method
Gets a set of the annotations that are applied to this method. The annotations in the returned set are guaranteed to have unique types.- Specified by:
getAnnotations
in interfaceAnnotatable
- Specified by:
getAnnotations
in interfaceMethod
- Returns:
- A set of the annotations that are applied to this method
-
getHiddenApiRestrictions
@Nonnull public java.util.Set<HiddenApiRestriction> getHiddenApiRestrictions()
Description copied from interface:Method
Gets the hidden api restrictions for this method. This will contain at most 1 normal flag (with isDomainSpecificApiFlag() = false), and 1 domain-specific api flag (with isDomainSpecificApiFlag() = true)- Specified by:
getHiddenApiRestrictions
in interfaceMember
- Specified by:
getHiddenApiRestrictions
in interfaceMethod
- Returns:
- A set of the hidden api restrictions for this method.
-
getImplementation
@Nullable public ImmutableMethodImplementation getImplementation()
Description copied from interface:Method
Gets a MethodImplementation object that defines the implementation of the method. If this is an abstract method in an abstract class, or an interface method in an interface definition, then the method has no implementation, and this will return null.- Specified by:
getImplementation
in interfaceMethod
- Returns:
- A MethodImplementation object defining the implementation of this method, or null if the method has no implementation
-
immutableSetOf
@Nonnull public static com.google.common.collect.ImmutableSortedSet<ImmutableMethod> immutableSetOf(@Nullable java.lang.Iterable<? extends Method> list)
-
-