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, V19, V9
-
Constructor Summary
Constructors Constructor Description AbstractASTTransformation()
-
Method Summary
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 Details
-
RETENTION_CLASSNODE
-
sourceUnit
-
-
Constructor Details
-
AbstractASTTransformation
public AbstractASTTransformation()
-
-
Method Details
-
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
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
-
memberHasValue
-
getMemberValue
-
getMemberStringValue
-
getMemberStringValue
-
getMemberIntValue
-
getMemberClassValue
-
getMemberClassValue
-
getMemberStringList
-
getMemberList
Deprecated. -
getClassList
Deprecated. -
getMemberClassList
-
addError
- Specified by:
addError
in interfaceErrorCollecting
-
checkNotInterface
-
hasAnnotation
-
tokenize
-
deemedInternalName
-
shouldSkipUndefinedAware
-
shouldSkipUndefinedAware
-
shouldSkip
-
shouldSkip
-
shouldSkipOnDescriptor
@Deprecated public static boolean shouldSkipOnDescriptor(boolean checkReturn, Map genericsSpec, MethodNode mNode, List<ClassNode> excludeTypes, List<ClassNode> includeTypes)Deprecated. -
shouldSkipOnDescriptorUndefinedAware
-
checkIncludeExclude
@Deprecated protected boolean checkIncludeExclude(AnnotationNode node, List<String> excludes, List<String> includes, String typeName)Deprecated. -
checkIncludeExcludeUndefinedAware
-
checkIncludeExclude
@Deprecated protected void checkIncludeExclude(AnnotationNode node, List<String> excludes, List<String> includes, List<ClassNode> excludeTypes, List<ClassNode> includeTypes, String typeName)Deprecated. -
checkIncludeExcludeUndefinedAware
-
checkPropertyList
-
checkPropertyList
-
checkPropertyList
-
nonGeneric
Deprecated.use GenericsUtils#nonGeneric
-