Optionality (enum)

Whether the property or parameter is optional or is required (aka mandatory).

API

Optionality.java
enum Optionality {
  DEFAULT     (1)
  OPTIONAL     (2)
  MANDATORY     (3)
  NOT_SPECIFIED     (4)
  boolean isOptional()
}
1 DEFAULT

Default, usually meaning mandatory for properties and always meaning mandatory for parameters.

2 OPTIONAL

Indicates that the property or parameter is not required.

3 MANDATORY

Indicates that the property is required (even if the JDO javax.jdo.annotations.Column annotation says otherwise).

4 NOT_SPECIFIED

Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).

Members

DEFAULT

Default, usually meaning mandatory for properties and always meaning mandatory for parameters.

For properties, will be false unless JDO javax.jdo.annotations.Column has also specified with javax.jdo.annotations.Column#allowsNull() set to true .

OPTIONAL

Indicates that the property or parameter is not required.

MANDATORY

Indicates that the property is required (even if the JDO javax.jdo.annotations.Column annotation says otherwise).

When using the JDO/DataNucleus objectstore, it is sometimes necessary to annotate a property as optional (using javax.jdo.annotations.Column#allowsNull() set to true ), even if the property is logically mandatory. For example, this can occur when the property is in a subtype class that has been "rolled up" to the superclass table using javax.jdo.annotations.Inheritance > with the javax.jdo.annotations.InheritanceStrategy#SUPERCLASS_TABLE superclass strategy.

This annotation, therefore, is intended to override any objectstore-specific annotation, so that Causeway can apply the constraint even though the objectstore is unable to do so.

NOT_SPECIFIED

Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).