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 java.lang.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, V20, V21, V22, V9
-
Constructor Summary
Constructors Constructor Description AbstractASTTransformation()
-
Method Summary
Modifier and Type Method Description void
addError(java.lang.String msg, ASTNode expr)
protected boolean
checkIncludeExclude(AnnotationNode node, java.util.List<java.lang.String> excludes, java.util.List<java.lang.String> includes, java.lang.String typeName)
Deprecated.protected void
checkIncludeExclude(AnnotationNode node, java.util.List<java.lang.String> excludes, java.util.List<java.lang.String> includes, java.util.List<ClassNode> excludeTypes, java.util.List<ClassNode> includeTypes, java.lang.String typeName)
Deprecated.protected boolean
checkIncludeExcludeUndefinedAware(AnnotationNode node, java.util.List<java.lang.String> excludes, java.util.List<java.lang.String> includes, java.lang.String typeName)
protected void
checkIncludeExcludeUndefinedAware(AnnotationNode node, java.util.List<java.lang.String> excludes, java.util.List<java.lang.String> includes, java.util.List<ClassNode> excludeTypes, java.util.List<ClassNode> includeTypes, java.lang.String typeName)
protected boolean
checkNotInterface(ClassNode cNode, java.lang.String annotationName)
boolean
checkPropertyList(ClassNode cNode, java.util.List<java.lang.String> propertyNameList, java.lang.String listName, AnnotationNode anno, java.lang.String typeName, boolean includeFields)
boolean
checkPropertyList(ClassNode cNode, java.util.List<java.lang.String> propertyNameList, java.lang.String listName, AnnotationNode anno, java.lang.String typeName, boolean includeFields, boolean includeSuperProperties, boolean allProperties)
boolean
checkPropertyList(ClassNode cNode, java.util.List<java.lang.String> propertyNameList, java.lang.String listName, AnnotationNode anno, java.lang.String typeName, boolean includeFields, boolean includeSuperProperties, boolean allProperties, boolean includeSuperFields, boolean includeStatic)
protected java.util.List<AnnotationNode>
copyAnnotatedNodeAnnotations(AnnotatedNode annotatedNode, java.lang.String myTypeName)
Copies all candidateAnnotations with retention policyRetentionPolicy.RUNTIME
andRetentionPolicy.CLASS
.protected java.util.List<AnnotationNode>
copyAnnotatedNodeAnnotations(AnnotatedNode annotatedNode, java.lang.String myTypeName, boolean includeGenerated)
Copies all candidateAnnotations with retention policyRetentionPolicy.RUNTIME
andRetentionPolicy.CLASS
.static boolean
deemedInternalName(java.lang.String name)
java.lang.String
getAnnotationName()
If the transform is associated with a single annotation, returns a name suitable for displaying in error messages.java.util.List<ClassNode>
getClassList(AnnotationNode anno, java.lang.String name)
Deprecated.java.util.List<ClassNode>
getMemberClassList(AnnotationNode anno, java.lang.String name)
ClassNode
getMemberClassValue(AnnotationNode node, java.lang.String name)
ClassNode
getMemberClassValue(AnnotationNode node, java.lang.String name, ClassNode defaultValue)
int
getMemberIntValue(AnnotationNode node, java.lang.String name)
static java.util.List<java.lang.String>
getMemberList(AnnotationNode anno, java.lang.String name)
Deprecated.static java.util.List<java.lang.String>
getMemberStringList(AnnotationNode anno, java.lang.String name)
static java.lang.String
getMemberStringValue(AnnotationNode node, java.lang.String name)
static java.lang.String
getMemberStringValue(AnnotationNode node, java.lang.String name, java.lang.String defaultValue)
java.lang.Object
getMemberValue(AnnotationNode node, java.lang.String name)
boolean
hasAnnotation(ClassNode node, ClassNode annotation)
protected void
init(ASTNode[] nodes, SourceUnit sourceUnit)
boolean
memberHasValue(AnnotationNode node, java.lang.String name, java.lang.Object value)
static ClassNode
nonGeneric(ClassNode type)
Deprecated.use GenericsUtils#nonGenericstatic boolean
shouldSkip(java.lang.String name, java.util.List<java.lang.String> excludes, java.util.List<java.lang.String> includes)
static boolean
shouldSkip(java.lang.String name, java.util.List<java.lang.String> excludes, java.util.List<java.lang.String> includes, boolean allNames)
static boolean
shouldSkipOnDescriptor(boolean checkReturn, java.util.Map genericsSpec, MethodNode mNode, java.util.List<ClassNode> excludeTypes, java.util.List<ClassNode> includeTypes)
Deprecated.static boolean
shouldSkipOnDescriptorUndefinedAware(boolean checkReturn, java.util.Map genericsSpec, MethodNode mNode, java.util.List<ClassNode> excludeTypes, java.util.List<ClassNode> includeTypes)
static boolean
shouldSkipUndefinedAware(java.lang.String name, java.util.List<java.lang.String> excludes, java.util.List<java.lang.String> includes)
static boolean
shouldSkipUndefinedAware(java.lang.String name, java.util.List<java.lang.String> excludes, java.util.List<java.lang.String> includes, boolean allNames)
static java.util.List<java.lang.String>
tokenize(java.lang.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 java.util.List<AnnotationNode> copyAnnotatedNodeAnnotations(AnnotatedNode annotatedNode, java.lang.String myTypeName)Copies all candidateAnnotations with retention policyRetentionPolicy.RUNTIME
andRetentionPolicy.CLASS
.Annotations with
GeneratedClosure
members are not supported for now. -
copyAnnotatedNodeAnnotations
protected java.util.List<AnnotationNode> copyAnnotatedNodeAnnotations(AnnotatedNode annotatedNode, java.lang.String myTypeName, boolean includeGenerated)Copies all candidateAnnotations with retention policyRetentionPolicy.RUNTIME
andRetentionPolicy.CLASS
.Annotations with
GeneratedClosure
members are not supported for now. -
getAnnotationName
public java.lang.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
-
memberHasValue
-
getMemberValue
-
getMemberStringValue
public static java.lang.String getMemberStringValue(AnnotationNode node, java.lang.String name, java.lang.String defaultValue) -
getMemberStringValue
-
getMemberIntValue
-
getMemberClassValue
-
getMemberClassValue
public ClassNode getMemberClassValue(AnnotationNode node, java.lang.String name, ClassNode defaultValue) -
getMemberStringList
public static java.util.List<java.lang.String> getMemberStringList(AnnotationNode anno, java.lang.String name) -
getMemberList
@Deprecated public static java.util.List<java.lang.String> getMemberList(AnnotationNode anno, java.lang.String name)Deprecated. -
getClassList
@Deprecated public java.util.List<ClassNode> getClassList(AnnotationNode anno, java.lang.String name)Deprecated. -
getMemberClassList
-
addError
- Specified by:
addError
in interfaceErrorCollecting
-
checkNotInterface
-
hasAnnotation
-
tokenize
public static java.util.List<java.lang.String> tokenize(java.lang.String rawExcludes) -
deemedInternalName
public static boolean deemedInternalName(java.lang.String name) -
shouldSkipUndefinedAware
public static boolean shouldSkipUndefinedAware(java.lang.String name, java.util.List<java.lang.String> excludes, java.util.List<java.lang.String> includes) -
shouldSkipUndefinedAware
public static boolean shouldSkipUndefinedAware(java.lang.String name, java.util.List<java.lang.String> excludes, java.util.List<java.lang.String> includes, boolean allNames) -
shouldSkip
public static boolean shouldSkip(java.lang.String name, java.util.List<java.lang.String> excludes, java.util.List<java.lang.String> includes) -
shouldSkip
public static boolean shouldSkip(java.lang.String name, java.util.List<java.lang.String> excludes, java.util.List<java.lang.String> includes, boolean allNames) -
shouldSkipOnDescriptor
@Deprecated public static boolean shouldSkipOnDescriptor(boolean checkReturn, java.util.Map genericsSpec, MethodNode mNode, java.util.List<ClassNode> excludeTypes, java.util.List<ClassNode> includeTypes)Deprecated. -
shouldSkipOnDescriptorUndefinedAware
public static boolean shouldSkipOnDescriptorUndefinedAware(boolean checkReturn, java.util.Map genericsSpec, MethodNode mNode, java.util.List<ClassNode> excludeTypes, java.util.List<ClassNode> includeTypes) -
checkIncludeExclude
@Deprecated protected boolean checkIncludeExclude(AnnotationNode node, java.util.List<java.lang.String> excludes, java.util.List<java.lang.String> includes, java.lang.String typeName)Deprecated. -
checkIncludeExcludeUndefinedAware
protected boolean checkIncludeExcludeUndefinedAware(AnnotationNode node, java.util.List<java.lang.String> excludes, java.util.List<java.lang.String> includes, java.lang.String typeName) -
checkIncludeExclude
@Deprecated protected void checkIncludeExclude(AnnotationNode node, java.util.List<java.lang.String> excludes, java.util.List<java.lang.String> includes, java.util.List<ClassNode> excludeTypes, java.util.List<ClassNode> includeTypes, java.lang.String typeName)Deprecated. -
checkIncludeExcludeUndefinedAware
protected void checkIncludeExcludeUndefinedAware(AnnotationNode node, java.util.List<java.lang.String> excludes, java.util.List<java.lang.String> includes, java.util.List<ClassNode> excludeTypes, java.util.List<ClassNode> includeTypes, java.lang.String typeName) -
checkPropertyList
public boolean checkPropertyList(ClassNode cNode, java.util.List<java.lang.String> propertyNameList, java.lang.String listName, AnnotationNode anno, java.lang.String typeName, boolean includeFields) -
checkPropertyList
public boolean checkPropertyList(ClassNode cNode, java.util.List<java.lang.String> propertyNameList, java.lang.String listName, AnnotationNode anno, java.lang.String typeName, boolean includeFields, boolean includeSuperProperties, boolean allProperties) -
checkPropertyList
public boolean checkPropertyList(ClassNode cNode, java.util.List<java.lang.String> propertyNameList, java.lang.String listName, AnnotationNode anno, java.lang.String typeName, boolean includeFields, boolean includeSuperProperties, boolean allProperties, boolean includeSuperFields, boolean includeStatic) -
nonGeneric
Deprecated.use GenericsUtils#nonGeneric
-