Package org.codehaus.groovy.transform
Class AbstractASTTransformation
- java.lang.Object
-
- org.codehaus.groovy.transform.AbstractASTTransformation
-
- All Implemented Interfaces:
ASTTransformation
,ErrorCollecting
,org.objectweb.asm.Opcodes
- Direct Known Subclasses:
AutoCloneASTTransformation
,AutoFinalASTTransformation
,AutoImplementASTTransformation
,BaseScriptASTTransformation
,BuilderASTTransformation
,DelegateASTTransformation
,EqualsAndHashCodeASTTransformation
,ExternalizeMethodsASTTransformation
,ExternalizeVerifierASTTransformation
,ImmutableASTTransformation
,IndexedPropertyASTTransformation
,InheritConstructorsASTTransformation
,LazyASTTransformation
,LogASTTransformation
,MapConstructorASTTransformation
,MemoizedASTTransformation
,MixinASTTransformation
,NamedVariantASTTransformation
,NotYetImplementedASTTransformation
,NotYetImplementedLegacyASTTransformation
,NullCheckASTTransformation
,PackageScopeASTTransformation
,ReadWriteLockASTTransformation
,SingletonASTTransformation
,SortableASTTransformation
,SourceURIASTTransformation
,SynchronizedASTTransformation
,ToStringASTTransformation
,TraitASTTransformation
,TupleConstructorASTTransformation
public abstract class AbstractASTTransformation extends Object implements org.objectweb.asm.Opcodes, ASTTransformation, ErrorCollecting
-
-
Field Summary
Fields Modifier and Type Field Description static ClassNode
RETENTION_CLASSNODE
protected SourceUnit
sourceUnit
-
Fields inherited from interface org.objectweb.asm.Opcodes
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_RECORD, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM10_EXPERIMENTAL, ASM4, ASM5, ASM6, ASM7, ASM8, ASM9, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V15, V16, V17, V18, V9
-
-
Constructor Summary
Constructors Constructor Description AbstractASTTransformation()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addError(String msg, ASTNode expr)
protected boolean
checkIncludeExclude(AnnotationNode node, List<String> excludes, List<String> includes, String typeName)
Deprecated.protected void
checkIncludeExclude(AnnotationNode node, List<String> excludes, List<String> includes, List<ClassNode> excludeTypes, List<ClassNode> includeTypes, String typeName)
Deprecated.protected boolean
checkIncludeExcludeUndefinedAware(AnnotationNode node, List<String> excludes, List<String> includes, String typeName)
protected void
checkIncludeExcludeUndefinedAware(AnnotationNode node, List<String> excludes, List<String> includes, List<ClassNode> excludeTypes, List<ClassNode> includeTypes, String typeName)
protected boolean
checkNotInterface(ClassNode cNode, String annotationName)
boolean
checkPropertyList(ClassNode cNode, List<String> propertyNameList, String listName, AnnotationNode anno, String typeName, boolean includeFields)
boolean
checkPropertyList(ClassNode cNode, List<String> propertyNameList, String listName, AnnotationNode anno, String typeName, boolean includeFields, boolean includeSuperProperties, boolean allProperties)
boolean
checkPropertyList(ClassNode cNode, List<String> propertyNameList, String listName, AnnotationNode anno, String typeName, boolean includeFields, boolean includeSuperProperties, boolean allProperties, boolean includeSuperFields, boolean includeStatic)
protected List<AnnotationNode>
copyAnnotatedNodeAnnotations(AnnotatedNode annotatedNode, String myTypeName)
Copies all candidateAnnotations with retention policyRetentionPolicy.RUNTIME
andRetentionPolicy.CLASS
.protected List<AnnotationNode>
copyAnnotatedNodeAnnotations(AnnotatedNode annotatedNode, String myTypeName, boolean includeGenerated)
Copies all candidateAnnotations with retention policyRetentionPolicy.RUNTIME
andRetentionPolicy.CLASS
.static boolean
deemedInternalName(String name)
String
getAnnotationName()
If the transform is associated with a single annotation, returns a name suitable for displaying in error messages.List<ClassNode>
getClassList(AnnotationNode anno, String name)
Deprecated.List<ClassNode>
getMemberClassList(AnnotationNode anno, String name)
ClassNode
getMemberClassValue(AnnotationNode node, String name)
ClassNode
getMemberClassValue(AnnotationNode node, String name, ClassNode defaultValue)
int
getMemberIntValue(AnnotationNode node, String name)
static List<String>
getMemberList(AnnotationNode anno, String name)
Deprecated.static List<String>
getMemberStringList(AnnotationNode anno, String name)
static String
getMemberStringValue(AnnotationNode node, String name)
static String
getMemberStringValue(AnnotationNode node, String name, String defaultValue)
Object
getMemberValue(AnnotationNode node, String name)
boolean
hasAnnotation(ClassNode node, ClassNode annotation)
protected void
init(ASTNode[] nodes, SourceUnit sourceUnit)
boolean
memberHasValue(AnnotationNode node, String name, Object value)
static ClassNode
nonGeneric(ClassNode type)
Deprecated.use GenericsUtils#nonGenericstatic boolean
shouldSkip(String name, List<String> excludes, List<String> includes)
static boolean
shouldSkip(String name, List<String> excludes, List<String> includes, boolean allNames)
static boolean
shouldSkipOnDescriptor(boolean checkReturn, Map genericsSpec, MethodNode mNode, List<ClassNode> excludeTypes, List<ClassNode> includeTypes)
Deprecated.static boolean
shouldSkipOnDescriptorUndefinedAware(boolean checkReturn, Map genericsSpec, MethodNode mNode, List<ClassNode> excludeTypes, List<ClassNode> includeTypes)
static boolean
shouldSkipUndefinedAware(String name, List<String> excludes, List<String> includes)
static boolean
shouldSkipUndefinedAware(String name, List<String> excludes, List<String> includes, boolean allNames)
static List<String>
tokenize(String rawExcludes)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.codehaus.groovy.transform.ASTTransformation
visit
-
-
-
-
Field Detail
-
RETENTION_CLASSNODE
public static final ClassNode RETENTION_CLASSNODE
-
sourceUnit
protected SourceUnit sourceUnit
-
-
Method Detail
-
copyAnnotatedNodeAnnotations
protected List<AnnotationNode> copyAnnotatedNodeAnnotations(AnnotatedNode annotatedNode, String myTypeName)
Copies all candidateAnnotations with retention policyRetentionPolicy.RUNTIME
andRetentionPolicy.CLASS
.Annotations with
GeneratedClosure
members are not supported for now.
-
copyAnnotatedNodeAnnotations
protected List<AnnotationNode> copyAnnotatedNodeAnnotations(AnnotatedNode annotatedNode, String myTypeName, boolean includeGenerated)
Copies all candidateAnnotations with retention policyRetentionPolicy.RUNTIME
andRetentionPolicy.CLASS
.Annotations with
GeneratedClosure
members are not supported for now.
-
getAnnotationName
public String getAnnotationName()
If the transform is associated with a single annotation, returns a name suitable for displaying in error messages.- Returns:
- The simple name of the annotation including the "@" or null if no such name is defined
-
init
protected void init(ASTNode[] nodes, SourceUnit sourceUnit)
-
memberHasValue
public boolean memberHasValue(AnnotationNode node, String name, Object value)
-
getMemberValue
public Object getMemberValue(AnnotationNode node, String name)
-
getMemberStringValue
public static String getMemberStringValue(AnnotationNode node, String name, String defaultValue)
-
getMemberStringValue
public static String getMemberStringValue(AnnotationNode node, String name)
-
getMemberIntValue
public int getMemberIntValue(AnnotationNode node, String name)
-
getMemberClassValue
public ClassNode getMemberClassValue(AnnotationNode node, String name)
-
getMemberClassValue
public ClassNode getMemberClassValue(AnnotationNode node, String name, ClassNode defaultValue)
-
getMemberStringList
public static List<String> getMemberStringList(AnnotationNode anno, String name)
-
getMemberList
@Deprecated public static List<String> getMemberList(AnnotationNode anno, String name)
Deprecated.
-
getClassList
@Deprecated public List<ClassNode> getClassList(AnnotationNode anno, String name)
Deprecated.
-
getMemberClassList
public List<ClassNode> getMemberClassList(AnnotationNode anno, String name)
-
addError
public void addError(String msg, ASTNode expr)
- Specified by:
addError
in interfaceErrorCollecting
-
deemedInternalName
public static boolean deemedInternalName(String name)
-
shouldSkipUndefinedAware
public static boolean shouldSkipUndefinedAware(String name, List<String> excludes, List<String> includes)
-
shouldSkipUndefinedAware
public static boolean shouldSkipUndefinedAware(String name, List<String> excludes, List<String> includes, boolean allNames)
-
shouldSkip
public static boolean shouldSkip(String name, List<String> excludes, List<String> includes)
-
shouldSkip
public static boolean shouldSkip(String name, List<String> excludes, List<String> includes, boolean allNames)
-
shouldSkipOnDescriptor
@Deprecated public static boolean shouldSkipOnDescriptor(boolean checkReturn, Map genericsSpec, MethodNode mNode, List<ClassNode> excludeTypes, List<ClassNode> includeTypes)
Deprecated.
-
shouldSkipOnDescriptorUndefinedAware
public static boolean shouldSkipOnDescriptorUndefinedAware(boolean checkReturn, Map genericsSpec, MethodNode mNode, List<ClassNode> excludeTypes, List<ClassNode> includeTypes)
-
checkIncludeExclude
@Deprecated protected boolean checkIncludeExclude(AnnotationNode node, List<String> excludes, List<String> includes, String typeName)
Deprecated.
-
checkIncludeExcludeUndefinedAware
protected boolean checkIncludeExcludeUndefinedAware(AnnotationNode node, List<String> excludes, List<String> includes, String typeName)
-
checkIncludeExclude
@Deprecated protected void checkIncludeExclude(AnnotationNode node, List<String> excludes, List<String> includes, List<ClassNode> excludeTypes, List<ClassNode> includeTypes, String typeName)
Deprecated.
-
checkIncludeExcludeUndefinedAware
protected void checkIncludeExcludeUndefinedAware(AnnotationNode node, List<String> excludes, List<String> includes, List<ClassNode> excludeTypes, List<ClassNode> includeTypes, String typeName)
-
checkPropertyList
public boolean checkPropertyList(ClassNode cNode, List<String> propertyNameList, String listName, AnnotationNode anno, String typeName, boolean includeFields)
-
checkPropertyList
public boolean checkPropertyList(ClassNode cNode, List<String> propertyNameList, String listName, AnnotationNode anno, String typeName, boolean includeFields, boolean includeSuperProperties, boolean allProperties)
-
checkPropertyList
public boolean checkPropertyList(ClassNode cNode, List<String> propertyNameList, String listName, AnnotationNode anno, String typeName, boolean includeFields, boolean includeSuperProperties, boolean allProperties, boolean includeSuperFields, boolean includeStatic)
-
nonGeneric
@Deprecated public static ClassNode nonGeneric(ClassNode type)
Deprecated.use GenericsUtils#nonGeneric
-
-