org.joda.beans
Annotation Type PropertyDefinition


@Retention(value=RUNTIME)
@Target(value=FIELD)
public @interface PropertyDefinition

Annotation defining a property for code generation.

This annotation must be used on all private instance variables that should be treated as properties.


Optional Element Summary
 String alias
          An alternative name for the property.
 String get
          The style of the method used to query the property.
 boolean overrideGet
          Whether the generated getter should be declared with the Override annotation.
 boolean overrideSet
          Whether the generated setter should be declared with the Override annotation.
 String set
          The style of the method used to mutate the property.
 String type
          The exposed type of the property.
 String validate
          The validator to use.
 

alias

public abstract String alias
An alternative name for the property.

The property can be looked up using the specified alias. The primary name is unaffected, and the alias is only used in certain circumstances. For example, bean.metaProperty("alias") and bean.property("alias") will both work, as will getting and setting via an immutable bean builder.

This attribute is most useful in handling change from serialized forms.

Default:
""

get

public abstract String get
The style of the method used to query the property.

The style is a string describing the getter, typically used for code generation. By default this is 'smart' which will use the source code knowledge to determine what to generate. This will be a method of the form isXxx() for boolean and getXxx() for all other types.

Supported style strings are:

Default:
"smart"

set

public abstract String set
The style of the method used to mutate the property.

The style is a string describing the mutator, typically used for code generation. By default this is 'smart' which will use the source code knowledge to determine what to generate. This will be a method of the form setXxx() for all types unless the field is final. If the field is a final Collection or Map of a known type then a set method is generated using addAll or puAll

Standard style strings are:

A pattern can be used for special behaviour. The pattern is a complete piece of code. For example, 'new Foo($value)' or '$field = $value.clone()'.
'$field' for the field to copy into.
'$value' for the value to copy from.
'<>' for the generics of the type including angle brackets.
'\n' for a new line (all lines must then include semi-colons).

Default:
"smart"

overrideGet

public abstract boolean overrideGet
Whether the generated getter should be declared with the Override annotation.

By default, the annotation is not added.

Default:
false

overrideSet

public abstract boolean overrideSet
Whether the generated setter should be declared with the Override annotation.

By default, the annotation is not added.

Default:
false

type

public abstract String type
The exposed type of the property.

The style is used to control the exposed type of the property in getters and setters, or similar.

This is used when the type of the field is not the same as the type as should be used in public methods such as getters and setters.

By default, the declared type will be used as the exposed type.

Default:
"smart"

validate

public abstract String validate
The validator to use.

The property value may be validated by specifying this attribute. By default no validation is performed. The code generator places the validation into the set method and ensures that new objects are validated correctly.

Custom validations, are written by writing a static method and referring to it. For example, public void checkMyValue(Integer val, String propertyName) ... The method generally has a void return, throwing an exception if validation fails. There must be two arguments, the value and the property name. The value may be the property type or a superclass (like Object). The property name should be a String.

Standard validation strings are:

Default:
""


Copyright © 2007–2014 Joda.org. All rights reserved.