Examples
For example:
public class ToDoItem {
public static class DependenciesChangedEvent
extends CollectionDomainEvent<ToDoItem, ToDoItem> { } (1)
@Collection(
domainEvent=DependenciesChangedEvent.class,
editing = Editing.ENABLED,
hidden = Where.NOWHERE, (2)
notPersisted = false, (3)
typeOf = ToDoItem.class (4)
)
public SortedSet<ToDoItem> getDependencies() { /* ... */ }
...
}
| 1 | can use no-arg constructor. |
| 2 | default value, so could be omitted |
| 3 | default value, so could be omitted |
| 4 | default value, so could be omitted |
|
The annotation is one of a handful (others including @CollectionLayout, @Property and @PropertyLayout) that can also be applied to the field, rather than the getter method. This is so that boilerplate-busting tools such as Project Lombok can be used. |