@Incubating public abstract class PropertyHandler extends Object
Used to provide custom property handling when getting, setting or initializing properties.
Modifiers | Name | Description |
---|---|---|
static ClassNode |
PROPERTY_OPTIONS_TYPE |
Type Params | Return Type | Name and description |
---|---|---|
|
public Statement |
createPropGetter(PropertyNode pNode) Create the getter block used when reading the property including any defensive copying. |
|
public abstract Statement |
createPropInit(AbstractASTTransformation xform, AnnotationNode anno, ClassNode cNode, PropertyNode pNode, Parameter namedArgMap) Create a statement that will initialize the property including any defensive copying. |
|
public Statement |
createPropSetter(PropertyNode pNode) Create the setter block used when setting the property. |
|
public static PropertyHandler |
createPropertyHandler(AbstractASTTransformation xform, GroovyClassLoader loader, ClassNode cNode) |
|
protected boolean |
isValidAttribute(AbstractASTTransformation xform, AnnotationNode anno, String memberName) |
|
public abstract boolean |
validateAttributes(AbstractASTTransformation xform, AnnotationNode anno) |
|
public boolean |
validateProperties(AbstractASTTransformation xform, BlockStatement body, ClassNode cNode, List<PropertyNode> props) |
Create the getter block used when reading the property including any defensive copying.
pNode
- the property nodeCreate a statement that will initialize the property including any defensive copying. Null if no statement should be added.
xform
- the transform being processedanno
- the '@ImmutableBase' annotation nodecNode
- the classnode containing the propertypNode
- the property node to initializenamedArgMap
- an "args" Map if the property value should come from a named arg map or null if notCreate the setter block used when setting the property. Can be null for read-only properties.
pNode
- the property node