public class AccessorInfo extends SpecialMethodInfo
| Modifier and Type | Class and Description |
|---|---|
static class |
AccessorInfo.AccessorName
Accessor Name struct
|
static class |
AccessorInfo.AccessorType
Accessor types
|
| Modifier and Type | Field and Description |
|---|---|
protected java.lang.Class<? extends java.lang.annotation.Annotation> |
annotationClass
Annotation class
|
protected org.objectweb.asm.Type[] |
argTypes
Accessor method argument types (raw, from method)
|
protected boolean |
isStatic
Accessor method staticness
|
protected org.objectweb.asm.Type |
returnType
Accessor method return type (raw, from method)
|
protected java.lang.String |
specifiedName
Name specified in the attached annotation, can be null
|
protected ITargetSelector |
target
Computed information about the target field or method, name and
descriptor
|
protected org.objectweb.asm.tree.FieldNode |
targetField
For accessors, stores the discovered target field
|
protected org.objectweb.asm.tree.MethodNode |
targetMethod
For invokers, stores the discovered target method
|
protected AccessorInfo.AccessorType |
type
Type of accessor to generate, computed based on the signature of the
target method.
|
annotation, annotationType, classNode, method, methodName, mixin| Modifier | Constructor and Description |
|---|---|
|
AccessorInfo(MixinTargetContext mixin,
org.objectweb.asm.tree.MethodNode method) |
protected |
AccessorInfo(MixinTargetContext mixin,
org.objectweb.asm.tree.MethodNode method,
java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass) |
| Modifier and Type | Method and Description |
|---|---|
protected <TNode> TNode |
findTarget(java.util.List<ElementNode<TNode>> nodes)
Generified candidate search, since the search logic is the same for both
fields and methods.
|
org.objectweb.asm.tree.MethodNode |
generate()
Second pass, generate the actual accessor method for this accessor.
|
org.objectweb.asm.Type[] |
getArgTypes()
Get the argument types of the annotated method
|
org.objectweb.asm.Type |
getReturnType()
Get the return type of the annotated method
|
ITargetSelector |
getTarget()
Get the inflected/specified target member for this accessor
|
org.objectweb.asm.tree.FieldNode |
getTargetField()
For field accessors, returns the target field, returns null for invokers
|
org.objectweb.asm.Type |
getTargetFieldType()
For field accessors, returns the field type, returns null for invokers
|
org.objectweb.asm.tree.MethodNode |
getTargetMethod()
For invokers, returns the target method, returns null for field accessors
|
protected java.lang.String |
getTargetName(java.lang.String name) |
protected java.lang.String |
inflectTarget()
Uses the name of this accessor method and the calculated accessor type to
try and inflect the name of the target field or method.
|
static java.lang.String |
inflectTarget(AccessorInfo.AccessorName name,
AccessorInfo.AccessorType type,
java.lang.String description,
IMixinContext context,
boolean verbose)
Uses the name of an accessor method and the accessor type to try and
inflect the name of the target field or method.
|
static java.lang.String |
inflectTarget(java.lang.String name,
AccessorInfo.AccessorType type,
java.lang.String description,
IMixinContext context,
boolean verbose)
Uses the name of an accessor method and the accessor type to try and
inflect the name of the target field or method.
|
protected ITargetSelector |
initTarget() |
protected org.objectweb.asm.Type |
initTargetFieldType() |
protected AccessorInfo.AccessorType |
initType() |
boolean |
isStatic()
Get whether the accessor itself is static
|
void |
locate()
First pass, locate the target field in the class.
|
static AccessorInfo |
of(MixinTargetContext mixin,
org.objectweb.asm.tree.MethodNode method,
java.lang.Class<? extends java.lang.annotation.Annotation> type)
Return a wrapper AccessorInfo of the correct type based on the method
passed in.
|
java.lang.String |
toString() |
getAnnotation, getClassNode, getContext, getMethod, getMethodNameprotected final java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass
protected final org.objectweb.asm.Type[] argTypes
protected final org.objectweb.asm.Type returnType
protected final boolean isStatic
protected final java.lang.String specifiedName
protected final AccessorInfo.AccessorType type
protected final ITargetSelector target
protected org.objectweb.asm.tree.FieldNode targetField
protected org.objectweb.asm.tree.MethodNode targetMethod
public AccessorInfo(MixinTargetContext mixin, org.objectweb.asm.tree.MethodNode method)
protected AccessorInfo(MixinTargetContext mixin, org.objectweb.asm.tree.MethodNode method, java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass)
protected AccessorInfo.AccessorType initType()
protected org.objectweb.asm.Type initTargetFieldType()
protected ITargetSelector initTarget()
protected java.lang.String getTargetName(java.lang.String name)
protected java.lang.String inflectTarget()
public static java.lang.String inflectTarget(java.lang.String name,
AccessorInfo.AccessorType type,
java.lang.String description,
IMixinContext context,
boolean verbose)
name - Name of the accessor methodtype - Type of accessor being processed, this is calculated
from the method signature (void methods being setters,
methods with return types being getters)description - description of the accessor to include in
error messagescontext - Mixin contextverbose - Emit warnings when accessor prefix doesn't match typepublic static java.lang.String inflectTarget(AccessorInfo.AccessorName name, AccessorInfo.AccessorType type, java.lang.String description, IMixinContext context, boolean verbose)
name - Name of the accessor methodtype - Type of accessor being processed, this is calculated
from the method signature (void methods being setters,
methods with return types being getters)description - description of the accessor to include in
error messagescontext - Mixin contextverbose - Emit warnings when accessor prefix doesn't match typepublic final ITargetSelector getTarget()
public final org.objectweb.asm.Type getTargetFieldType()
public final org.objectweb.asm.tree.FieldNode getTargetField()
public final org.objectweb.asm.tree.MethodNode getTargetMethod()
public final org.objectweb.asm.Type getReturnType()
public final org.objectweb.asm.Type[] getArgTypes()
public boolean isStatic()
public java.lang.String toString()
toString in class java.lang.Objectpublic void locate()
public org.objectweb.asm.tree.MethodNode generate()
protected <TNode> TNode findTarget(java.util.List<ElementNode<TNode>> nodes)
TNode - node typenodes - Node list to search (method/field list)public static AccessorInfo of(MixinTargetContext mixin, org.objectweb.asm.tree.MethodNode method, java.lang.Class<? extends java.lang.annotation.Annotation> type)
mixin - mixin context which owns this accessormethod - annotated methodtype - annotation type to process