Package groovy.transform.options
Class ImmutablePropertyHandler
java.lang.Object
groovy.transform.options.PropertyHandler
groovy.transform.options.ImmutablePropertyHandler
- Direct Known Subclasses:
LegacyHashMapPropertyHandler
-
Field Summary
Fields inherited from class groovy.transform.options.PropertyHandler
PROPERTY_OPTIONS_TYPE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Statement
checkFinalArgNotOverridden
(ClassNode cNode, FieldNode fNode) protected Expression
cloneCollectionExpr
(Expression fieldExpr, ClassNode type) protected Expression
createAsImmutableX
(Expression expr, ClassNode type) protected Statement
createConstructorStatement
(AbstractASTTransformation xform, ClassNode cNode, PropertyNode pNode, Parameter namedArgsMap) createPropGetter
(PropertyNode pNode) Create the getter block used when reading the property including any defensive copying.createPropInit
(AbstractASTTransformation xform, AnnotationNode anno, ClassNode cNode, PropertyNode pNode, Parameter namedArgsMap) Create a statement that will initialize the property including any defensive copying.createPropSetter
(PropertyNode pNode) Create the setter block used when setting the property.boolean
validateAttributes
(AbstractASTTransformation xform, AnnotationNode anno) boolean
validateProperties
(AbstractASTTransformation xform, BlockStatement body, ClassNode cNode, List<PropertyNode> props) Methods inherited from class groovy.transform.options.PropertyHandler
createPropertyHandler, isValidAttribute
-
Constructor Details
-
ImmutablePropertyHandler
public ImmutablePropertyHandler()
-
-
Method Details
-
createPropGetter
Description copied from class:PropertyHandler
Create the getter block used when reading the property including any defensive copying.- Overrides:
createPropGetter
in classPropertyHandler
- Parameters:
pNode
- the property node
-
createPropSetter
Description copied from class:PropertyHandler
Create the setter block used when setting the property. Can be null for read-only properties.- Overrides:
createPropSetter
in classPropertyHandler
- Parameters:
pNode
- the property node
-
validateAttributes
- Specified by:
validateAttributes
in classPropertyHandler
-
validateProperties
public boolean validateProperties(AbstractASTTransformation xform, BlockStatement body, ClassNode cNode, List<PropertyNode> props) - Overrides:
validateProperties
in classPropertyHandler
-
createPropInit
public Statement createPropInit(AbstractASTTransformation xform, AnnotationNode anno, ClassNode cNode, PropertyNode pNode, Parameter namedArgsMap) Description copied from class:PropertyHandler
Create a statement that will initialize the property including any defensive copying. Null if no statement should be added.- Specified by:
createPropInit
in classPropertyHandler
- Parameters:
xform
- the transform being processedanno
- the '@ImmutableBase' annotation nodecNode
- the classnode containing the propertypNode
- the property node to initializenamedArgsMap
- an "args" Map if the property value should come from a named arg map or null if not
-
cloneCollectionExpr
-
createAsImmutableX
-
createConstructorStatement
protected Statement createConstructorStatement(AbstractASTTransformation xform, ClassNode cNode, PropertyNode pNode, Parameter namedArgsMap) -
checkFinalArgNotOverridden
-