Top Fields Constructors Methods
groovy.transform.options

public Class ImmutablePropertyHandler

extends PropertyHandler
Class Inheritance
Known Direct Subclasses
groovy.transform.options.LegacyHashMapPropertyHandler
Imports
groovy.lang.ReadOnlyPropertyException, org.apache.groovy.ast.tools.ImmutablePropertyUtils, org.codehaus.groovy.ast.AnnotationNode, .ClassHelper, .ClassNode, .FieldNode, .Parameter, .PropertyNode, org.codehaus.groovy.ast.expr.ArgumentListExpression, .ConstantExpression, .Expression, .MapExpression, .MethodCallExpression, org.codehaus.groovy.ast.stmt.BlockStatement, .EmptyStatement, .Statement, org.codehaus.groovy.runtime.DefaultGroovyMethods, org.codehaus.groovy.transform.AbstractASTTransformation, .ImmutableASTTransformation, .MapConstructorASTTransformation, .NullCheckASTTransformation, java.util.Collection, .List, .Map, .Set, .SortedMap, .SortedSet

Field Summary

Modifier and TypeField and Description
private static final ClassNode
private static final ClassNode
private static final ClassNode
private static final ClassNode
private static final ClassNode
private static final ClassNode
private static final ClassNode
private static final ClassNode
private static final ClassNode
private static final ClassNode
Inherited from groovy.transform.options.PropertyHandler:
PROPERTY_OPTIONS_TYPE

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private static Statement
assignFieldWithDefault(Parameter map, FieldNode fNode, Statement assignStmt, Statement assignInit)

private static Statement
assignWithDefault(boolean namedArgs, Statement assignInit, Expression param, Statement assignStmt)

protected Statement
protected Expression
protected Expression
createAsImmutableX(final Expression expr, final ClassNode type)

private static Expression
createCheckImmutable(FieldNode fNode, Expression value, List<String> knownImmutables, List<String> knownImmutableClasses)

protected Statement
createConstructorStatement(AbstractASTTransformation xform, ClassNode cNode, PropertyNode pNode, boolean namedArgs)

Deprecated
protected Statement
private static Statement
private static Statement
createConstructorStatementArrayOrCloneable(FieldNode fNode, Parameter namedArgsMap, boolean shouldNullCheck)

private Statement
private Statement
createConstructorStatementCollection(FieldNode fNode, Parameter namedArgsMap, boolean shouldNullCheck)

private static Statement
createConstructorStatementDate(FieldNode fNode, boolean namedArgs)

private static Statement
createConstructorStatementDate(FieldNode fNode, Parameter namedArgsMap, boolean shouldNullCheck)

private static Statement
createConstructorStatementDefault(FieldNode fNode, boolean namedArgs)

private static Statement
createConstructorStatementDefault(FieldNode fNode, Parameter namedArgsMap, boolean shouldNullCheck)

private static Statement
createConstructorStatementGuarded(ClassNode cNode, FieldNode fNode, boolean namedArgs, List<String> knownImmutables, List<String> knownImmutableClasses)

private static Statement
createConstructorStatementGuarded(FieldNode fNode, Parameter namedArgsMap, List<String> knownImmutables, List<String> knownImmutableClasses, boolean shouldNullCheck)

private Statement
private Statement
private static Statement
private Expression
public Statement
createPropGetter(PropertyNode
the property node
pNode
)

Overrides groovy.transform.options.PropertyHandler.createPropGetter.

Create the getter block used when reading the property including any defensive copying.
public Statement
createPropInit(AbstractASTTransformation
the transform being processed
xform
,
AnnotationNode
the '@ImmutableBase' annotation node
anno
,
ClassNode
the classnode containing the property
cNode
,
PropertyNode
the property node to initialize
pNode
,
Parameter
an "args" Map if the property value should come from a named arg map or null if not
namedArgsMap
)

Implements abstract groovy.transform.options.PropertyHandler.createPropInit.

Create a statement that will initialize the property including any defensive copying.
public Statement
createPropSetter(PropertyNode
the property node
pNode
)

Overrides groovy.transform.options.PropertyHandler.createPropSetter.

Create the setter block used when setting the property.
private static Expression
getParam(FieldNode fNode, boolean namedArgs)

private static boolean
isKnownImmutable(String fieldName, List<String> knownImmutables)

public boolean
public boolean
Inherited from groovy.transform.options.PropertyHandler:
createPropertyHandlerisValidAttribute

Field Detail

CLONEABLE_TYPEback to summary
private static final ClassNode CLONEABLE_TYPE
COLLECTION_TYPEback to summary
private static final ClassNode COLLECTION_TYPE
DGM_TYPEback to summary
private static final ClassNode DGM_TYPE
MAP_CLASSNODEback to summary
private static final ClassNode MAP_CLASSNODE
MAP_TYPEback to summary
private static final ClassNode MAP_TYPE
READONLYEXCEPTION_TYPEback to summary
private static final ClassNode READONLYEXCEPTION_TYPE
SELF_TYPEback to summary
private static final ClassNode SELF_TYPE
SET_CLASSNODEback to summary
private static final ClassNode SET_CLASSNODE
SORTEDMAP_CLASSNODEback to summary
private static final ClassNode SORTEDMAP_CLASSNODE
SORTEDSET_CLASSNODEback to summary
private static final ClassNode SORTEDSET_CLASSNODE

Constructor Detail

ImmutablePropertyHandlerback to summary
public ImmutablePropertyHandler()

Method Detail

assignFieldWithDefaultback to summary
private static Statement assignFieldWithDefault(Parameter map, FieldNode fNode, Statement assignStmt, Statement assignInit)
assignWithDefaultback to summary
private static Statement assignWithDefault(boolean namedArgs, Statement assignInit, Expression param, Statement assignStmt)
checkFinalArgNotOverriddenback to summary
protected Statement checkFinalArgNotOverridden(ClassNode cNode, FieldNode fNode)
cloneCollectionExprback to summary
protected Expression cloneCollectionExpr(Expression fieldExpr, ClassNode type)
createAsImmutableXback to summary
protected Expression createAsImmutableX(final Expression expr, final ClassNode type)
createCheckImmutableback to summary
private static Expression createCheckImmutable(FieldNode fNode, Expression value, List<String> knownImmutables, List<String> knownImmutableClasses)
createConstructorStatementback to summary
protected Statement createConstructorStatement(AbstractASTTransformation xform, ClassNode cNode, PropertyNode pNode, boolean namedArgs)

Deprecated

Annotations
@Deprecated
createConstructorStatementback to summary
protected Statement createConstructorStatement(AbstractASTTransformation xform, ClassNode cNode, PropertyNode pNode, Parameter namedArgsMap)
createConstructorStatementArrayOrCloneableback to summary
private static Statement createConstructorStatementArrayOrCloneable(FieldNode fNode, boolean namedArgs)
createConstructorStatementArrayOrCloneableback to summary
private static Statement createConstructorStatementArrayOrCloneable(FieldNode fNode, Parameter namedArgsMap, boolean shouldNullCheck)
createConstructorStatementCollectionback to summary
private Statement createConstructorStatementCollection(FieldNode fNode, boolean namedArgs)
createConstructorStatementCollectionback to summary
private Statement createConstructorStatementCollection(FieldNode fNode, Parameter namedArgsMap, boolean shouldNullCheck)
createConstructorStatementDateback to summary
private static Statement createConstructorStatementDate(FieldNode fNode, boolean namedArgs)
createConstructorStatementDateback to summary
private static Statement createConstructorStatementDate(FieldNode fNode, Parameter namedArgsMap, boolean shouldNullCheck)
createConstructorStatementDefaultback to summary
private static Statement createConstructorStatementDefault(FieldNode fNode, boolean namedArgs)
createConstructorStatementDefaultback to summary
private static Statement createConstructorStatementDefault(FieldNode fNode, Parameter namedArgsMap, boolean shouldNullCheck)
createConstructorStatementGuardedback to summary
private static Statement createConstructorStatementGuarded(ClassNode cNode, FieldNode fNode, boolean namedArgs, List<String> knownImmutables, List<String> knownImmutableClasses)
createConstructorStatementGuardedback to summary
private static Statement createConstructorStatementGuarded(FieldNode fNode, Parameter namedArgsMap, List<String> knownImmutables, List<String> knownImmutableClasses, boolean shouldNullCheck)
createGetterBodyArrayOrCloneableback to summary
private Statement createGetterBodyArrayOrCloneable(FieldNode fNode)
createGetterBodyDateback to summary
private Statement createGetterBodyDate(FieldNode fNode)
createGetterBodyDefaultback to summary
private static Statement createGetterBodyDefault(FieldNode fNode)
createIfInstanceOfAsImmutableSback to summary
private Expression createIfInstanceOfAsImmutableS(Expression expr, ClassNode type, Expression elseStatement)
createPropGetterback to summary
public Statement createPropGetter(PropertyNode pNode)

Overrides groovy.transform.options.PropertyHandler.createPropGetter.

Doc from groovy.transform.options.PropertyHandler.createPropGetter.

Create the getter block used when reading the property including any defensive copying.

Parameters
pNode:PropertyNode

the property node

Annotations
@Override
createPropInitback to summary
public Statement createPropInit(AbstractASTTransformation xform, AnnotationNode anno, ClassNode cNode, PropertyNode pNode, Parameter namedArgsMap)

Implements abstract groovy.transform.options.PropertyHandler.createPropInit.

Doc from groovy.transform.options.PropertyHandler.createPropInit.

Create a statement that will initialize the property including any defensive copying. Null if no statement should be added.

Parameters
xform:AbstractASTTransformation

the transform being processed

anno:AnnotationNode

the '@ImmutableBase' annotation node

cNode:ClassNode

the classnode containing the property

pNode:PropertyNode

the property node to initialize

namedArgsMap:Parameter

an "args" Map if the property value should come from a named arg map or null if not

Annotations
@Override
createPropSetterback to summary
public Statement createPropSetter(PropertyNode pNode)

Overrides groovy.transform.options.PropertyHandler.createPropSetter.

Doc from groovy.transform.options.PropertyHandler.createPropSetter.

Create the setter block used when setting the property. Can be null for read-only properties.

Parameters
pNode:PropertyNode

the property node

Annotations
@Override
getParamback to summary
private static Expression getParam(FieldNode fNode, boolean namedArgs)
isKnownImmutableback to summary
private static boolean isKnownImmutable(String fieldName, List<String> knownImmutables)
validateAttributesback to summary
public boolean validateAttributes(AbstractASTTransformation xform, AnnotationNode anno)

Implements abstract groovy.transform.options.PropertyHandler.validateAttributes.

Annotations
@Override
validatePropertiesback to summary
public boolean validateProperties(AbstractASTTransformation xform, BlockStatement body, ClassNode cNode, List<PropertyNode> props)

Overrides groovy.transform.options.PropertyHandler.validateProperties.

Annotations
@Override