Top Fields Constructors Methods
org.codehaus.groovy.transform

public Class EqualsAndHashCodeASTTransformation

extends AbstractASTTransformation
Class Inheritance
Annotations
@GroovyASTTransformation
phase:CANONICALIZATION
Imports
groovy.transform.EqualsAndHashCode, org.codehaus.groovy.ast.ASTNode, .AnnotatedNode, .AnnotationNode, .ClassHelper, .ClassNode, .FieldNode, .MethodNode, .Parameter, .PropertyNode, org.codehaus.groovy.ast.expr.BinaryExpression, .CastExpression, .Expression, .VariableExpression, org.codehaus.groovy.ast.stmt.BlockStatement, .Statement, org.codehaus.groovy.ast.tools.GenericsUtils, org.codehaus.groovy.control.CompilePhase, .SourceUnit, org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport, org.codehaus.groovy.util.HashCodeHelper, java.util.ArrayList, .HashSet, .List, .Set

Field Summary

Modifier and TypeField and Description
private static final ClassNode
pack-priv static final Class<T>
pack-priv static final ClassNode
pack-priv static final String
private static final ClassNode
Inherited from org.codehaus.groovy.transform.AbstractASTTransformation:
RETENTION_CLASSNODEsourceUnit

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private static BinaryExpression
private static BinaryExpression
private static Statement
calculateHashStatements(ClassNode cNode, Expression hash, boolean includeFields, boolean callSuper, List<String> excludes, List<String> includes, boolean allNames, boolean allProperties)

private static void
public static void
createEquals(ClassNode cNode, boolean includeFields, boolean callSuper, boolean useCanEqual, List<String> excludes, List<String> includes)

public static void
createEquals(ClassNode cNode, boolean includeFields, boolean callSuper, boolean useCanEqual, List<String> excludes, List<String> includes, boolean allNames)

public static void
createEquals(ClassNode cNode, boolean includeFields, boolean callSuper, boolean useCanEqual, List<String> excludes, List<String> includes, boolean allNames, boolean allProperties)

public static void
createHashCode(ClassNode cNode, boolean cacheResult, boolean includeFields, boolean callSuper, List<String> excludes, List<String> includes)

public static void
createHashCode(ClassNode cNode, boolean cacheResult, boolean includeFields, boolean callSuper, List<String> excludes, List<String> includes, boolean allNames)

public static void
createHashCode(ClassNode cNode, boolean cacheResult, boolean includeFields, boolean callSuper, List<String> excludes, List<String> includes, boolean allNames, boolean allProperties)

private static BinaryExpression
private static BinaryExpression
public void
visit(ASTNode[]
The ASTnodes when the call was triggered. Element 0 is the AnnotationNode that triggered this annotation to be activated. Element 1 is the AnnotatedNode decorated, such as a MethodNode or ClassNode. For global transformations it is usually safe to ignore this parameter.
nodes
,
SourceUnit
The source unit being compiled. The source unit may contain several classes. For global transformations, information about the AST can be retrieved from this object.
source
)

Implements org.codehaus.groovy.transform.ASTTransformation.visit.

The method is invoked when an AST Transformation is active.
Inherited from org.codehaus.groovy.transform.AbstractASTTransformation:
addErrorcheckIncludeExcludecheckIncludeExcludecheckIncludeExcludeUndefinedAwarecheckIncludeExcludeUndefinedAwarecheckNotInterfacecheckPropertyListcheckPropertyListcheckPropertyListcopyAnnotatedNodeAnnotationscopyAnnotatedNodeAnnotationsdeemedInternalNamegetAnnotationNamegetClassListgetMemberClassListgetMemberClassValuegetMemberClassValuegetMemberIntValuegetMemberListgetMemberStringListgetMemberStringValuegetMemberStringValuegetMemberValuehasAnnotationinitmemberHasValuenonGenericshouldSkipshouldSkipshouldSkipOnDescriptorshouldSkipOnDescriptorUndefinedAwareshouldSkipUndefinedAwareshouldSkipUndefinedAwaretokenize

Field Detail

HASHUTIL_TYPEback to summary
private static final ClassNode HASHUTIL_TYPE
MY_CLASSback to summary
pack-priv static final Class<T> MY_CLASS
MY_TYPEback to summary
pack-priv static final ClassNode MY_TYPE
MY_TYPE_NAMEback to summary
pack-priv static final String MY_TYPE_NAME
OBJECT_TYPEback to summary
private static final ClassNode OBJECT_TYPE

Constructor Detail

EqualsAndHashCodeASTTransformationback to summary
public EqualsAndHashCodeASTTransformation()

Method Detail

bothSelfRecursiveFieldXback to summary
private static BinaryExpression bothSelfRecursiveFieldX(FieldNode fNode, Expression other)
bothSelfRecursivePropertyXback to summary
private static BinaryExpression bothSelfRecursivePropertyX(PropertyNode pNode, Expression other)
calculateHashStatementsback to summary
private static Statement calculateHashStatements(ClassNode cNode, Expression hash, boolean includeFields, boolean callSuper, List<String> excludes, List<String> includes, boolean allNames, boolean allProperties)
createCanEqualback to summary
private static void createCanEqual(ClassNode cNode)
createEqualsback to summary
public static void createEquals(ClassNode cNode, boolean includeFields, boolean callSuper, boolean useCanEqual, List<String> excludes, List<String> includes)
createEqualsback to summary
public static void createEquals(ClassNode cNode, boolean includeFields, boolean callSuper, boolean useCanEqual, List<String> excludes, List<String> includes, boolean allNames)
createEqualsback to summary
public static void createEquals(ClassNode cNode, boolean includeFields, boolean callSuper, boolean useCanEqual, List<String> excludes, List<String> includes, boolean allNames, boolean allProperties)
createHashCodeback to summary
public static void createHashCode(ClassNode cNode, boolean cacheResult, boolean includeFields, boolean callSuper, List<String> excludes, List<String> includes)
createHashCodeback to summary
public static void createHashCode(ClassNode cNode, boolean cacheResult, boolean includeFields, boolean callSuper, List<String> excludes, List<String> includes, boolean allNames)
createHashCodeback to summary
public static void createHashCode(ClassNode cNode, boolean cacheResult, boolean includeFields, boolean callSuper, List<String> excludes, List<String> includes, boolean allNames, boolean allProperties)
differentSelfRecursiveFieldXback to summary
private static BinaryExpression differentSelfRecursiveFieldX(FieldNode fNode, Expression other)
differentSelfRecursivePropertyXback to summary
private static BinaryExpression differentSelfRecursivePropertyX(PropertyNode pNode, Expression other)
visitback to summary
public void visit(ASTNode[] nodes, SourceUnit source)

Implements org.codehaus.groovy.transform.ASTTransformation.visit.

Doc from org.codehaus.groovy.transform.ASTTransformation.visit.

The method is invoked when an AST Transformation is active. For local transformations, it is invoked once each time the local annotation is encountered. For global transformations, it is invoked once for every source unit, which is typically a source file.

Parameters
nodes:ASTNode[]

The ASTnodes when the call was triggered. Element 0 is the AnnotationNode that triggered this annotation to be activated. Element 1 is the AnnotatedNode decorated, such as a MethodNode or ClassNode. For global transformations it is usually safe to ignore this parameter.

source:SourceUnit

The source unit being compiled. The source unit may contain several classes. For global transformations, information about the AST can be retrieved from this object.