@Nullable (javax)

Apache Isis' defaults for properties and parameters is that they are mandatory unless otherwise stated. The @javax.annotation.Nullable annotation is recognized by Apache Isis for both properties and parameters as means to indicate that the property/parameter is not mandatory.

For example:

@javax.annotation.Nullable
public String getName() {
    return name;
}
public void setName(final String name) {
    this.name = name;
}

or:

public Customer updateName(@javax.annotation.Nullable final String name) {
    setName(name);
    return this;
}

Apache Isis does provide several other ways to specify optionality: using the @Property#optionality() / @Parameter#optionality() annotation. For properties, the optionality can also be inferred from the @Column#allowsNull() attribute.

See the @Property#optionality() documentation for a much fuller discussion on the relationship between using the Apache Isis annotations vs @Column#allowsNull().

If more than one method is specified then the framework will validate that there are no incompatibilities (and fail to boot otherwise). This can also be verified using the validate goal of the Apache Isis Maven plugin.