You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2021/02/21 17:01:01 UTC
[isis] branch ISIS-2444 updated: ISIS-2444: re-adding in some of
the supporting docs for annotation elements
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-2444
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/ISIS-2444 by this push:
new 8fca5e8 ISIS-2444: re-adding in some of the supporting docs for annotation elements
8fca5e8 is described below
commit 8fca5e8306a4f3034a27200b985f10a98c68344a
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Feb 21 17:00:39 2021 +0000
ISIS-2444: re-adding in some of the supporting docs for annotation elements
---
.../hooks/ActionLayout_010-examples-and-usage.adoc | 6 +
.../hooks/ActionLayout_011-bookmarking.adoc | 39 +++
.../hooks/ActionLayout_012-cssClass.adoc | 25 ++
.../hooks/ActionLayout_013-cssClassFa.adoc | 37 +++
.../hooks/ActionLayout_014-describedAs.adoc | 19 ++
.../annotation/hooks/ActionLayout_015-hidden.adoc | 38 +++
.../annotation/hooks/ActionLayout_016-named.adoc | 28 ++
.../hooks/ActionLayout_017-position.adoc | 35 +--
.../hooks/ActionLayout_018-promptStyle.adoc | 6 +-
.../hooks/ActionLayout_019-redirect.adoc | 11 +-
.../hooks/Action_010-examples-and-usage.adoc | 10 +-
.../CollectionLayout_010-examples-and-usage.adoc | 5 +
.../hooks/CollectionLayout_011-cssClass.adoc | 25 ++
.../hooks/CollectionLayout_012-defaultView.adoc | 29 ++
.../hooks/CollectionLayout_013-describedAs.adoc | 25 ++
.../hooks/CollectionLayout_014-hidden.adoc | 48 ++++
.../hooks/CollectionLayout_015-named.adoc | 36 +++
.../hooks/CollectionLayout_016-paged.adoc | 32 +++
.../hooks/CollectionLayout_017-sortedBy.adoc | 36 +++
.../hooks/Collection_010-examples-and-usage.adoc | 4 +
.../hooks/Collection_011_domainEvent.adoc | 26 +-
.../annotation/hooks/Collection_012_hidden.adoc | 16 +-
.../annotation/hooks/Collection_013_typeOf.adoc | 27 ++
.../DomainObjectLayout_010-examples-and-usage.adoc | 2 +
.../hooks/DomainObject_010-examples-and-usage.adoc | 152 ++---------
.../hooks/DomainObject_011-domain-events.adoc | 183 +++++++++++++
.../hooks/DomainObject_012-_lifecycle-events.adoc | 291 +++++++++++++++++++++
.../DomainObject_013-autoCompleteRepository.adoc | 20 +-
.../hooks/DomainObject_014-bounding.adoc | 10 +-
.../annotation/hooks/DomainObject_015-editing.adoc | 7 +-
.../DomainObject_016-entityChangePublishing.adoc | 33 +++
.../hooks/DomainObject_017-mixinMethod.adoc | 45 ++++
.../annotation/hooks/DomainObject_018-nature.adoc | 22 +-
.../hooks/DomainObject_019-objectType.adoc | 25 +-
.../hooks/DomainObject_030-see-also.adoc | 9 +
...DomainServiceLayout_010-examples-and-usage.adoc | 2 +
.../DomainService_010-examples-and-usage.adoc | 1 +
.../hooks/Facets_010-examples-and-usage.adoc | 6 +-
.../hooks/HomePage_010-examples-and-usage.adoc | 2 +
.../InteractionScope_010-examples-and-usage.adoc | 2 +
.../hooks/MemberOrder_010-examples-and-usage.adoc | 2 +
.../hooks/MinLength_010-examples-and-usage.adoc | 1 +
.../ParameterLayout_010-examples-and-usage.adoc | 2 +
.../hooks/Parameter_010-examples-and-usage.adoc | 2 +
.../hooks/Programmatic_010-examples-and-usage.adoc | 2 +
.../PropertyLayout_010-examples-and-usage.adoc | 2 +
.../hooks/Property_010-examples-and-usage.adoc | 2 +
.../hooks/Title_010-examples-and-usage.adoc | 2 +
.../DomainObjectLayout/bookmarking.adoc | 0
.../DomainObjectLayout/cssClass.adoc | 0
.../DomainObjectLayout/cssClassFa.adoc | 0
.../DomainObjectLayout/cssClassUiEvent.adoc | 0
.../DomainObjectLayout/describedAs.adoc | 0
.../DomainObjectLayout/iconUiEvent.adoc | 0
.../DomainObjectLayout/layoutUiEvent.adoc | 0
.../DomainObjectLayout/named.adoc | 0
.../DomainObjectLayout/paged.adoc | 0
.../DomainObjectLayout/plural.adoc | 0
.../DomainObjectLayout/titleUiEvent.adoc | 0
.../DomainService/nature.adoc | 0
.../DomainService/objectType.adoc | 0
.../DomainServiceLayout/menuBar.adoc | 0
.../DomainServiceLayout/named.adoc | 0
.../MemberOrder/name.adoc | 0
.../MemberOrder/sequence.adoc | 0
.../Parameter/fileAccept.adoc | 0
.../Parameter/maxLength.adoc | 0
.../Parameter/mustSatisfy.adoc | 0
.../Parameter/optionality.adoc | 0
.../Parameter/regexPattern.adoc | 0
.../ParameterLayout/cssClass.adoc | 0
.../ParameterLayout/describedAs.adoc | 0
.../ParameterLayout/labelPosition.adoc | 0
.../ParameterLayout/multiLine.adoc | 0
.../ParameterLayout/named.adoc | 0
.../ParameterLayout/renderDay.adoc | 0
.../ParameterLayout/typicalLength.adoc | 0
.../Property/commandPublishing.adoc | 0
.../Property/domainEvent.adoc | 0
.../Property/editing.adoc | 0
.../Property/executionPublishing.adoc | 0
.../Property/fileAccept.adoc | 0
.../not-currently-referenced}/Property/hidden.adoc | 0
.../Property/maxLength.adoc | 0
.../Property/mustSatisfy.adoc | 0
.../Property/optionality.adoc | 0
.../Property/projecting.adoc | 0
.../Property/regexPattern.adoc | 0
.../Property/snapshot.adoc | 0
.../PropertyLayout/cssClass.adoc | 0
.../PropertyLayout/describedAs.adoc | 0
.../PropertyLayout/hidden.adoc | 0
.../PropertyLayout/labelPosition.adoc | 0
.../PropertyLayout/multiLine.adoc | 0
.../PropertyLayout/named.adoc | 0
.../PropertyLayout/navigable.adoc | 0
.../PropertyLayout/promptStyle.adoc | 0
.../PropertyLayout/renderDay.adoc | 0
.../PropertyLayout/repainting.adoc | 0
.../PropertyLayout/typicalLength.adoc | 0
.../Action/typeOf.adoc | 7 -
.../ActionLayout/_summary.adoc | 20 --
.../ActionLayout/bookmarking.adoc | 58 ----
.../ActionLayout/cssClass.adoc | 40 ---
.../ActionLayout/cssClassFa.adoc | 48 ----
.../ActionLayout/describedAs.adoc | 35 ---
.../ActionLayout/hidden.adoc | 50 ----
.../ActionLayout/named.adoc | 44 ----
.../Collection/_summary.adoc | 13 -
.../Collection/typeOf.adoc | 32 ---
.../CollectionLayout/_summary.adoc | 34 ---
.../CollectionLayout/cssClass.adoc | 39 ---
.../CollectionLayout/defaultView.adoc | 37 ---
.../CollectionLayout/describedAs.adoc | 35 ---
.../CollectionLayout/hidden.adoc | 62 -----
.../CollectionLayout/named.adoc | 52 ----
.../CollectionLayout/paged.adoc | 44 ----
.../CollectionLayout/sortedBy.adoc | 50 ----
.../DomainObject/_summary.adoc | 6 -
.../DomainObject/actionDomainEvent.adoc | 45 ----
.../DomainObject/collectionDomainEvent.adoc | 66 -----
.../DomainObject/createdLifecycleEvent.adoc | 101 -------
.../DomainObject/entityChangePublishing.adoc | 39 ---
.../DomainObject/loadedLifecycleEvent.adoc | 94 -------
.../DomainObject/mixinMethod.adoc | 51 ----
.../DomainObject/persistedLifecycleEvent.adoc | 101 -------
.../DomainObject/persistingLifecycleEvent.adoc | 103 --------
.../DomainObject/propertyDomainEvent.adoc | 63 -----
.../DomainObject/removingLifecycleEvent.adoc | 103 --------
.../DomainObject/updatedLifecycleEvent.adoc | 100 -------
.../DomainObject/updatingLifecycleEvent.adoc | 104 --------
.../DomainObjectLayout/_summary.adoc | 0
.../DomainService/_summary.adoc | 11 -
.../DomainServiceLayout/_summary.adoc | 14 -
.../MemberOrder/_summary.adoc | 10 -
.../Parameter/_summary.adoc | 32 ---
.../ParameterLayout/_summary.adoc | 45 ----
.../Property/_summary.adoc | 73 ------
.../PropertyLayout/_summary.adoc | 60 -----
.../org/apache/isis/applib/annotation/Action.java | 15 +-
.../isis/applib/annotation/ActionLayout.java | 35 ++-
.../apache/isis/applib/annotation/Collection.java | 17 ++
.../isis/applib/annotation/CollectionLayout.java | 32 ++-
.../isis/applib/annotation/DomainObject.java | 23 +-
.../isis/applib/annotation/DomainObjectLayout.java | 16 +-
.../isis/applib/annotation/DomainService.java | 10 +-
.../applib/annotation/DomainServiceLayout.java | 31 ++-
.../apache/isis/applib/annotation/MemberOrder.java | 9 +-
.../apache/isis/applib/annotation/Parameter.java | 15 +-
.../isis/applib/annotation/ParameterLayout.java | 63 ++++-
.../apache/isis/applib/annotation/Property.java | 28 +-
.../isis/applib/annotation/PropertyLayout.java | 48 +++-
152 files changed, 1423 insertions(+), 2230 deletions(-)
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_010-examples-and-usage.adoc
index cd57b9f..ef4012e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_010-examples-and-usage.adoc
@@ -1,3 +1,6 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+
== Examples
For example:
@@ -27,3 +30,6 @@ public class ToDoItems {
====
As an alternative to using the `@ActionLayout` annotation, a xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used (and is generally to be preferred since it is more flexible/powerful).
====
+
+== Usage Notes
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_011-bookmarking.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_011-bookmarking.adoc
new file mode 100644
index 0000000..3c830ee
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_011-bookmarking.adoc
@@ -0,0 +1,39 @@
+=== Bookmarking
+
+The xref:system:generated:index/applib/annotation/ActionLayout.adoc#bookmarking[bookmarking()] element indicates if an action (with safe xref:system:generated:index/applib/annotation/Action.adoc#semantics[action semantics]) is automatically bookmarked.
+
+In the xref:vw:ROOT:about.adoc[Wicket viewer], a link to a bookmarked object is shown in the bookmarks panel.
+
+[TIP]
+====
+The xref:vw:ROOT:about.adoc[Wicket viewer] supports `alt-[` as a shortcut for opening the bookmark panel. `Esc` will close.
+====
+
+
+For example:
+
+[source,java]
+----
+public class ToDoItems {
+ @Action(semantics=SemanticsOf.SAFE)
+ @ActionLayout(bookmarking=BookmarkPolicy.AS_ROOT)
+ @MemberOrder(sequence = "1")
+ public List<ToDoItem> notYetComplete() {
+ ...
+ }
+}
+----
+
+indicates that the `notYetComplete()` action is bookmarkable.
+
+
+
+[NOTE]
+====
+The enum value `AS_CHILD` has no meaning for actions; it relates only to bookmarked xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc#bookmarking[domain object]s.
+====
+
+
+As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
+
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_012-cssClass.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_012-cssClass.adoc
new file mode 100644
index 0000000..d16e598
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_012-cssClass.adoc
@@ -0,0 +1,25 @@
+=== CSS Styling
+
+The xref:system:generated:index/applib/annotation/ActionLayout.adoc#cssClass[cssClass()] element can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the action.
+xref:refguide:config:application-specific/application-css.adoc[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
+
+For example:
+
+[source,java]
+----
+public class ToDoItem {
+ @ActionLayout(cssClass="x-key")
+ public ToDoItem postpone(LocalDate until) { /* ... */ }
+ ...
+}
+----
+
+[NOTE]
+====
+The similar xref:system:generated:index/applib/annotation/ActionLayout.adoc#cssClassFa[`@ActionLayout#cssClassFa`] annotation attribute is also used as a hint to apply CSS, specifically to add http://fortawesome.github.io/Font-Awesome/icons/[Font Awesome icons] on action menu items or buttons.
+====
+
+==== Alternatives
+
+As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_013-cssClassFa.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_013-cssClassFa.adoc
new file mode 100644
index 0000000..6e4cc34
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_013-cssClassFa.adoc
@@ -0,0 +1,37 @@
+=== Font Icons
+
+The xref:system:generated:index/applib/annotation/ActionLayout.adoc#cssClassFa[cssClassFa()] element is used to specify the name of a link:http://fortawesome.github.io/Font-Awesome/icons/[Font Awesome icon] name, to be rendered on the action's representation as a button or menu item.
+The related xref:system:generated:index/applib/annotation/ActionLayout.adoc#cssClassFaPosition[cssClassFaPosition()] element specifies the positioning of the icon, to the left or the right of the text.
+
+These attributes can also be applied to xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc#cssClassFa[domain objects] to specify the object's icon.
+
+For example:
+
+[source,java]
+----
+public class ToDoItem {
+
+ @ActionLayout(
+ cssClassFa="fa-step-backward"
+ )
+ public ToDoItem previous() {
+ // ...
+ }
+
+ @ActionLayout(
+ cssClassFa="fa-step-forward",
+ cssClassFaPosition=ActionLayout.CssClassFaPosition.RIGHT
+ )
+ public ToDoItem next() {
+ // ...
+ }
+}
+----
+
+There can be multiple "fa-" classes, eg to mirror or rotate the icon.
+There is no need to include the mandatory `fa` "marker" CSS class; it will be automatically added to the list.
+The `fa-` prefix can also be omitted from the class names; it will be prepended to each if required.
+
+
+As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_014-describedAs.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_014-describedAs.adoc
new file mode 100644
index 0000000..0c165f4
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_014-describedAs.adoc
@@ -0,0 +1,19 @@
+=== Descriptions
+
+The xref:system:generated:index/applib/annotation/ActionLayout.adoc#describedAs[describedAs()] attribute is used to provide a short description of the action to the user.
+In the xref:vw:ROOT:about.adoc[Wicket viewer] it is displayed as a 'tool tip'.
+
+For example:
+
+[source,java]
+----
+public class Customer {
+ @ActionLayout(describedAs=
+ "Place a repeat order of the last (most recently placed) order")
+ public Order placeRepeatOrder(...) { /* ... */ }
+}
+----
+
+
+As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_015-hidden.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_015-hidden.adoc
new file mode 100644
index 0000000..d63df60
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_015-hidden.adoc
@@ -0,0 +1,38 @@
+=== Hiding actions
+
+The xref:system:generated:index/applib/annotation/ActionLayout.adoc#hidden[hidden()] attribute indicates where (in the UI) the action should be hidden from the user.
+
+[TIP]
+====
+It is also possible to use xref:system:generated:index/applib/annotation/Action.adoc#hidden[`@Action#hidden`] to hide an action at the domain layer.
+====
+
+For example:
+
+[source,java]
+----
+public class Customer {
+
+ @ActionLayout(hidden=Where.EVERYWHERE)
+ public void updateStatus() {
+ // ...
+ }
+ ...
+}
+----
+
+The acceptable values for the `where` parameter are:
+
+* `Where.EVERYWHERE` or `Where.ANYWHERE`
++
+The action should be hidden at all times.
+
+* `Where.NOWHERE`
++
+The action should not be hidden.
+
+The other values of the `Where` enum have no meaning for a collection.
+
+
+As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_016-named.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_016-named.adoc
new file mode 100644
index 0000000..043dff7
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_016-named.adoc
@@ -0,0 +1,28 @@
+=== Names
+
+The xref:system:generated:index/applib/annotation/ActionLayout.adoc#named[named()] element explicitly specifies the action's name, overriding the name that would normally be inferred from the Java source code.
+
+[TIP]
+====
+Only use this attribute when the desired name cannot be used in Java source code.
+Examples of that include a name that would be a reserved Java keyword (eg "package"), or a name that has punctuation, eg apostrophes.
+====
+
+For example:
+
+[source,java]
+----
+public class Customer {
+ @ActionLayout(named="Get credit rating") // <.>
+ public CreditRating obtainCreditRating() {
+ // ...
+ }
+}
+----
+
+<.> "get" normally indicates a property rather than an action.
+
+As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
+
+The framework also provides a separate, powerful mechanism for xref:userguide:btb:i18n.adoc[internationalization].
+
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/position.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_017-position.adoc
similarity index 57%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/position.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_017-position.adoc
index e8da1b8..26281cb 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/position.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_017-position.adoc
@@ -1,12 +1,6 @@
-[#position]
-= `position()`
+=== Positioning
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-
-The `position` attribute pertains only to actions that have been associated with properties using xref:system:generated:index/applib/annotation/MemberOrder.adoc[`@MemberOrder#named`].
+The xref:system:generated:index/applib/annotation/ActionLayout.adoc#position[position()] element pertains only to actions that have been associated with properties using xref:system:generated:index/applib/annotation/MemberOrder.adoc[`@MemberOrder#named`].
For these actions, it specifies the positioning of the action's button with respect to the field representing the object property.
The attribute can take one of four values: `BELOW`, `RIGHT`, `PANEL` or `PANEL_DROPDOWN`.
@@ -55,36 +49,17 @@ public class Customer {
<.> positioning of the action's button
-The default is `BELOW`, which is rendered (by the xref:vw:ROOT:about.adoc[Wicket viewer]) as shown below:
-
-image::reference-annotations/ActionLayout/position-BELOW.png[width="720px"]
-
+The default is `BELOW`.
If the action is positioned as `RIGHT`, then the action's button is rendered to the right of the property's field, in a compact drop-down.
-This is ideal if there are many actions associated with a property:
-
-image::reference-annotations/ActionLayout/position-RIGHT.png[width="720px"]
-
-
-
-If the action is positioned as `PANEL`, then the action's button is rendered on the header of the panel that contains the property:
-
-image::reference-annotations/ActionLayout/position-PANEL.png[width="720px"]
-
-
-
-And finally, if the action is positioned as `PANEL_DROPDOWN`, then the action's button is again rendered on the panel header, but as a drop-down:
-
-
-image::reference-annotations/ActionLayout/position-PANEL_DROPDOWN.png[width="720px"]
+If the action is positioned as `PANEL`, then the action's button is rendered on the header of the panel that contains the property.
+And finally, if the action is positioned as `PANEL_DROPDOWN`, then the action's button is again rendered on the panel header.
If there are multiple actions associated with a single property then the positioning can be mix'ed-and-match'ed as required.
If the `PANEL` or `PANEL_DROPDOWN` are used, then (as the screenshots above show) the actions from potentially multiple properties grouped by that panel will be shown together.
-== Alternatives
As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
-
The fact that the layout is dynamic (does not require a rebuild/restart) is particularly useful in that the look-n-feel can be easily experimented with and adjusted.
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/promptStyle.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_018-promptStyle.adoc
similarity index 89%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/promptStyle.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_018-promptStyle.adoc
index 6b70367..e379931 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/promptStyle.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_018-promptStyle.adoc
@@ -1,11 +1,10 @@
-[#promptStyle]
-= `promptStyle()`
+=== Prompt Style
:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
:page-partial:
-The `promptStyle` attribute is used to specify whether, when invoking an action associated with a domain object property, the parameters for the action are prompted either in modal dialog box, a (non-modal) sidebar dialog box, or is prompted using an inline panel (replacing the property on the page).
+The xref:system:generated:index/applib/annotation/ActionLayout.adoc#promptStyle[promptStyle()] element is used to specify whether, when invoking an action associated with a domain object property, the parameters for the action are prompted either in modal dialog box, a (non-modal) sidebar dialog box, or is prompted using an inline panel (replacing the property on the page).
For more on sidebar vs modal dialogs, see xref:vw:ROOT:features.adoc#sidebar-vs-modal-dialogs[Wicket viewer features].
The prompt style is influenced by two xref:vw:ROOT:configuration-properties.adoc[configuration properties]:
@@ -59,7 +58,6 @@ Exactly one action for a given property can be specified with `INLINE_AS_IF_EDIT
Assuming that the corresponding property is not itself editable, this means that the property will be rendered as if it is editable, but the action's prompt form will be rendered instead.
The net effect is that a property conceptually consisting of different parts (eg a name, an address or a date) can be updated using an action that lets each separate part be specified independently.
-== Alternatives
As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/redirect.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_019-redirect.adoc
similarity index 68%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/redirect.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_019-redirect.adoc
index 1b639e5..d785954 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/redirect.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ActionLayout_019-redirect.adoc
@@ -1,12 +1,7 @@
-[#redirect]
-= `redirect()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
+=== Smoother UI
Often an action, when invoked, will return the target (in other words, will "return this").
-The `redirect` attribute is used to control how the object is re-rendered.
+The xref:system:generated:index/applib/annotation/ActionLayout.adoc#redirectPolicy[redirectPolicy()] element is used to control how the object is re-rendered.
There are three options:
@@ -58,8 +53,6 @@ public class Customer {
If `switchToEditMode()` action is invoked, then the UI will attempt to render the customer using a `Customer.layout.edit.xml` layout file (instead of the default `Customer.layout.xml`).
-== Alternatives
-
As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Action_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Action_010-examples-and-usage.adoc
index 396d2e5..1f8ec23 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Action_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Action_010-examples-and-usage.adoc
@@ -271,7 +271,7 @@ public class ToDoItem {
}
----
-The `domainEvent` attribute allows a custom subclass to be emitted allowing more precise subscriptions (to those subclasses) to be defined instead.
+The xref:system:generated:index/applib/annotation/Action.adoc#domainEvent[domainEvent()] element allows a custom subclass to be emitted allowing more precise subscriptions (to those subclasses) to be defined instead.
For example:
@@ -378,14 +378,14 @@ If the exception is a subtype of `RecoverableException` then the exception will
==== Default, Doop and Noop events
-If the `domainEvent` attribute is not explicitly specified (is left as its default value, `ActionDomainEvent.Default`), then the framework will, by default, post an event.
+If the xref:system:generated:index/applib/annotation/Action.adoc#domainEvent[domainEvent()] element is not explicitly specified (is left as its default value, `ActionDomainEvent.Default`), then the framework will, by default, post an event.
If this is not required, then the `isis.reflector.facet.actionAnnotation.domainEvent.postForDefault` configuration property can be set to "false"; this will disable posting.
On the other hand, if the `domainEvent` has been explicitly specified to some subclass, then an event will be posted.
-The framework provides `ActionDomainEvent.Doop` as such a subclass, so setting the `domainEvent` attribute to this class will ensure that the event to be posted, irrespective of the configuration property setting.
+The framework provides `ActionDomainEvent.Doop` as such a subclass, so setting the `domainEvent` element to this class will ensure that the event to be posted, irrespective of the configuration property setting.
-And, conversely, the framework also provides `ActionDomainEvent.Noop`; if `domainEvent` attribute is set to this class, then no event will be posted.
+And, conversely, the framework also provides `ActionDomainEvent.Noop`; if `domainEvent` element is set to this class, then no event will be posted.
=== Class-level default
@@ -499,7 +499,7 @@ However, it would be useful to disaply how for a test or demo system where there
The xref:system:generated:index/applib/annotation/Action.adoc#semantics[semantics()] element describes whether the invocation modifies state of the system, and if so whether it does so idempotently.
If the action invocation does _not_ modify the state of the system, in other words is safe, then it also can beused to specify whether the results of the action can be cached automatically for the remainder of the request.
-The attribute was originally introduced for the xref:vro:ROOT:about.adoc[RestfulObjects viewer] in order that action invocations could be using the appropriate `HTTP` verb (`GET`, `PUT` and `POST`).
+The `semantics` element was originally introduced for the xref:vro:ROOT:about.adoc[RestfulObjects viewer] in order that action invocations could be using the appropriate `HTTP` verb (`GET`, `PUT` and `POST`).
The table below summarizes the semantics:
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_010-examples-and-usage.adoc
index 3864787..c9ced1f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_010-examples-and-usage.adoc
@@ -1,3 +1,5 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
== Examples
For example:
@@ -27,3 +29,6 @@ As an alternative to using the `@CollectionLayout` annotation, a xref:userguide:
The annotation is one of a handful (others including xref:system:generated:index/applib/annotation/Collection.adoc[`@Collection`], xref:system:generated:index/applib/annotation/Property.adoc[`@Property`] and xref:system:generated:index/applib/annotation/PropertyLayout.adoc[`@PropertyLayout`]) that can also be applied to the field, rather than the getter method.
This is specifically so that boilerplate-busting tools such as link:https://projectlombok.org/[Project Lombok] can be used.
====
+
+== Usage Notes
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_011-cssClass.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_011-cssClass.adoc
new file mode 100644
index 0000000..ebe9ad5
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_011-cssClass.adoc
@@ -0,0 +1,25 @@
+=== CSS Styling
+
+The xref:system:generated:index/applib/annotation/CollectionLayout.adoc#cssClass[cssClass()] element can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the collection.
+xref:refguide:config:application-specific/application-css.adoc[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
+
+For example:
+
+[source,java]
+----
+import lombok.Getter;
+import lombok.Setter;
+
+public class ToDoItem {
+
+ @CollectionLayout(
+ cssClass="x-important"
+ )
+ @Getter @Setter
+ private SortedSet<ToDoItem> dependencies = ...;
+
+}
+----
+
+As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_012-defaultView.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_012-defaultView.adoc
new file mode 100644
index 0000000..706477b
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_012-defaultView.adoc
@@ -0,0 +1,29 @@
+=== Default view
+
+The xref:system:generated:index/applib/annotation/CollectionLayout.adoc#defaultView[`defaultView()] element is used to select which of views should be used by default for a given collection.
+Without any hint the collection is shown collapsed (to save real estate and reduce load time).
+
+For example:
+
+[source,java]
+----
+import lombok.Getter;
+import lombok.Setter;
+
+
+public class BusRoute {
+
+ @CollectionLayout( defaultView="table" ) // <.>
+ @Getter @Setter
+ private SortedSet<BusStop> stops = ...
+
+}
+----
+<.> renders the collection as a table view.
+
+The xref:vw:ROOT:about.adoc[Wicket viewer] allows additional views to be configured to render collections of objects, eg xref:vw:exceldownload:about.adoc[Excel Download] ("excel"), xref:vw:fullcalendar:about.adoc[Fullcalendar] ("fullcalendar") and xref:vw:gmap3:about.adoc[Gmap3] ("map") extensions.
+This attribute can be used to select any of these alternative views instead.
+
+
+As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_013-describedAs.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_013-describedAs.adoc
new file mode 100644
index 0000000..4426ff0
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_013-describedAs.adoc
@@ -0,0 +1,25 @@
+=== Descriptions
+
+The xref:system:generated:index/applib/annotation/CollectionLayout.adoc#describedAs[describedAs()] element is used to provide a short description of the collection to the user.
+In the xref:vw:ROOT:about.adoc[Wicket viewer] it is displayed as a 'tool tip'.
+
+For example:
+
+[source,java]
+----
+import lombok.Getter;
+import lombok.Setter;
+
+public class ToDoItem {
+
+ @CollectionLayout(
+ describedAs = "Todo items to be completed before this one"
+ )
+ @Getter @Setter
+ private SortedSet<ToDoItem> dependencies = ...
+
+}
+----
+
+As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_014-hidden.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_014-hidden.adoc
new file mode 100644
index 0000000..08754c4
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_014-hidden.adoc
@@ -0,0 +1,48 @@
+=== Hiding collections
+
+The xref:system:generated:index/applib/annotation/CollectionLayout.adoc#hidden[hidden()] element indicates where (in the UI) the collection should be hidden from the user.
+
+[TIP]
+====
+It is also possible to use xref:system:generated:index/applib/annotation/Collection.adoc#hidden[`@Collection#hidden`] to hide an action at the domain layer.
+====
+
+For example:
+
+[source,java]
+----
+import lombok.Getter;
+import lombok.Setter;
+
+public class ToDoItem {
+
+ @CollectionLayout(
+ hidden=Where.EVERYWHERE
+ )
+ @Getter @Setter
+ private SortedSet<ToDoItem> dependencies = ...
+}
+----
+
+The acceptable values for the `where` parameter are:
+
+* `Where.EVERYWHERE` or `Where.ANYWHERE`
++
+The collection should be hidden everywhere.
+
+* `Where.ANYWHERE`
++
+Synonym for everywhere.
+
+* `Where.OBJECT_FORMS`
++
+The collection should be hidden when displayed within an object form.
+
+* `Where.NOWHERE`
++
+The collection should not be hidden.
+
+The other values of the `Where` enum have no meaning for a collection.
+
+
+As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_015-named.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_015-named.adoc
new file mode 100644
index 0000000..137e308
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_015-named.adoc
@@ -0,0 +1,36 @@
+=== Names
+
+The xref:system:generated:index/applib/annotation/CollectionLayout.adoc#named[named()] element explicitly specifies the collection's name, overriding the name that would normally be inferred from the Java source code.
+
+[TIP]
+====
+We recommend that you only use this attribute when the desired name cannot be used in Java source code.
+Examples of that include a name that would be a reserved Java keyword (eg "package"), or a name that has punctuation, eg apostrophes.
+====
+
+By default the name is HTML escaped.
+To allow HTML markup, set the related xref:system:generated:index/applib/annotation/CollectionLayout.adoc#namedEscaped[namedEscaped()] element to `false`.
+
+For example:
+
+[source,java]
+----
+import lombok.Getter;
+import lombok.Setter;
+
+public class ToDoItem {
+ @CollectionLayout(
+ named="Todo items that are <i>dependencies</i> of this item",
+ namedEscaped=false
+ )
+ @Getter @Setter
+ private SortedSet<ToDoItem> dependencies = ...
+
+}
+----
+
+
+As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
+
+The framework also provides a separate, powerful mechanism for xref:userguide:btb:i18n.adoc[internationalization].
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_016-paged.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_016-paged.adoc
new file mode 100644
index 0000000..5e7d875
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_016-paged.adoc
@@ -0,0 +1,32 @@
+=== Paging
+
+The xref:system:generated:index/applib/annotation/CollectionLayout.adoc#paged[paged()] element specifies the number of rows to display in a (parented) collection.
+
+[WARNING]
+====
+The xref:vro:ROOT:about.adoc[RestfulObjects viewer] currently does not support paging.
+The xref:vw:ROOT:about.adoc[Wicket viewer] _does_ support paging, but note that the paging is performed client-side rather than server-side.
+
+We therefore recommend that large collections should instead be modelled as actions (to allow filtering to be applied to limit the number of rows).
+====
+
+For example:
+
+[source,java]
+----
+import lombok.Getter;
+import lombok.Setter;
+
+public class Order {
+
+ @CollectionLayout(paged=15)
+ @Getter @Setter
+ private SortedSet<OrderLine> details = ...
+}
+----
+
+It is also possible to specify a global default for the page size of parented collections, using the xref:refguide:config:sections/isis.applib.adoc#isis.applib.annotation.collection-layout.paged[`isis.applib.annotation.collection-layout.paged`] configuration property.
+
+
+As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_017-sortedBy.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_017-sortedBy.adoc
new file mode 100644
index 0000000..69a6ba0
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/CollectionLayout_017-sortedBy.adoc
@@ -0,0 +1,36 @@
+=== Client-side Sorting
+
+The xref:system:generated:index/applib/annotation/CollectionLayout.adoc#sortedBy[sortedBy()] element specifies that the collection be ordered using the specified comparator, rather than the natural ordering of the entity (as would usually be the case).
+
+For example:
+
+[source,java]
+----
+import lombok.Getter;
+import lombok.Setter;
+
+public class ToDoItem implements Comparable<ToDoItem> { // <.>
+
+ public static class DescriptionComparator // <.>
+ implements Comparator<ToDoItem> {
+ @Override
+ public int compare(ToDoItem o1, ToDoItem o2) {
+ return Comparator.comparing(ToDoItem::getDescription)
+ .compare(o1, o2);
+ }
+ }
+
+ @CollectionLayout(sortedBy=DependenciesComparator.class) // <.>
+ @Getter @Setter
+ private SortedSet<ToDoItem> dependencies = ...
+
+}
+----
+<.> the class has a natural ordering (implementation not shown)
+<.> declaration of an alternative comparator class, using the object's `description` property
+<.> ordering of the collection defined as being by this comparator
+
+When the `dependencies` collection is rendered, the elements are sorted by the `description` property first.
+
+
+As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Collection_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Collection_010-examples-and-usage.adoc
index 38cc7d8..21ea3c9 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Collection_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Collection_010-examples-and-usage.adoc
@@ -1,3 +1,5 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
== Examples
For example:
@@ -32,3 +34,5 @@ The annotation is one of a handful (others including xref:system:generated:index
This is so that boilerplate-busting tools such as link:https://projectlombok.org/[Project Lombok] can be used.
====
+== Usage Notes
+
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/domainEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Collection_011_domainEvent.adoc
similarity index 80%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/domainEvent.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Collection_011_domainEvent.adoc
index d3b517f..04d447d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/domainEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Collection_011_domainEvent.adoc
@@ -1,9 +1,4 @@
-[#domainEvent]
-= `domainEvent()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
+=== Domain events
Whenever a domain object (or list of domain objects) is to be rendered, the framework fires off multiple domain events for every property, collection and action of the domain object.
In the cases of the domain object's collections, the events that are fired are:
@@ -42,7 +37,7 @@ public class ToDoItem {
}
----
-The `domainEvent` attribute allows a custom subclass to be emitted allowing more precise subscriptions (to those subclasses) to be defined instead.
+The xref:system:generated:index/applib/annotation/Collection.adoc#domainEvent[domainEvent()] element allows a custom subclass to be emitted allowing more precise subscriptions (to those subclasses) to be defined instead.
For example:
@@ -73,7 +68,7 @@ The framework provides a no-arg constructor and will initialize the domain event
This substantially reduces the boilerplate in the subclasses because no explicit constructor is required..
====
-== Subscribers
+==== Subscribers
Subscribers (which must be domain services) subscribe to events posted through the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`].
@@ -157,9 +152,9 @@ public class SomeSubscriber {
It is also possible to abort the transaction during the executing or executed phases by throwing an exception.
If the exception is a subtype of `RecoverableException` then the exception will be rendered as a user-friendly warning (eg Growl/toast) rather than an error.
-== Default, Doop and Noop events
+==== Default, Doop and Noop events
-If the `domainEvent` attribute is not explicitly specified (is left as its default value, `CollectionDomainEvent.Default`), then the framework will, by default, post an event.
+If the xref:system:generated:index/applib/annotation/Collection.adoc#domainEvent[`domainEvent()] element is not explicitly specified (is left as its default value, `CollectionDomainEvent.Default`), then the framework will, by default, post an event.
If this is not required, then the `isis.reflector.facet.collectionAnnotation.domainEvent.postForDefault` configuration collection can be set to "false"; this will disable posting.
@@ -168,17 +163,8 @@ The framework provides `CollectionDomainEvent.Doop` as such a subclass, so setti
And, conversely, the framework also provides `CollectionDomainEvent.Noop`; if `domainEvent` attribute is set to this class, then no event will be posted.
-== Raising events programmatically
+==== Raising events programmatically
Normally events are only raised for interactions through the UI.
However, events can be raised programmatically either by calling the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`] API directly, or by emulating the UI by wrapping the target object using the xref:system:generated:index/applib/services/wrapper/WrapperFactory.adoc[WrapperFactory] domain service.
-== See also
-
-This attribute is also supported for:
-
-* xref:system:generated:index/applib/annotation/Action.adoc#domainEvent[actions] and
-* xref:system:generated:index/applib/annotation/Property.adoc#domainEvent[properties].
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/hidden.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Collection_012_hidden.adoc
similarity index 50%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/hidden.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Collection_012_hidden.adoc
index 2a2f482..1b82dfe 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/hidden.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Collection_012_hidden.adoc
@@ -1,13 +1,7 @@
-[#hidden]
-= `hidden()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
+=== Hiding Collections
Collections can be hidden at the domain-level, indicating that they are not visible to the end-user.
-
[TIP]
====
It is also possible to use xref:system:generated:index/applib/annotation/CollectionLayout.adoc#hidden[`@CollectionLayout#hidden`] or using xref:userguide:fun:ui.adoc#object-layout[file-based layout] such that the collection can be hidden at the view layer.
@@ -51,11 +45,3 @@ The collection should not be hidden.
The other values of the `Where` enum have no meaning for a collection.
-
-
-== See also
-
-This attribute can also be applied to:
-
-* xref:system:generated:index/applib/annotation/Action.adoc#hidden[actions]
-* xref:system:generated:index/applib/annotation/Property.adoc#hidden[properties].
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Collection_013_typeOf.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Collection_013_typeOf.adoc
new file mode 100644
index 0000000..83e2ec8
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Collection_013_typeOf.adoc
@@ -0,0 +1,27 @@
+=== Collection type
+
+The `typeOf` attribute specifies the expected type of an element contained within a collection when for whatever reason the type cannot be inferred from the generic type, or to provide a hint about the actual run-time (as opposed to compile-time) type.
+
+For example:
+
+[source,java]
+----
+import lombok.Getter;
+
+public void Customer {
+
+ @Collection(typeOf=Order.class)
+ @Getter
+ private SortedSet outstandingOrders = ...
+
+}
+----
+
+[TIP]
+====
+In general we recommend that you use generics instead, eg `SortedSet<Order>`.
+====
+
+== See also
+
+This attribute can also be specified for xref:system:generated:index/applib/annotation/Action.adoc#typeOf[actions].
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObjectLayout_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObjectLayout_010-examples-and-usage.adoc
index 71ca771..e5e4b4c 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObjectLayout_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObjectLayout_010-examples-and-usage.adoc
@@ -1,3 +1,5 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
//== Main API
//
//[source,java]
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_010-examples-and-usage.adoc
index 21910e7..25a9b01 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_010-examples-and-usage.adoc
@@ -1,131 +1,24 @@
-// TODO - v2 need to clean up references
-
-
-//== Main API
-//
-//
-//<.> xref:system:generated:index/applib/annotation/DomainObject.adoc#autoCompleteRepository[`autoCompleteRepository()`]
-//+
-//Nominate a method on a domain service to be used for looking up instances of the domain object
-//
-//<.> xref:system:generated:index/applib/annotation/DomainObject.adoc#autoCompleteAction[`autoCompleteAction()`]
-//+
-//Override the method name to use on the auto-complete repository
-//
-//<.> xref:system:generated:index/applib/annotation/DomainObject.adoc#bounding[`bounding()`]
-//+
-//Whether the number of instances of this domain class is relatively small (a "bounded" set), such that instances could be selected from a drop-down list box or similar.
-//
-//<.> xref:system:generated:index/applib/annotation/DomainObject.adoc#editing[`editing()`]
-//+
-//Whether the object's properties and collections can be edited or not (ie whether the instance should be considered to be immutable)
-//
-//<.> `editingDisabledReason()`
-//+
-//The default reason why the object's properties and collections cannot be edited.
-//
-//<.> xref:system:generated:index/applib/annotation/DomainObject.adoc#entityChangePublishing[`entityChangePublishing()`]
-//+
-//Indicates whether each of the changed properties of an object should be submitted to the registered
-//xref:system:generated:index/applib/services/publishing/spi/EntityPropertyChangeSubscriber.adoc[EntityPropertyChangeSubscriber](s) and
-//whether entity changes, captured as `ChangingEntities` should be published to xref:system:generated:index/applib/services/publishing/spi/EntityChangesSubscriber.adoc[`EntityChangesSubscriber`](s). (Does only apply to entity objects.)
-//
-//<.> xref:system:generated:index/applib/annotation/DomainObject.adoc#mixinMethod[`mixinMethod()`]
-//+
-//How to recognize the "reserved" method name, meaning that the mixin's own name will be inferred from the mixin type.
-//Typical examples are "exec", "execute", "invoke", "apply" and so on.
-//The default "reserved" method name is `$$`.
-//
-//<.> xref:system:generated:index/applib/annotation/DomainObject.adoc#nature[`nature()`]
-//+
-//Whether the domain object logically is an entity (part of the domain layer) or is a view model (part of the application layer); or is a mixin.
-//If an entity, indicates how its persistence is managed.
-//
-//<.> xref:system:generated:index/applib/annotation/DomainObject.adoc#objectType[`objectType()`]
-//+
-//Specify an alias for the domain class used to uniquely identify the object both within the Apache Isis runtime and externally
-
-
-
-//== Entity Lifecycle API
-//
-//These attributes define the events to be fired throughout an the persistence lifecycle of a domain entity:
-
-//[source,java]
-//----
-//include::refguide:applib-ant:example$annotation/DomainObject.java[tags="refguide-lifecycle-events"]
-//----
-//<.> xref:system:generated:index/applib/annotation/DomainObject.adoc#createdLifecycleEvent[`createdLifecycleEvent()`]
-//+
-//The event type to be posted to the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`] whenever an instance is created
-//
-//<.> xref:system:generated:index/applib/annotation/DomainObject.adoc#persistingLifecycleEvent[`persistingLifecycleEvent()`]
-//+
-//The event type to be posted to whenever an instance is about to be persisted
-//
-//<.> xref:system:generated:index/applib/annotation/DomainObject.adoc#persistedLifecycleEvent[`persistedLifecycleEvent()`]
-//+
-//The event type to be posted whenever an instance has just been persisted
-//
-//<.> xref:system:generated:index/applib/annotation/DomainObject.adoc#loadedLifecycleEvent[`loadedLifecycleEvent()`]
-//+
-//The event type to be posted whenever an instance has just been loaded from the datastore
-//
-//<.> xref:system:generated:index/applib/annotation/DomainObject.adoc#removingLifecycleEvent[`removingLifecycleEvent()`]
-//+
-//The event type to be posted whenever an instance is about to be deleted
-//
-//<.> xref:system:generated:index/applib/annotation/DomainObject.adoc#updatedLifecycleEvent[`updatedLifecycleEvent()`]
-//+
-//The event type to be posted whenever an instance has just been updated
-//
-//<.> xref:system:generated:index/applib/annotation/DomainObject.adoc#updatingLifecycleEvent[`updatingLifecycleEvent()`]
-//+
-//The event type to be posted whenever an instance is about to be updated
-
-
-
-//== Domain Events API
-//
-//These attributes define the events to be fired when a domain object's members (its actions, properties and collections) are interacted with.
-//
-//These attributes define the default event types; they can be overridden for each specific domain member.
-//
-//[source,java]
-//----
-//include::refguide:applib-ant:example$annotation/DomainObject.java[tags="refguide-domain-events"]
-//----
-//<.> `actionDomainEvent()`
-//+
-//The event type to be posted to the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`] whenever an action of the domain object is interacted with (if not overridden using xref:system:generated:index/applib/annotation/Action.adoc#domainEvent[`@Action#domainEvent()]`).
-//
-//<.> `propertyDomainEvent()`
-//+
-//The event type to be posted to the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`] whenever a property of the domain object is interacted with (if not overridden using xref:system:generated:index/applib/annotation/Property.adoc#domainEvent[`@Property#domainEvent()]`).
-//
-//<.> `collectionDomainEvent()`
-//+
-//The event type to be posted to the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`] whenever a collection of the domain object is interacted with (if not overridden using xref:system:generated:index/applib/annotation/Collection.adoc#domainEvent[`@Collection#domainEvent()]`).
-//
-//
-//// TODO: v2: currently missing subpages for these attributes.
-//
-//For example:
-//
-//[source,java]
-//----
-//@DomainObject(
-// auditing=Auditing.ENABLED,
-// autoCompleteRepository=CustomerRepository.class
-// editing=Editing.ENABLED, // <.>
-// updatedLifecycleEvent=Customer.UpdatedEvent.class
-//
-//)
-//public class Customer {
-// ...
-//}
-//----
-//<.> default value, so could be omitted
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+
+== Example
+
+For example:
+
+[source,java]
+----
+@DomainObject(
+ auditing=Auditing.ENABLED,
+ autoCompleteRepository=CustomerRepository.class
+ editing=Editing.ENABLED,
+ updatedLifecycleEvent=Customer.UpdatedEvent.class
+
+)
+public class Customer {
+ ...
+}
+----
+
[#view-models]
@@ -183,3 +76,6 @@ However, these limitations do _not_ apply to xref:userguide:fun:view-models.adoc
If you are using view models heavily, you may wish to restrict yourself to just the JAXB flavour.
+== Usage Notes
+
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_011-domain-events.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_011-domain-events.adoc
new file mode 100644
index 0000000..e323374
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_011-domain-events.adoc
@@ -0,0 +1,183 @@
+=== Domain Event Defaults
+
+Whenever an member of a domain object is interacted with then a domain event will be fired, for each of the various phases (hidden, disabled, validated, executing, executed).
+
+For each of the three types of members (action, property and collection), the xref:system:generated:index/applib/annotation/DomainObject.adoc[DomainObject] provides an element that defines a common event domain class to be fired whenever interating with members of that type.
+This default event type can be overridden with a more specific event type if necessary.
+
+[cols="3a,6a,7a"]
+|===
+| Type
+| @DomainObject default
+| Overridden with
+
+|Actions
+|xref:system:generated:index/applib/annotation/DomainObject.adoc#actionDomainEvent[actionDomainEvent()]
+
+|xref:system:generated:index/applib/annotation/Action.adoc#domainEvent[@Action#domainEvent].
+
+|Properties
+|xref:system:generated:index/applib/annotation/DomainObject.adoc#propertyDomainEvent[propertyDomainEvent()]
+
+
+|xref:system:generated:index/applib/annotation/Property.adoc#domainEvent[@Property#domainEvent()].
+
+|Collections
+
+|xref:system:generated:index/applib/annotation/DomainObject.adoc#collectionDomainEvent[collectionDomainEvent()]
+
+|xref:system:generated:index/applib/annotation/Collection.adoc#domainEvent[@Collection#domainEvent()].
+
+|===
+
+==== Action example
+
+For an action:
+
+[source,java]
+----
+@DomainObject(
+ actionDomainEvent=ToDoItem.ActionDomainEventDefault.class
+)
+public class ToDoItem {
+
+ public static class ActionDomainEventDefault extends
+ org.apache.isis.applib.events.domain.ActionDomainEvent<Object> { }
+ // ...
+
+ public void updateDescription(final String description) {
+ this.description = description;
+ }
+
+}
+----
+
+The specified class will also be used as the event for any mixin action contributed to the class.
+
+Note though one small difference between the events emitted by a "regular" action and a contributed action is that the source of the event (as in `event#getSource()` will be different.
+In the former case it will be the domain object instance, in the latter it will be the mixin object instantiated automatically by the framework.
+
+However, the domain object is available using `event#getMixedIn()`.
+Even easier, `event#getSubject()` will always return the domain object (it returns the `#getMixedIn()` if present, otherwise the `#getSource()`.
+
+[NOTE]
+====
+Action domain events have generic types, with the (first and only) generic type indicating the event's source's type.
+
+Because an event specified at the class level might have either the domain object or a mixin for the domain object as its source, they should therefore use simply `Object` as their generic type.
+====
+
+==== Property example
+
+For example:
+
+[source,java]
+----
+@DomainObject(
+ propertyDomainEvent=ToDoItem.PropertyDomainEventDefault.class
+)
+public class ToDoItem {
+ public static class PropertyDomainEventDefault
+ extends org.apache.isis.applib.events.domain.PropertyDomainEvent<Object> { }
+ ...
+
+ @Getter @Setter
+ private String description;
+}
+----
+
+If there is a mixin for the domain object, then this will also honour the domain event.
+For example:
+
+[source,java]
+----
+@Property(
+ propertyDomainEvent=ToDoItem_priority.PropertyDomainEventDefault.class
+)
+public class ToDoItem_priority {
+ private final ToDoItem todoItem;
+ // constructor omitted
+
+ public static class PropertyDomainEventDefault
+ extends org.apache.isis.applib.events.domain.PropertyDomainEvent<Object> { }
+
+ public Integer prop() { /* ... */ }
+}
+----
+
+Interactions with the property contributed by this mixin will emit the domain event of the subject (`ToDoItem`).
+
+One small difference between the events emitted by a "regular" property and a contributed property is that the source of the event (as in `event#getSource()` will be different.
+In the former case it will be the domain object instance, in the latter it will be the mixin object instantiated automatically by the framework.
+
+However, the domain object is available using `event#getMixedIn()`.
+Even easier, `event#getSubject()` will always return the domain object (it returns the `#getMixedIn()` if present, otherwise the `#getSource()`.
+
+[NOTE]
+====
+Property domain events have generic types, with the first generic type indicating the event's source's type, and the second generic type indicating the property return type.
+
+Because an event specified at the class level might have either the domain object or a mixin for the domain object as its source, they should therefore use simply `Object` as their first generic type.
+
+They should _also_ have `Object` for their second generic type, because the return type of the various properties of the domain object will or could be different.
+====
+
+==== Collection example
+
+For example:
+
+[source,java]
+----
+import lombok.Getter;
+import lombok.Setter;
+
+@DomainObject(
+ collectionDomainEvent=ToDoItem.CollectionDomainEventDefault.class
+)
+public class ToDoItem {
+ public static class CollectionDomainEventDefault extends
+ org.apache.isis.applib.events.domain.CollectionDomainEvent<Object> { }
+ ...
+
+ @Getter @Setter
+ private Set<Category> categories = new TreeSet<>();
+}
+----
+
+If there is a mixin for the domain object, then this will also honour the domain event.
+For example:
+
+[source,java]
+----
+public class ToDoItem {
+
+ @Collection
+ @CollectionLayout(defaultView = "table")
+ public class related {
+
+ public List<ToDoItem> coll() {
+ // ...
+ }
+ }
+
+}
+----
+
+Interactions with the collection contributed by this mixin will emit the domain event of the subject (`ToDoItem`).
+
+One small difference between the events emitted by a "regular" collection and a contributed action is that the source of the event (as in `event#getSource()` will be different.
+In the former case it will be the domain object instance, in the latter it will be the mixin object instantiated automatically by the framework.
+
+However, the domain object is available using `event#getMixedIn()`.
+Even easier, `event#getSubject()` will always return the domain object (it returns the `#getMixedIn()` if present, otherwise the `#getSource()`.
+
+[NOTE]
+====
+Collection domain events have generic types, with the first generic type indicating the event's source's type, and the second generic type indicating the element type.
+
+Because an event specified at the class level might have either the domain object or a mixin for the domain object as its source, they should therefore use simply `Object` as their first generic type.
+
+They should _also_ have `Object` for their second generic type, because the element type of the various collections of the domain object will or could be different.
+====
+
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_012-_lifecycle-events.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_012-_lifecycle-events.adoc
new file mode 100644
index 0000000..4ebd059
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_012-_lifecycle-events.adoc
@@ -0,0 +1,291 @@
+=== Lifecycle Events
+
+Whenever the framework interacts with a domain entity, lifecycle events are fired.
+These are:
+
+* instantiated through xref:system:generated:index/applib/services/factory/FactoryService.adoc[`FactoryService`]
++
+An event is also fired for view models
+
+* persisting
++
+an entity is about to be persisted (``INSERT``ed) into the database
+
+* persisted
++
+an entity has just been persisted to the database
+
+* loaded
++
+an already persistent entity has just been loaded from the database
+
+* updating
++
+an already persistent entity is about to be saved (``UPDATE``d) to the database
+
+* updated
++
+an already persistent entity has just been saved (``UPDATE``d) to the database
+
+* removing
++
+an already persistent entity is about to be removed (``DELETE``d) from the database
+
+
+Subscribers subscribe through the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the object just created.
+The subscriber could then, for example, update the object, eg looking up state from some external datastore.
+
+This basic model can be influenced in a couple of ways:
+
+* first, it is also possible to suppress any events from being emitted using a configuration property (a different config property exists each lifecycle hook).
+
+* second, an element on xref:system:generated:index/applib/annotation/DomainObject.adoc[DomainObject] annotation (for each lifecycle hook) allows a different subtype event types to be emitted instead
++
+This allows subscribers to more targeted as to the events that they subscribe to.
+
+The framework also provides convenience "Doop" and a "Noop" event classes, that provoke these behaviours:
+
+* if the appropriate xref:system:generated:index/applib/annotation/DomainObject.adoc[DomainObject]' element is set to the "Doop" subclass, then this will event will be fired
++
+this is a convenient way of ensuring an event is fired even if the hook has been disabled globally, but without the hassle of defining a custom event type
+
+* if set to the "Noop" subclass, then an event will _not_ be fired.
+
+
+The table below summarises all the lifecycle hooks:
+
+[cols="2a,6a,3a,4a"]
+.Lifecycle events
+|===
+| Lifecycle event
+| Config property
+| xref:system:generated:index/applib/annotation/DomainObject.adoc[@DomainObject] override
+| Framework event types
+
+|created
+|xref:refguide:config:sections/isis.applib.adoc#isis.applib.annotation.domain-object.created-lifecycle-event.post-for-default[isis.applib.annotation.domain-object.created-lifecycle-event.post-for-default]
+| xref:system:generated:index/applib/annotation/DomainObject.adoc#createdLifecycleEvent[createdLifecycleEvent()]
+m|ObjectCreatedEvent.Default +
+ObjectCreatedEvent.Doop +
+ObjectCreatedEvent.Noop
+
+|loaded
+|xref:refguide:config:sections/isis.applib.adoc#isis.applib.annotation.domain-object.loaded-lifecycle-event.post-for-default[isis.applib.annotation.domain-object.loaded-lifecycle-event.post-for-default]
+| xref:system:generated:index/applib/annotation/DomainObject.adoc#loadedLifecycleEvent[loadedLifecycleEvent()]
+m|ObjectLoadedEvent.Default +
+ObjectLoadedEvent.Doop +
+ObjectLoadedEvent.Noop
+
+|persisting
+|xref:refguide:config:sections/isis.applib.adoc#isis.applib.annotation.domain-object.persisting-lifecycle-event.post-for-default[isis.applib.annotation.domain-object.persisting-lifecycle-event.post-for-default]
+| xref:system:generated:index/applib/annotation/DomainObject.adoc#persistingLifecycleEvent[persistingLifecycleEvent()]
+m|ObjectPersistingEvent.Default +
+ObjectPersistingEvent.Doop +
+ObjectPersistingEvent.Noop
+
+|persisted
+|xref:refguide:config:sections/isis.applib.adoc#isis.applib.annotation.domain-object.persisted-lifecycle-event.post-for-default[isis.applib.annotation.domain-object.persisted-lifecycle-event.post-for-default]
+| xref:system:generated:index/applib/annotation/DomainObject.adoc#persistedLifecycleEvent[persistedLifecycleEvent()]
+m|ObjectPersistedEvent.Default +
+ObjectPersistedEvent.Doop +
+ObjectPersistedEvent.Noop
+
+|updating
+|xref:refguide:config:sections/isis.applib.adoc#isis.applib.annotation.domain-object.updating-lifecycle-event.post-for-default[isis.applib.annotation.domain-object.updating-lifecycle-event.post-for-default]
+| xref:system:generated:index/applib/annotation/DomainObject.adoc#updatingLifecycleEvent[updatingLifecycleEvent()]
+m|ObjectUpdatingEvent.Default +
+ObjectUpdatingEvent.Doop +
+ObjectUpdatingEvent.Noop
+
+|updated
+|xref:refguide:config:sections/isis.applib.adoc#isis.applib.annotation.domain-object.updated-lifecycle-event.post-for-default[isis.applib.annotation.domain-object.updated-lifecycle-event.post-for-default]
+| xref:system:generated:index/applib/annotation/DomainObject.adoc#updatedLifecycleEvent[updatedLifecycleEvent()]
+m|ObjectUpdatedEvent.Default +
+ObjectUpdatedEvent.Doop +
+ObjectUpdatedEvent.Noop
+
+|removing
+|xref:refguide:config:sections/isis.applib.adoc#isis.applib.annotation.domain-object.removing-lifecycle-event.post-for-default[isis.applib.annotation.domain-object.removing-lifecycle-event.post-for-default]
+| xref:system:generated:index/applib/annotation/DomainObject.adoc#removingLifecycleEvent[removingLifecycleEvent()]
+m|ObjectRemovingEvent.Default +
+ObjectRemovingEvent.Doop +
+ObjectRemovingEvent.Noop
+
+|===
+
+
+
+==== Subscribers
+
+Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
+
+[source,java]
+----
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SomeSubscriber {
+ @EventListener(ObjectCreatedEvent.class)
+ public void on(ObjectCreatedEvent ev) {
+ if(ev.getSource() instanceof ToDoItem) {
+ ...
+ }
+ }
+}
+----
+
+or can be fine-grained (by subscribing to specific event subtypes):
+
+[source,java]
+----
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SomeSubscriber {
+ @EventListener(ToDoItem.ObjectCreatedEvent.class)
+ public void on(ToDoItem.ObjectCreatedEvent ev) {
+ ...
+ }
+}
+----
+
+==== Examples
+
+===== created example
+
+For example:
+
+[source,java]
+----
+@DomainObjectLayout(
+ createdLifecycleEvent=ToDoItem.CreatedEvent.class
+)
+public class ToDoItem {
+ public static class CreatedEvent
+ extends org.apache.isis.applib.events.lifecycle.ObjectCreatedEvent<ToDoItem> { }
+ ...
+}
+----
+
+[NOTE]
+====
+It's possible to instantiate objects without firing this lifecycle; just instantiate using its regular constructor, and then use the ``ServiceInjector``'s
+xref:system:generated:index/applib/services/inject/ServiceInjector.adoc[`injectServicesInto(...)`] to manually inject any required domain services.
+====
+
+
+===== persisting example
+
+For example:
+
+[source,java]
+----
+@DomainObjectLayout(
+ persistingLifecycleEvent=ToDoItem.PersistingEvent.class
+)
+public class ToDoItem {
+
+ public static class PersistingEvent extends
+ org.apache.isis.applib.events.lifecycle.ObjectPersistingEvent<ToDoItem> { }
+
+ // ...
+}
+----
+
+
+===== persisted example
+
+For example:
+
+[source,java]
+----
+@DomainObjectLayout(
+ persistedLifecycleEvent=ToDoItem.PersistedEvent.class
+)
+public class ToDoItem {
+
+ public static class PersistedEvent extends
+ org.apache.isis.applib.events.lifecycle.ObjectPersistedEvent<ToDoItem> { }
+
+ // ...
+}
+----
+
+
+===== loaded example
+
+For example:
+
+[source,java]
+----
+@DomainObjectLayout(
+ loadedLifecycleEvent=ToDoItem.LoadedEvent.class
+)
+public class ToDoItem {
+ public static class LoadedEvent extends
+ org.apache.isis.applib.events.lifecycle.ObjectLoadedEvent<ToDoItem> { }
+ ...
+}
+----
+
+
+===== updating example
+
+For example:
+
+
+[source,java]
+----
+@DomainObjectLayout(
+ updatingLifecycleEvent=ToDoItem.UpdatingEvent.class
+)
+public class ToDoItem {
+
+ public static class UpdatingEvent extends
+ org.apache.isis.applib.events.lifecycle.ObjectUpdatingEvent<ToDoItem> { }
+
+ // ...
+}
+----
+
+
+
+===== updated example
+
+
+For example:
+
+[source,java]
+----
+@DomainObjectLayout(
+ updatedLifecycleEvent=ToDoItem.UpdatedEvent.class
+)
+public class ToDoItem {
+
+ public static class UpdatedEvent extends
+ org.apache.isis.applib.events.lifecycle.ObjectUpdatedEvent<ToDoItem> { }
+
+ // ...
+}
+----
+
+
+===== removing example
+
+For example:
+
+[source,java]
+----
+@DomainObjectLayout(
+ removingLifecycleEvent=ToDoItem.RemovingEvent.class
+)
+public class ToDoItem {
+
+ public static class RemovingEvent extends
+ org.apache.isis.applib.events.lifecycle.ObjectRemovingEvent<ToDoItem> { }
+
+ // ...
+}
+----
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/autoCompleteRepository.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_013-autoCompleteRepository.adoc
similarity index 53%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/autoCompleteRepository.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_013-autoCompleteRepository.adoc
index aeee59d..d48f979 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/autoCompleteRepository.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_013-autoCompleteRepository.adoc
@@ -1,12 +1,6 @@
-[#autoCompleteRepository]
-= `autoCompleteRepository()`
+=== Auto-complete
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-
-The `autoCompleteRepository` attribute nominates a single method on a domain service as the fallback means for looking up instances of the domain object using a simple string.
+The xref:system:generated:index/applib/annotation/DomainObject.adoc#autoCompleteRepository[autoCompleteRepository()] element nominates a single method on a domain service as the fallback means for looking up instances of the domain object using a simple string.
For example, this might search for a customer by their name or number.
Or it could search for a country based on its ISO-3 code or user-friendly name.
@@ -40,11 +34,9 @@ public class CustomerRepository {
----
<1> is assumed to be called "autoComplete", and accepts a single string
-[#autoCompleteAction]
-== `autoCompleteAction()`
-As noted above, by default the method invoked on the repository is assumed to be called "autoComplete".
-The optional `autoCompleteAction` attribute allows the method on the repository to be overridden.
+(As noted above) the method invoked on the repository is assumed to be called "autoComplete".
+The optional xref:system:generated:index/applib/annotation/DomainObject.adoc#autoCompleteAction[autoCompleteAction()] element allows the name of this method to be overridden.
For example:
@@ -76,9 +68,9 @@ public class Customers {
----
<.> end-user must enter minimum number of characters to trigger the query
-The autocomplete "action" can also be a regular method, annotated using xref:system:generated:index/applib/annotation/Programmatic.adoc[`@Programmatic`].
+NOTE: The autocomplete "action" can also be a regular method, annotated using xref:system:generated:index/applib/annotation/Programmatic.adoc[`@Programmatic`].
That is, it does not need to be part of the metamodel:
-
++
[source,java]
----
@DomainService(nature = NatureOfService.VIEW)
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/bounding.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_014-bounding.adoc
similarity index 60%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/bounding.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_014-bounding.adoc
index f16e04d..8f1e321 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/bounding.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_014-bounding.adoc
@@ -1,16 +1,10 @@
-[#bounding]
-= `bounding`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-r
-
+=== Reference Data
Some domain classes are immutable to the user, and moreover have only a fixed number of instances.
Often these are "reference" ("standing") data, or lookup data/pick lists.
Typical examples could include categories, countries, states, and tax or interest rate tables.
-Where the number of instances is relatively small, ie bounded, then the `bounding` attribute can be used as a hint.
+Where the number of instances is relatively small, ie bounded, then the xref:system:generated:index/applib/annotation/DomainObject.adoc#bounding[bounding()] element can be used as a hint.
For such domain objects the framework will automatically allow instances to be selected; xref:vw:ROOT:about.adoc[Wicket viewer] displays these as a drop-down list.
For example:
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/editing.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_015-editing.adoc
similarity index 63%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/editing.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_015-editing.adoc
index 8dae10b..4f110ff 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/editing.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_015-editing.adoc
@@ -1,10 +1,7 @@
-[#editing]
-= `editing()`
+=== Editing
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-The `editing` attribute determines whether a domain object's properties and collections are not editable (are read-only).
+The xref:system:generated:index/applib/annotation/DomainObject.adoc#editing[editing()] element determines whether a domain object's properties and collections are not editable (are read-only).
The default is `AS_CONFIGURED`, meaning that the xref:refguide:config:sections/isis.applib.adoc#isis.applib.annotation.domain-object.editing[`isis.applib.annotation.domain-object.editing`]
configuration property is used to determine the whether the object is modifiable:
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_016-entityChangePublishing.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_016-entityChangePublishing.adoc
new file mode 100644
index 0000000..a23dd0c
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_016-entityChangePublishing.adoc
@@ -0,0 +1,33 @@
+=== Auditing
+
+The xref:system:generated:index/applib/annotation/DomainObject.adoc#entityChangePublishing[entityChangePublishing()] element indicates that if the object is modified, then each of its changed properties should be submitted to the registered xref:system:generated:index/applib/services/publishing/spi/EntityPropertyChangeSubscriber.adoc[`EntityPropertyChangeSubscriber`](s).
+
+The default value for the element is `AS_CONFIGURED`, meaning that the xref:refguide:config:sections/isis.applib.adoc#isis.applib.annotation.domain-object.entity-change-publishing[`isis.applib.annotation.domain-object.entity-change-publishing`] configuration property is used to determine the whether the action is audited:
+
+* `all` +
++
+all changed properties of objects are audited
+
+* `none` +
++
+no changed properties of objects are audited
+
+If there is no configuration property in `application.properties` then auditing is automatically enabled for domain objects.
+
+This default can be overridden on an object-by-object basis; if `entityChangePublishing()` is set to `ENABLED` then changed properties of instances of the domain class are audited irrespective of the configured value; if set to `DISABLED` then the changed properties of instances are _not_ audited, again irrespective of the configured value.
+
+For example:
+
+[source,java]
+----
+@DomainObject(
+ entityChangePublishing=Publishing.ENABLED // <.>
+)
+public class Customer {
+ ...
+}
+----
+<.> because set to enabled, will be audited irrespective of the configured value.
+
+
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_017-mixinMethod.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_017-mixinMethod.adoc
new file mode 100644
index 0000000..a2bff96
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_017-mixinMethod.adoc
@@ -0,0 +1,45 @@
+=== Mixin method
+
+The xref:system:generated:index/applib/annotation/DomainObject.adoc#mixinMethod[mixinMethod()] element specifies the name of the method to be treated as a "reserved" method name, meaning that the mixin's name should instead be inferred from the mixin's type.
+
+For example:
+
+[source,java]
+----
+@DomainObject
+public class Customer {
+
+ @DomainObject(
+ nature=Nature.MIXIN, // <.>
+ mixinMethod="execute" // <.>
+ )
+ public class placeOrder { // <.>
+
+ public Customer execute(Product p, int quantity) { // <.>
+ // ...
+ }
+ public String disableExecute() {
+ // ...
+ }
+ public String validate0Execute() {
+ // ...
+ }
+ }
+)
+----
+<.> This is a mixin. +
+Alternatively, could have used xref:system:generated:index/applib/annotation/Action.adoc[`@Action`].
+<.> This mixin is using a non-standard method.
+<.> a trick - this is not a `static` class, so the java compiler will create the 1-arg constructor automatically
+<.> Same name as the specified mixinMethod.
+Alternatively, when using xref:system:generated:index/applib/annotation/Action.adoc[`@Action`] then method's name defaults to `act`.
+
+This allows all mixins to follow a similar convention, with the name of the mixin inferred entirely from its type ("placeOrder").
+
+When invoked programmatically, the code reads:
+
+[source,java]
+----
+someCustomer.new placeOrder().execute(someProduct, 3);
+----
+
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/nature.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_018-nature.adoc
similarity index 74%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/nature.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_018-nature.adoc
index de88336..6ddd22d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/nature.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_018-nature.adoc
@@ -1,12 +1,6 @@
-[#nature]
-= `nature()`
+=== Nature
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-
-The `nature` attribute is used to characterize the domain object as either an entity (part of the domain layer) or as a view model (part of the application layer).
+The xref:system:generated:index/applib/annotation/DomainObject.adoc#nature[nature()] element is used to characterize the domain object as either an entity (part of the domain layer) or as a view model (part of the application layer).
If the domain object should be thought of as an entity, it also captures how the persistence of that entity is managed.
For example:
@@ -25,7 +19,7 @@ Specifically, the nature must be one of:
+
(the default); specifies no paricular semantics for the domain class.
-* `JDO_ENTITY`
+* `ENTITY`
+
indicates that the domain object is an entity whose persistence is managed internally by Apache Isis, using the JDO/DataNucleus objectstore.
@@ -38,16 +32,16 @@ For further discussion on using mixins, see xref:userguide:fun:overview.adoc#mix
* `VIEW_MODEL`
+
indicates that the domain object is conceptually part of the application layer, and exists to surfaces behaviour and/or state that is aggregate of one or more domain entities.
-+
-_Variant: External Entity_
+
+** _Variant: External Entity_
+
Or indicates that the domain object is a wrapper/proxy/stub (choose your term) to an entity that is managed by some related external system.
For example, the domain object may hold just the URI to a RESTful resource of some third party REST service, or the id of some system accessible over SOAP.
+
The identity of an external entity is determined solely by the state of entity's properties.
The framework will automatically recreate the domain object each time it is interacted with.
-+
-_Variant: In-Memory Entity_
+
+** _Variant: In-Memory Entity_
+
Or indicates that the domain object is a wrapper/proxy/stub to a "synthetic" entity, for example one that is constructed from some sort of internal memory data structure.
+
@@ -73,3 +67,5 @@ On the other hand, view models defined in this way do have some limitations; see
These limitations do _not_ apply to xref:userguide:fun:view-models.adoc#jaxb[JAXB] view models.
If you are using view models heavily, you may wish to restrict yourself to just the JAXB flavour.
====
+
+
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/objectType.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_019-objectType.adoc
similarity index 55%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/objectType.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_019-objectType.adoc
index 42aacea..0e182e0 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/objectType.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_019-objectType.adoc
@@ -1,11 +1,6 @@
-[#objectType]
-= `objectType()`
+=== Object aliases
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-The `objectType` attribute is used to provide a unique alias for the object's class name.
+The xref:system:generated:index/applib/annotation/DomainObject.adoc#objectType[objectType()] element is used to provide a unique alias for the object's class name.
This value is used internally to generate a string representation of an objects identity (the `Oid`).
This can appear in several contexts, including:
@@ -35,25 +30,25 @@ public class Order {
The rules of precedence are:
-1. xref:refguide:applib-ant:Discriminator.adoc[`@Discriminator`]
-2. `@DomainObject#objectType`
-3. xref:refguide:applib-ant:PersistenceCapable.adoc[`@PersistenceCapable`], if at least the `schema` attribute is defined.
+. `@DomainObject#objectType`
+. ORM-specific:
+
+.. JDO: xref:refguide:applib-ant:PersistenceCapable.adoc[`@PersistenceCapable`], if at least the `schema` attribute is defined.
+
If both `schema` and `table` are defined, then the value is "`schema.table`".
If only `schema` is defined, then the value is "`schema.className`".
-4. Fully qualified class name of the entity.
+.. (JPA) `@Table#schema()`.
+
+. Fully qualified class name of the entity.
[TIP]
====
This might be obvious, but to make explicit: we recommend that you always specify an object type for your domain objects.
Otherwise, if you refactor your code (change class name or move package), then any externally held references to the OID of the object will break.
-At best this will require a data migration in the database; at worst it could cause external clients accessing data through the xref:vro:ROOT:about.adoc[Restful Objects] viewer to break.
+At best this will require a data migration in the database; at worst it could cause external clients, eg if accessing data through the xref:vro:ROOT:about.adoc[Restful Objects] viewer, to break.
====
-[NOTE]
-====
If the object type is not unique across all domain classes then the framework will fail-fast and fail to boot.
An error message will be printed in the log to help you determine which classes have duplicate object tyoes.
-====
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_030-see-also.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_030-see-also.adoc
new file mode 100644
index 0000000..e448151
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainObject_030-see-also.adoc
@@ -0,0 +1,9 @@
+=== See also
+
+* xref:system:generated:index/applib/services/publishing/spi/EntityPropertyChangeSubscriber.adoc[EntityPropertyChangeSubscriber] SPI
++
+(only applies to entity objects)
+
+* xref:system:generated:index/applib/services/publishing/spi/EntityChangesSubscriber.adoc[`EntityChangesSubscriber`] SPI
++
+(only applies to entity objects)
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainServiceLayout_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainServiceLayout_010-examples-and-usage.adoc
index e69de29..ca04c21 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainServiceLayout_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainServiceLayout_010-examples-and-usage.adoc
@@ -0,0 +1,2 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainService_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainService_010-examples-and-usage.adoc
index e69de29..73999e3 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainService_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/DomainService_010-examples-and-usage.adoc
@@ -0,0 +1 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Facets_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Facets_010-examples-and-usage.adoc
index 0910363..22c40bf 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Facets_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Facets_010-examples-and-usage.adoc
@@ -1,3 +1,5 @@
-== Notes
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-`FacetFactory` is an important internal API that is used by Apache Isis to build the metamodel.
+//== Notes
+//
+//`FacetFactory` is an important internal API that is used by Apache Isis to build the metamodel.
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/HomePage_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/HomePage_010-examples-and-usage.adoc
index 84edb83..b373f26 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/HomePage_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/HomePage_010-examples-and-usage.adoc
@@ -1,3 +1,5 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
== Examples
For example, a todo app could use `@HomePage` on a dashboard of todo items to complete:
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/InteractionScope_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/InteractionScope_010-examples-and-usage.adoc
index dae43fe..812d979 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/InteractionScope_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/InteractionScope_010-examples-and-usage.adoc
@@ -1,3 +1,5 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
// TODO: v2 - this may no longer be true.
//A number of the built-in domain services uses this annotation, including xref:system:generated:index/applib/services/scratchpad/Scratchpad.adoc[`Scratchpad`] and
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/MemberOrder_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/MemberOrder_010-examples-and-usage.adoc
index 4c49666..5c3a266 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/MemberOrder_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/MemberOrder_010-examples-and-usage.adoc
@@ -1,3 +1,5 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
== Notes
As this is an important topic, there is xref:userguide:fun:ui.adoc#object-layout[chapter] in the user guide that discusses object layout in full.
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/MinLength_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/MinLength_010-examples-and-usage.adoc
index e69de29..73999e3 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/MinLength_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/MinLength_010-examples-and-usage.adoc
@@ -0,0 +1 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ParameterLayout_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ParameterLayout_010-examples-and-usage.adoc
index 446c84d..035edc5 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ParameterLayout_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/ParameterLayout_010-examples-and-usage.adoc
@@ -1,3 +1,5 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
== Examples
For example:
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Parameter_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Parameter_010-examples-and-usage.adoc
index 5f19a73..2ba591c 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Parameter_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Parameter_010-examples-and-usage.adoc
@@ -1,3 +1,5 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
== Examples
For example:
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Programmatic_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Programmatic_010-examples-and-usage.adoc
index 39cd813..8a1f707 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Programmatic_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Programmatic_010-examples-and-usage.adoc
@@ -1,3 +1,5 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
== Examples
A common use-case is to ignore implementation-level artifacts.
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/PropertyLayout_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/PropertyLayout_010-examples-and-usage.adoc
index 7832715..e79c91a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/PropertyLayout_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/PropertyLayout_010-examples-and-usage.adoc
@@ -1,3 +1,5 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
== Examples
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Property_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Property_010-examples-and-usage.adoc
index ddcaab1..78f4ef7 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Property_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Property_010-examples-and-usage.adoc
@@ -1,3 +1,5 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
== Examples
For example:
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Title_010-examples-and-usage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Title_010-examples-and-usage.adoc
index 5bad7ab..67f6a9c 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Title_010-examples-and-usage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/Title_010-examples-and-usage.adoc
@@ -1,3 +1,5 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
== Examples
For example:
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/bookmarking.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/bookmarking.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/bookmarking.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/bookmarking.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/cssClass.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/cssClass.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/cssClass.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/cssClass.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/cssClassFa.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/cssClassFa.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/cssClassFa.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/cssClassFa.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/cssClassUiEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/cssClassUiEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/cssClassUiEvent.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/cssClassUiEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/describedAs.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/describedAs.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/describedAs.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/describedAs.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/iconUiEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/iconUiEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/iconUiEvent.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/iconUiEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/layoutUiEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/layoutUiEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/layoutUiEvent.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/layoutUiEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/named.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/named.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/named.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/named.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/paged.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/paged.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/paged.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/paged.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/plural.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/plural.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/plural.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/plural.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/titleUiEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/titleUiEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/titleUiEvent.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainObjectLayout/titleUiEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainService/nature.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainService/nature.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainService/nature.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainService/nature.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainService/objectType.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainService/objectType.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainService/objectType.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainService/objectType.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainServiceLayout/menuBar.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainServiceLayout/menuBar.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainServiceLayout/menuBar.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainServiceLayout/menuBar.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainServiceLayout/named.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainServiceLayout/named.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainServiceLayout/named.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/DomainServiceLayout/named.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/MemberOrder/name.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/MemberOrder/name.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/MemberOrder/name.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/MemberOrder/name.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/MemberOrder/sequence.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/MemberOrder/sequence.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/MemberOrder/sequence.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/MemberOrder/sequence.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/fileAccept.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Parameter/fileAccept.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/fileAccept.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Parameter/fileAccept.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/maxLength.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Parameter/maxLength.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/maxLength.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Parameter/maxLength.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/mustSatisfy.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Parameter/mustSatisfy.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/mustSatisfy.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Parameter/mustSatisfy.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/optionality.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Parameter/optionality.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/optionality.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Parameter/optionality.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/regexPattern.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Parameter/regexPattern.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/regexPattern.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Parameter/regexPattern.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/cssClass.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/ParameterLayout/cssClass.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/cssClass.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/ParameterLayout/cssClass.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/describedAs.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/ParameterLayout/describedAs.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/describedAs.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/ParameterLayout/describedAs.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/labelPosition.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/ParameterLayout/labelPosition.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/labelPosition.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/ParameterLayout/labelPosition.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/multiLine.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/ParameterLayout/multiLine.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/multiLine.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/ParameterLayout/multiLine.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/named.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/ParameterLayout/named.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/named.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/ParameterLayout/named.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/renderDay.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/ParameterLayout/renderDay.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/renderDay.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/ParameterLayout/renderDay.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/typicalLength.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/ParameterLayout/typicalLength.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/typicalLength.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/ParameterLayout/typicalLength.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/commandPublishing.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/commandPublishing.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/commandPublishing.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/commandPublishing.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/domainEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/domainEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/domainEvent.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/domainEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/editing.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/editing.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/editing.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/editing.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/executionPublishing.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/executionPublishing.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/executionPublishing.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/executionPublishing.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/fileAccept.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/fileAccept.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/fileAccept.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/fileAccept.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/hidden.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/hidden.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/hidden.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/hidden.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/maxLength.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/maxLength.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/maxLength.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/maxLength.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/mustSatisfy.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/mustSatisfy.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/mustSatisfy.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/mustSatisfy.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/optionality.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/optionality.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/optionality.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/optionality.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/projecting.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/projecting.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/projecting.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/projecting.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/regexPattern.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/regexPattern.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/regexPattern.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/regexPattern.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/snapshot.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/snapshot.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/snapshot.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/Property/snapshot.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/cssClass.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/cssClass.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/cssClass.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/cssClass.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/describedAs.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/describedAs.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/describedAs.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/describedAs.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/hidden.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/hidden.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/hidden.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/hidden.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/labelPosition.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/labelPosition.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/labelPosition.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/labelPosition.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/multiLine.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/multiLine.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/multiLine.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/multiLine.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/named.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/named.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/named.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/named.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/navigable.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/navigable.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/navigable.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/navigable.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/promptStyle.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/promptStyle.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/promptStyle.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/promptStyle.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/renderDay.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/renderDay.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/renderDay.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/renderDay.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/repainting.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/repainting.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/repainting.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/repainting.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/typicalLength.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/typicalLength.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/typicalLength.adoc
rename to antora/components/system/modules/generated/pages/index/applib/annotation/hooks/not-currently-referenced/PropertyLayout/typicalLength.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/typeOf.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/typeOf.adoc
deleted file mode 100644
index 71a4271..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/typeOf.adoc
+++ /dev/null
@@ -1,7 +0,0 @@
-[#typeOf]
-= `typeOf()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/_summary.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/_summary.adoc
deleted file mode 100644
index 96f1a43..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/_summary.adoc
+++ /dev/null
@@ -1,20 +0,0 @@
-// TODO - v2 (reconcile/move into javadoc).
-
-//<.> xref:system:generated:index/applib/annotation/ActionLayout.adoc#named[`named()`]
-//+
-//To override the name inferred from the action's name in code. +
-//A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
-//
-//<.> xref:system:generated:index/applib/annotation/ActionLayout.adoc#position[`position()`]
-//+
-//For actions associated (using xref:system:generated:index/applib/annotation/MemberOrder.adoc[`@MemberOrder#named`]) with properties, the positioning of the action's button with respect to the property
-//
-//<.> `promptStyle()`
-//+
-//How to render the action prompt / property edit form : inline, dialog, sidebar etc.
-//
-//<.> `redirectPolicy()`
-//+
-//For the xref:vw:ROOT:about.adoc[Wicket viewer], whether to re-render the page after invoking this action, even if the result is the same.
-//+
-//Not re-rendering can provide a smoother UI experience.
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/bookmarking.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/bookmarking.adoc
deleted file mode 100644
index 9324b54..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/bookmarking.adoc
+++ /dev/null
@@ -1,58 +0,0 @@
-[#bookmarking]
-= `bookmarking()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-
-The `bookmarking` attribute indicates if an action (with safe xref:system:generated:index/applib/annotation/Action.adoc#semantics[action semantics]) is automatically bookmarked.
-
-
-In the xref:vw:ROOT:about.adoc[Wicket viewer], a link to a bookmarked object is shown in the bookmarks panel:
-
-image::reference-annotations/ActionLayout/bookmarking.png[width="720px"]
-
-[NOTE]
-====
-Note that this screenshot shows an earlier version of the xref:vw:ROOT:about.adoc[Wicket viewer] UI (specifically, pre 1.8.0).
-====
-
-[TIP]
-====
-The xref:vw:ROOT:about.adoc[Wicket viewer] supports `alt-[` as a shortcut for opening the bookmark panel. `Esc` will close.
-====
-
-
-For example:
-
-[source,java]
-----
-public class ToDoItems {
- @Action(semantics=SemanticsOf.SAFE)
- @ActionLayout(bookmarking=BookmarkPolicy.AS_ROOT)
- @MemberOrder(sequence = "1")
- public List<ToDoItem> notYetComplete() {
- ...
- }
-}
-----
-
-indicates that the `notYetComplete()` action is bookmarkable.
-
-
-
-[NOTE]
-====
-The enum value `AS_CHILD` has no meaning for actions; it relates only to bookmarked xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc#bookmarking[domain object]s.
-====
-
-
-== Alternatives
-
-As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
-
-
-== See also
-
-This attribute is also supported for xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc#bookmarking[domain objects].
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/cssClass.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/cssClass.adoc
deleted file mode 100644
index 0d38ca4..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/cssClass.adoc
+++ /dev/null
@@ -1,40 +0,0 @@
-[#cssClass]
-= `cssClass()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-
-The `cssClass` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the action.
-xref:refguide:config:application-specific/application-css.adoc[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
-
-For example:
-
-[source,java]
-----
-public class ToDoItem {
- @ActionLayout(cssClass="x-key")
- public ToDoItem postpone(LocalDate until) { /* ... */ }
- ...
-}
-----
-
-[NOTE]
-====
-The similar xref:system:generated:index/applib/annotation/ActionLayout.adoc#cssClassFa[`@ActionLayout#cssClassFa`] annotation attribute is also used as a hint to apply CSS, specifically to add http://fortawesome.github.io/Font-Awesome/icons/[Font Awesome icons] on action menu items or buttons.
-====
-
-== Alternatives
-
-As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
-
-== See also
-
-This attribute can also be applied to:
-
-* xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc#cssClass[domain objects]
-* xref:system:generated:index/applib/annotation/PropertyLayout.adoc#cssClass[properties]
-* xref:system:generated:index/applib/annotation/CollectionLayout.adoc#cssClass[collections]
-* xref:system:generated:index/applib/annotation/ParameterLayout.adoc#cssClass[parameters].
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/cssClassFa.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/cssClassFa.adoc
deleted file mode 100644
index c96bcef..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/cssClassFa.adoc
+++ /dev/null
@@ -1,48 +0,0 @@
-[#cssClassFa]
-= `cssClassFa()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-The `cssClassFa` attribute is used to specify the name of a link:http://fortawesome.github.io/Font-Awesome/icons/[Font Awesome icon] name, to be rendered on the action's representation as a button or menu item.
-The related `cssClassFaPosition` attribute specifies the positioning of the icon, to the left or the right of the text.
-
-These attributes can also be applied to xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc#cssClassFa[domain objects] to specify the object's icon.
-
-For example:
-
-[source,java]
-----
-public class ToDoItem {
-
- @ActionLayout(
- cssClassFa="fa-step-backward"
- )
- public ToDoItem previous() {
- // ...
- }
-
- @ActionLayout(
- cssClassFa="fa-step-forward",
- cssClassFaPosition=ActionLayout.CssClassFaPosition.RIGHT
- )
- public ToDoItem next() {
- // ...
- }
-}
-----
-
-There can be multiple "fa-" classes, eg to mirror or rotate the icon.
-There is no need to include the mandatory `fa` "marker" CSS class; it will be automatically added to the list.
-The `fa-` prefix can also be omitted from the class names; it will be prepended to each if required.
-
-== Alternatives
-
-As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
-
-[NOTE]
-====
-The similar xref:system:generated:index/applib/annotation/ActionLayout.adoc#cssClass[`@ActionLayout#cssClass`] annotation attribute is also used as a hint to apply CSS, but for wrapping the representation of an object or object member so that it can be styled in an application-specific way.
-====
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/describedAs.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/describedAs.adoc
deleted file mode 100644
index 50bd58b..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/describedAs.adoc
+++ /dev/null
@@ -1,35 +0,0 @@
-[#describedAs]
-= `describedAs()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-
-The `describedAs` attribute is used to provide a short description of the action to the user.
-In the xref:vw:ROOT:about.adoc[Wicket viewer] it is displayed as a 'tool tip'.
-
-For example:
-
-[source,java]
-----
-public class Customer {
- @ActionLayout(describedAs=
- "Place a repeat order of the last (most recently placed) order")
- public Order placeRepeatOrder(...) { /* ... */ }
-}
-----
-
-== Alternatives
-
-As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
-
-== See also
-
-This attribute can also be specified for:
-
-* xref:system:generated:index/applib/annotation/CollectionLayout.adoc#describedAs[collections]
-* xref:system:generated:index/applib/annotation/PropertyLayout.adoc#describedAs[properties]
-* xref:system:generated:index/applib/annotation/ParameterLayout.adoc#describedAs[parameters]
-* xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc#describedAs[domain objects]
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/hidden.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/hidden.adoc
deleted file mode 100644
index 370d973..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/hidden.adoc
+++ /dev/null
@@ -1,50 +0,0 @@
-[#hidden]
-= `hidden()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-The `hidden` attribute indicates where (in the UI) the action should be hidden from the user.
-
-[TIP]
-====
-It is also possible to use xref:system:generated:index/applib/annotation/Action.adoc#hidden[`@Action#hidden`] to hide an action at the domain layer.
-====
-
-For example:
-
-[source,java]
-----
-public class Customer {
-
- @ActionLayout(hidden=Where.EVERYWHERE)
- public void updateStatus() {
- // ...
- }
- ...
-}
-----
-
-The acceptable values for the `where` parameter are:
-
-* `Where.EVERYWHERE` or `Where.ANYWHERE`
-+
-The action should be hidden at all times.
-
-* `Where.NOWHERE`
-+
-The action should not be hidden.
-
-The other values of the `Where` enum have no meaning for a collection.
-
-
-== Alternatives
-
-As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
-
-== See also
-
-This attribute can also be applied to:
-* xref:system:generated:index/applib/annotation/PropertyLayout.adoc#hidden[properties]
-* xref:system:generated:index/applib/annotation/CollectionLayout.adoc#hidden[collections].
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/named.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/named.adoc
deleted file mode 100644
index 1b956a6..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/named.adoc
+++ /dev/null
@@ -1,44 +0,0 @@
-[#named]
-= `named()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-The `named` attribute explicitly specifies the action's name, overriding the name that would normally be inferred from the Java source code.
-
-[TIP]
-====
-Only use this attribute when the desired name cannot be used in Java source code.
-Examples of that include a name that would be a reserved Java keyword (eg "package"), or a name that has punctuation, eg apostrophes.
-====
-
-For example:
-
-[source,java]
-----
-public class Customer {
- @ActionLayout(named="Get credit rating") // <.>
- public CreditRating obtainCreditRating() {
- // ...
- }
-}
-----
-
-<.> "get" normally indicates a property rather than an action.
-
-== Alternatives
-
-As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
-
-The framework also provides a separate, powerful mechanism for xref:userguide:btb:i18n.adoc[internationalization].
-
-== See also
-
-This attribute can also be specified for:
-
-* xref:system:generated:index/applib/annotation/CollectionLayout.adoc#named[collections]
-* xref:system:generated:index/applib/annotation/PropertyLayout.adoc#named[properties]
-* xref:system:generated:index/applib/annotation/ParameterLayout.adoc#named[parameters]
-* xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc#named[domain objects]
-* xref:system:generated:index/applib/annotation/DomainServiceLayout.adoc#named[domain services].
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/_summary.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/_summary.adoc
deleted file mode 100644
index 8202eff..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/_summary.adoc
+++ /dev/null
@@ -1,13 +0,0 @@
-// TODO - v2 (reconcile/move into javadoc).
-
-//<.> xref:system:generated:index/applib/annotation/Collection.adoc#domainEvent[`domainEvent()`]
-//+
-//The event type to be posted to the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`] to broadcast the collection's business rule checking (hide, disable, validate) and its modification (before and after).
-//
-//<.> xref:system:generated:index/applib/annotation/Collection.adoc#hidden[`hidden()`]
-//+
-//Indicates where (in the UI) the collection should be hidden from the user.
-//
-//<.> xref:system:generated:index/applib/annotation/Collection.adoc#typeOf[`typeOf()`]
-//+
-//Hints as to the run-time type of the objects within that collection (as a fallback)
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/typeOf.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/typeOf.adoc
deleted file mode 100644
index 0c6260f..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/typeOf.adoc
+++ /dev/null
@@ -1,32 +0,0 @@
-[#typeOf]
-= `typeOf()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-The `typeOf` attribute specifies the expected type of an element contained within a collection when for whatever reason the type cannot be inferred from the generic type, or to provide a hint about the actual run-time (as opposed to compile-time) type.
-
-For example:
-
-[source,java]
-----
-import lombok.Getter;
-
-public void Customer {
-
- @Collection(typeOf=Order.class)
- @Getter
- private SortedSet outstandingOrders = ...
-
-}
-----
-
-[TIP]
-====
-In general we recommend that you use generics instead, eg `SortedSet<Order>`.
-====
-
-== See also
-
-This attribute can also be specified for xref:system:generated:index/applib/annotation/Action.adoc#typeOf[actions].
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/_summary.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/_summary.adoc
deleted file mode 100644
index 35a9c13..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/_summary.adoc
+++ /dev/null
@@ -1,34 +0,0 @@
-// TODO - v2 (reconcile/move into javadoc).
-
-//<.> xref:system:generated:index/applib/annotation/CollectionLayout.adoc#cssClass[`cssClass()`]
-//+
-//The css class that a collection should have, to allow more targetted styling in xref:refguide:config:application-specific/application-css.adoc[`application.css`]
-//
-//<.> xref:system:generated:index/applib/annotation/CollectionLayout.adoc#defaultView[`defaultView()`]
-//+
-//Which view is selected by default, if multiple views are available.
-//
-//<.> xref:system:generated:index/applib/annotation/CollectionLayout.adoc#describedAs[`describedAs()`]
-//+
-//Description of this collection, eg to be rendered in a tooltip.
-//
-//<.> xref:system:generated:index/applib/annotation/CollectionLayout.adoc#hidden[`hidden()`]
-//+
-//Indicates where (in the UI) the collection should be hidden from the user.
-//
-//<.> xref:system:generated:index/applib/annotation/CollectionLayout.adoc#named[`named()`]
-//+
-//To override the name inferred from the collection's name in code. +
-//A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
-//
-//<.> `namedEscaped()`
-//+
-//Whether to HTML escape the name of this property.
-//
-//<.> xref:system:generated:index/applib/annotation/CollectionLayout.adoc#paged[`paged()`]
-//+
-//The page size for instances of this class when rendered within a table.
-//
-//<.> xref:system:generated:index/applib/annotation/CollectionLayout.adoc#sortedBy[`sortedBy()`]
-//+
-//Indicates that the elements in the `java.util.SortedSet` collection should be sorted according to a specified `Comparator` rather than their natural sort order.
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/cssClass.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/cssClass.adoc
deleted file mode 100644
index dd10065..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/cssClass.adoc
+++ /dev/null
@@ -1,39 +0,0 @@
-[#cssClass]
-= `cssClass()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-The `cssClass` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the collection. xref:refguide:config:application-specific/application-css.adoc[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
-
-For example:
-
-[source,java]
-----
-import lombok.Getter;
-import lombok.Setter;
-
-public class ToDoItem {
-
- @CollectionLayout(
- cssClass="x-important"
- )
- @Getter @Setter
- private SortedSet<ToDoItem> dependencies = ...;
-
-}
-----
-
-== Alternatives
-
-As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
-
-== See also
-
-This attribute can also be applied to:
-
-* xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc#cssClass[domain objects]
-* xref:system:generated:index/applib/annotation/ActionLayout.adoc#cssClass[actions]
-* xref:system:generated:index/applib/annotation/PropertyLayout.adoc#cssClass[properties]
-* xref:system:generated:index/applib/annotation/ParameterLayout.adoc#cssClass[parameters].
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/defaultView.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/defaultView.adoc
deleted file mode 100644
index 76b2528..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/defaultView.adoc
+++ /dev/null
@@ -1,37 +0,0 @@
-[#defaultView]
-= `defaultView()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-The `defaultView` attribute is used to select which of views should be used by default for a given collection.
-Without any hint the collection is shown collapsed (to save real estate and reduce load time).
-
-For example:
-
-[source,java]
-----
-import lombok.Getter;
-import lombok.Setter;
-
-
-public class BusRoute {
-
- @CollectionLayout( defaultView="table" ) // <.>
- @Getter @Setter
- private SortedSet<BusStop> stops = ...
-
-}
-----
-<.> renders the collection as a table view.
-
-The xref:vw:ROOT:about.adoc[Wicket viewer] allows additional views to be configured to render collections of objects, eg xref:vw:exceldownload:about.adoc[Excel Download] ("excel"), xref:vw:fullcalendar:about.adoc[Fullcalendar] ("fullcalendar") and xref:vw:gmap3:about.adoc[Gmap3] ("map") extensions.
-This attribute can be used to select any of these alternative views instead.
-
-
-
-== Alternatives
-
-As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/describedAs.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/describedAs.adoc
deleted file mode 100644
index 62ac0ce..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/describedAs.adoc
+++ /dev/null
@@ -1,35 +0,0 @@
-[#describedAs]
-= `describedAs()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-The `describedAs` attribute is used to provide a short description of the collection to the user.
-In the xref:vw:ROOT:about.adoc[Wicket viewer] it is displayed as a 'tool tip'.
-
-The `describedAs` attribute can also be specified for xref:system:generated:index/applib/annotation/PropertyLayout.adoc#describedAs[properties], xref:system:generated:index/applib/annotation/ActionLayout.adoc#describedAs[actions], xref:system:generated:index/applib/annotation/ParameterLayout.adoc#describedAs[parameters] and xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc#describedAs[domain objects].
-
-For example:
-
-[source,java]
-----
-import lombok.Getter;
-import lombok.Setter;
-
-public class ToDoItem {
-
- @CollectionLayout(
- describedAs = "Todo items to be completed before this one"
- )
- @Getter @Setter
- private SortedSet<ToDoItem> dependencies = ...
-
-}
-----
-
-
-== Alternatives
-
-As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/hidden.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/hidden.adoc
deleted file mode 100644
index 3c724e7..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/hidden.adoc
+++ /dev/null
@@ -1,62 +0,0 @@
-[#hidden]
-= `hidden()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-The `hidden` attribute indicates where (in the UI) the collection should be hidden from the user.
-
-[TIP]
-====
-It is also possible to use xref:system:generated:index/applib/annotation/Collection.adoc#hidden[`@Collection#hidden`] to hide an action at the domain layer.
-====
-
-For example:
-
-[source,java]
-----
-import lombok.Getter;
-import lombok.Setter;
-
-public class ToDoItem {
-
- @CollectionLayout(
- hidden=Where.EVERYWHERE
- )
- @Getter @Setter
- private SortedSet<ToDoItem> dependencies = ...
-
-}
-----
-
-The acceptable values for the `where` parameter are:
-
-* `Where.EVERYWHERE` or `Where.ANYWHERE`
-+
-The collection should be hidden everywhere.
-
-* `Where.ANYWHERE`
-+
-Synonym for everywhere.
-
-* `Where.OBJECT_FORMS`
-+
-The collection should be hidden when displayed within an object form.
-
-* `Where.NOWHERE`
-+
-The collection should not be hidden.
-
-The other values of the `Where` enum have no meaning for a collection.
-
-== Alternatives
-
-As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
-
-== See also
-
-This attribute can also be applied to:
-
-* xref:system:generated:index/applib/annotation/ActionLayout.adoc#hidden[actions]
-* xref:system:generated:index/applib/annotation/PropertyLayout.adoc#hidden[properties].
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/named.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/named.adoc
deleted file mode 100644
index 7a198b4..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/named.adoc
+++ /dev/null
@@ -1,52 +0,0 @@
-[#named]
-= `named()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-
-The `named` attribute explicitly specifies the collection's name, overriding the name that would normally be inferred from the Java source code.
-
-[TIP]
-====
-We recommend that you only use this attribute when the desired name cannot be used in Java source code.
-Examples of that include a name that would be a reserved Java keyword (eg "package"), or a name that has punctuation, eg apostrophes.
-====
-
-By default the name is HTML escaped.
-To allow HTML markup, set the related `namedEscaped` attribute to `false`.
-
-For example:
-
-[source,java]
-----
-import lombok.Getter;
-import lombok.Setter;
-
-public class ToDoItem {
- @CollectionLayout(
- named="Todo items that are <i>dependencies</i> of this item",
- namedEscaped=false
- )
- @Getter @Setter
- private SortedSet<ToDoItem> dependencies = ...
-
-}
-----
-
-== Alternatives
-
-As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
-
-The framework also provides a separate, powerful mechanism for xref:userguide:btb:i18n.adoc[internationalization].
-
-== See also
-
-This attribute can also be specified for:
-
-* xref:system:generated:index/applib/annotation/ActionLayout.adoc#named[actions]
-* xref:system:generated:index/applib/annotation/PropertyLayout.adoc#named[properties]
-* xref:system:generated:index/applib/annotation/ParameterLayout.adoc#named[parameters]
-* xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc#named[domain objects]
-* xref:system:generated:index/applib/annotation/DomainServiceLayout.adoc#named[domain services].
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/paged.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/paged.adoc
deleted file mode 100644
index 96f25ed..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/paged.adoc
+++ /dev/null
@@ -1,44 +0,0 @@
-[#paged]
-= `paged()`
-r
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-The `paged` attribute specifies the number of rows to display in a (parented) collection.
-
-[WARNING]
-====
-The xref:vro:ROOT:about.adoc[RestfulObjects viewer] currently does not support paging.
-The xref:vw:ROOT:about.adoc[Wicket viewer] _does_ support paging, but note that the paging is performed client-side rather than server-side.
-
-We therefore recommend that large collections should instead be modelled as actions (to allow filtering to be applied to limit the number of rows).
-====
-
-For example:
-
-[source,java]
-----
-import lombok.Getter;
-import lombok.Setter;
-
-public class Order {
-
- @CollectionLayout(paged=15)
- @Getter @Setter
- private SortedSet<OrderLine> details = ...
-
-}
-----
-
-It is also possible to specify a global default for the page size of parented collections, using the xref:refguide:config:sections/isis.applib.adoc#isis.applib.annotation.collection-layout.paged[`isis.applib.annotation.collection-layout.paged`] configuration property.
-
-== Alternatives
-
-As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
-
-== See also
-
-This attribute can also be applied to:
-
-* xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc#paged[domain objects]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/sortedBy.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/sortedBy.adoc
deleted file mode 100644
index 5ee385c..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/sortedBy.adoc
+++ /dev/null
@@ -1,50 +0,0 @@
-[#sortedBy]
-= `sortedBy()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-The `sortedBy` attribute specifies that the collection be ordered using the specified comparator, rather than the natural ordering of the entity (as would usually be the case).
-
-For example:
-
-[source,java]
-----
-import lombok.Getter;
-import lombok.Setter;
-
-public class ToDoItem implements Comparable<ToDoItem> { // <.>
-
- public static class DescriptionComparator // <.>
- implements Comparator<ToDoItem> {
- @Override
- public int compare(ToDoItem o1, ToDoItem o2) {
- return Comparator.comparing(ToDoItem::getDescription)
- .compare(o1, o2);
- }
- }
-
- @CollectionLayout(sortedBy=DependenciesComparator.class) // <.>
- @Getter @Setter
- private SortedSet<ToDoItem> dependencies = ...
-
-}
-----
-<.> the class has a natural ordering (implementation not shown)
-<.> declaration of an alternative comparator class, using the object's `description` property
-<.> ordering of the collection defined as being by this comparator
-
-When the `dependencies` collection is rendered, the elements are sorted by the `description` property first:
-
-image::reference-annotations/CollectionLayout/sortedby-dependencies.png[width="720px"]
-
-[NOTE]
-====
-Note that this screenshot shows an earlier version of the xref:vw:ROOT:about.adoc[Wicket viewer] UI (specifically, pre 1.8.0).
-====
-
-
-== Alternatives
-
-As an alternative to using the annotation, the dynamic xref:userguide:fun:ui.adoc#object-layout[file-based layout] can be used instead.
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/_summary.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/_summary.adoc
deleted file mode 100644
index cf078ed..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/_summary.adoc
+++ /dev/null
@@ -1,6 +0,0 @@
-// TODO - v2 (reconcile/move into javadoc).
-
-// TODO: v2 - previously we split out the discussion of the attributes into separate groups.
-// the global index doesn't suport this, though.
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/actionDomainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/actionDomainEvent.adoc
deleted file mode 100644
index 35a551a..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/actionDomainEvent.adoc
+++ /dev/null
@@ -1,45 +0,0 @@
-[#actionDomainEvent]
-= `actionDomainEvent()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-Whenever an action of a domain object is interacted with then a domain event will be fired, for each of the various phases (hidden, disabled, validated, executing, executed).
-The `@DomainObject#actionDomainEvent` attribute allows a common event domain class to be fired for all of the actions of the domain object.
-This can be overridden for any given action using xref:system:generated:index/applib/annotation/Action.adoc#domainEvent[`@Action#domainEvent`].
-
-For example:
-
-[source,java]
-----
-@DomainObject(
- actionDomainEvent=ToDoItem.ActionDomainEventDefault.class
-)
-public class ToDoItem {
-
- public static class ActionDomainEventDefault extends
- org.apache.isis.applib.events.domain.ActionDomainEvent<Object> { }
- // ...
-
- public void updateDescription(final String description) {
- this.description = description;
- }
-
-}
-----
-
-The specified class will also be used as the event for any mixin action contributed to the class.
-
-Note though one small difference between the events emitted by a "regular" action and a contributed action is that the source of the event (as in `event#getSource()` will be different.
-In the former case it will be the domain object instance, in the latter it will be the mixin object instantiated automatically by the framework.
-
-However, the domain object is available using `event#getMixedIn()`.
-Even easier, `event#getSubject()` will always return the domain object (it returns the `#getMixedIn()` if present, otherwise the `#getSource()`.
-
-[NOTE]
-====
-Action domain events have generic types, with the (first and only) generic type indicating the event's source's type.
-
-Because an event specified at the class level might have either the domain object or a mixin for the domain object as its source, they should therefore use simply `Object` as their generic type.
-====
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/collectionDomainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/collectionDomainEvent.adoc
deleted file mode 100644
index 46b89b9..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/collectionDomainEvent.adoc
+++ /dev/null
@@ -1,66 +0,0 @@
-[#collectionDomainEvent]
-= `collectionDomainEvent`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-Whenever a collection of a domain object is interacted with then a domain event will be fired, for each of the various phases (hidden, disabled, validated, executing, executed).
-the `@DomainObject#collectionDomainEvent` attribute allows a common event domain class to be fired for all of the collections of the domain object.
-This can be overridden for any given collection using xref:system:generated:index/applib/annotation/Collection.adoc#domainEvent[`@Collection#domainEvent()`].
-
-For example:
-
-[source,java]
-----
-import lombok.Getter;
-import lombok.Setter;
-
-@DomainObject(
- collectionDomainEvent=ToDoItem.CollectionDomainEventDefault.class
-)
-public class ToDoItem {
- public static class CollectionDomainEventDefault extends
- org.apache.isis.applib.events.domain.CollectionDomainEvent<Object> { }
- ...
-
- @Getter @Setter
- private Set<Category> categories = new TreeSet<>();
-}
-----
-
-If there is a mixin for the domain object, then this will also honour the domain event.
-For example:
-
-[source,java]
-----
-public class ToDoItem {
-
- @Collection
- @CollectionLayout(defaultView = "table")
- public class related {
-
- public List<ToDoItem> coll() {
- // ...
- }
- }
-
-}
-----
-
-Interactions with the collection contributed by this mixin will emit the domain event of the subject (`ToDoItem`).
-
-One small difference between the events emitted by a "regular" collection and a contributed action is that the source of the event (as in `event#getSource()` will be different.
-In the former case it will be the domain object instance, in the latter it will be the mixin object instantiated automatically by the framework.
-
-However, the domain object is available using `event#getMixedIn()`.
-Even easier, `event#getSubject()` will always return the domain object (it returns the `#getMixedIn()` if present, otherwise the `#getSource()`.
-
-[NOTE]
-====
-Collection domain events have generic types, with the first generic type indicating the event's source's type, and the second generic type indicating the element type.
-
-Because an event specified at the class level might have either the domain object or a mixin for the domain object as its source, they should therefore use simply `Object` as their first generic type.
-
-They should _also_ have `Object` for their second generic type, because the element type of the various collections of the domain object will or could be different.
-====
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/createdLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/createdLifecycleEvent.adoc
deleted file mode 100644
index cfcd029..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/createdLifecycleEvent.adoc
+++ /dev/null
@@ -1,101 +0,0 @@
-[#createdLifecycleEvent]
-= `createdLifecycleEvent()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-Whenever a domain object is instantiated or otherwise becomes known to the framework, a "created" lifecycle event is fired.
-This is typically when the xref:system:generated:index/applib/services/factory/FactoryService.adoc[`FactoryService`]'s `viewModel(...)` method is called.
-
-Subscribers subscribe through the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the object just created.
-The subscriber could then, for example, update the object, eg looking up state from some external datastore.
-
-[TIP]
-====
-It's possible to instantiate objects without firing this lifecycle; just instantiate using its regular constructor, and then use the ``ServiceInjector``'s
-xref:system:generated:index/applib/services/inject/ServiceInjector.adoc[`injectServicesInto(...)`] to manually inject any required domain services.
-====
-
-By default the event raised is `ObjectCreatedEvent.Default`.
-For example:
-
-[source,java]
-----
-@DomainObject
-public class ToDoItemDto {
- ...
-}
-----
-
-The purpose of the `createdLifecycleEvent` attribute is to allows a custom subclass to be emitted instead.
-A similar attribute is available for other lifecycle events.
-
-For example:
-
-[source,java]
-----
-@DomainObjectLayout(
- createdLifecycleEvent=ToDoItem.CreatedEvent.class
-)
-public class ToDoItem {
- public static class CreatedEvent
- extends org.apache.isis.applib.events.lifecycle.ObjectCreatedEvent<ToDoItem> { }
- ...
-}
-----
-
-The benefit is that subscribers can be more targeted as to the events that they subscribe to.
-
-== Subscribers
-
-Subscribers (which must be domain services) subscribe to events posted through the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`].
-
-Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
-
-[source,java]
-----
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SomeSubscriber {
- @EventListener(ObjectCreatedEvent.class)
- public void on(ObjectCreatedEvent ev) {
- if(ev.getSource() instanceof ToDoItem) {
- ...
- }
- }
-}
-----
-
-or can be fine-grained (by subscribing to specific event subtypes):
-
-[source,java]
-----
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SomeSubscriber {
- @EventListener(ToDoItem.ObjectCreatedEvent.class)
- public void on(ToDoItem.ObjectCreatedEvent ev) {
- ...
- }
-}
-----
-
-== Default, Doop and Noop events
-
-If the `createdLifecycleEvent` attribute is not explicitly specified (is left as its default value, `ObjectCreatedEvent.Default`), then the framework will, by default, post an event.
-
-If this is not required, then the `isis.reflector.facet.domainObjectAnnotation.createdLifecycleEvent.postForDefault` configuration property can be set to "false"; this will disable posting.
-
-On the other hand, if the `createdLifecycleEvent` has been explicitly specified to some subclass, then an event will be posted.
-The framework provides `ObjectCreatedEvent.Doop` as such a subclass, so setting the `createdLifecycleEvent` attribute to this class will ensure that the event to be posted, irrespective of the configuration property setting.
-
-And, conversely, the framework also provides `ObjectCreatedEvent.Noop`; if `createdLifecycleEvent` attribute is set to this class, then no event will be posted.
-
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/entityChangePublishing.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/entityChangePublishing.adoc
deleted file mode 100644
index a20f3b8..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/entityChangePublishing.adoc
+++ /dev/null
@@ -1,39 +0,0 @@
-[#entityChangePublishing]
-= `entityChangePublishing()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-CAUTION: TODO: v2 - publishing/auditing got a complete overhaul
-
-The `entityChangePublishing` attribute indicates that if the object is modified, then each of its changed properties should be submitted to the registered xref:system:generated:index/applib/services/publishing/spi/EntityPropertyChangeSubscriber.adoc[`EntityPropertyChangeSubscriber`](s).
-
-The default value for the attribute is `AS_CONFIGURED`, meaning that the xref:refguide:config:sections/isis.applib.adoc#isis.applib.annotation.domain-object.propertyChangePublishing[`isis.applib.annotation.domain-object.propertyChangePublishing`] configuration property is used to determine the whether the action is audited:
-
-* `all` +
-+
-all changed properties of objects are audited
-
-* `none` +
-+
-no changed properties of objects are audited
-
-If there is no configuration property in `application.properties` then auditing is automatically enabled for domain objects.
-
-This default can be overridden on an object-by-object basis; if `entityChangePublishing()` is set to `ENABLED` then changed properties of instances of the domain class are audited irrespective of the configured value; if set to `DISABLED` then the changed properties of instances are _not_ audited, again irrespective of the configured value.
-
-For example:
-
-[source,java]
-----
-@DomainObject(
- entityChangePublishing=Publishing.ENABLED // <.>
-)
-public class Customer {
- ...
-}
-----
-<.> because set to enabled, will be audited irrespective of the configured value.
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/loadedLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/loadedLifecycleEvent.adoc
deleted file mode 100644
index fbaa09e..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/loadedLifecycleEvent.adoc
+++ /dev/null
@@ -1,94 +0,0 @@
-[#loadedLifecycleEvent]
-= `loadedLifecycleEvent()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-Whenever a persistent domain object is loaded from the database, a "loaded" lifecycle event is fired.
-
-Subscribers subscribe through the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object just loaded.
-The subscriber could then, for example, update or default values on the object (eg to support on-the-fly migration scenarios).
-
-By default the event raised is `ObjectLoadedEvent.Default`.
-For example:
-
-[source,java]
-----
-@DomainObject
-public class ToDoItemDto {
- ...
-}
-----
-
-The purpose of the `loadedLifecycleEvent` attribute is to allows a custom subclass to be emitted instead.
-A similar attribute is available for other lifecycle events.
-
-For example:
-
-[source,java]
-----
-@DomainObjectLayout(
- loadedLifecycleEvent=ToDoItem.LoadedEvent.class
-)
-public class ToDoItem {
- public static class LoadedEvent extends
- org.apache.isis.applib.events.lifecycle.ObjectLoadedEvent<ToDoItem> { }
- ...
-}
-----
-
-The benefit is that subscribers can be more targeted as to the events that they subscribe to.
-
-== Subscribers
-
-Subscribers (which must be domain services) subscribe to events posted through the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`].
-
-Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
-
-[source,java]
-----
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SomeSubscriber {
- @EventListener(ObjectLoadedEvent.class)
- public void on(ObjectLoadedEvent ev) {
- if(ev.getSource() instanceof ToDoItem) {
- ...
- }
- }
-}
-----
-
-or can be fine-grained (by subscribing to specific event subtypes):
-
-[source,java]
-----
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SomeSubscriber {
- @EventListener(ToDoItem.ObjectLoadedEvent.class)
- public void on(ToDoItem.ObjectLoadedEvent ev) {
- ...
- }
-}
-----
-
-== Default, Doop and Noop events
-
-If the `loadedLifecycleEvent` attribute is not explicitly specified (is left as its default value, `ObjectLoadedEvent.Default`), then the framework will, by default, post an event.
-
-If this is not required, then the `isis.reflector.facet.domainObjectAnnotation.loadedLifecycleEvent.postForDefault` configuration property can be set to "false"; this will disable posting.
-
-On the other hand, if the `loadedLifecycleEvent` has been explicitly specified to some subclass, then an event will be posted.
-The framework provides `ObjectLoadedEvent.Doop` as such a subclass, so setting the `loadedLifecycleEvent` attribute to this class will ensure that the event to be posted, irrespective of the configuration property setting.
-
-And, conversely, the framework also provides `ObjectLoadedEvent.Noop`; if `loadedLifecycleEvent` attribute is set to this class, then no event will be posted.
-
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/mixinMethod.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/mixinMethod.adoc
deleted file mode 100644
index 1250e5b..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/mixinMethod.adoc
+++ /dev/null
@@ -1,51 +0,0 @@
-[#mixinMethod]
-= `mixinMethod()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-
-The `mixinMethod` attribute specifies the name of the method to be treated as a "reserved" method name, meaning that the mixin's name should instead be inferred from the mixin's type.
-
-For example:
-
-[source,java]
-----
-@DomainObject
-public class Customer {
-
- @DomainObject(
- nature=Nature.MIXIN, // <.>
- mixinMethod="execute" // <.>
- )
- public class placeOrder {
-
- public Customer execute(Product p, int quantity) { // <.>
- // ...
- }
- public String disableExecute() {
- // ...
- }
- public String validate0Execute() {
- // ...
- }
- }
-
-)
-----
-<.> This is a mixin. +
-Alternatively, could have used xref:system:generated:index/applib/annotation/Action.adoc[`@Action`].
-<.> This mixin is using a non-standard method. +
-<.> Same name as the specified mixinMethod.
-Alternatively, when using xref:system:generated:index/applib/annotation/Action.adoc[`@Action`] then method's name defaults to `act`.
-
-This allows all mixins to follow a similar convention, with the name of the mixin inferred entirely from its type ("placeOrder").
-
-When invoked programmatically, the code reads:
-
-[source,java]
-----
-someCustomer.new placeOrder().execute(someProduct, 3);
-----
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/persistedLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/persistedLifecycleEvent.adoc
deleted file mode 100644
index b285b6c..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/persistedLifecycleEvent.adoc
+++ /dev/null
@@ -1,101 +0,0 @@
-[#persistedLifecycleEvent]
-= `persistedLifecycleEvent()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-Whenever a (just created, still transient) domain object has been saved (INSERTed in)to the database, a "persisted" lifecycle event is fired.
-
-Subscribers subscribe through the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object.
-The subscriber could then, for example, maintain an external datastore.
-
-[WARNING]
-====
-The object should _not_ be modified during the persisted callback.
-====
-
-By default the event raised is `ObjectPersistedEvent.Default`.
-For example:
-
-[source,java]
-----
-@DomainObject
-public class ToDoItemDto {
- ...
-}
-----
-
-The purpose of the `persistedLifecycleEvent` attribute is to allows a custom subclass to be emitted instead.
-A similar attribute is available for other lifecycle events.
-
-For example:
-
-[source,java]
-----
-@DomainObjectLayout(
- persistedLifecycleEvent=ToDoItem.PersistedEvent.class
-)
-public class ToDoItem {
-
- public static class PersistedEvent extends
- org.apache.isis.applib.events.lifecycle.ObjectPersistedEvent<ToDoItem> { }
-
- // ...
-}
-----
-
-The benefit is that subscribers can be more targeted as to the events that they subscribe to.
-
-== Subscribers
-
-Subscribers (which must be domain services) subscribe to events posted through the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`].
-
-Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
-
-[source,java]
-----
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SomeSubscriber {
- @EventListener(ObjectPersistedEvent.class)
- public void on(ObjectPersistedEvent ev) {
- if(ev.getSource() instanceof ToDoItem) {
- ...
- }
- }
-}
-----
-
-or can be fine-grained (by subscribing to specific event subtypes):
-
-[source,java]
-----
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SomeSubscriber {
- @EventListener(ToDoItem.ObjectPersistedEvent.class)
- public void on(ToDoItem.ObjectPersistedEvent ev) {
- ...
- }
-}
-----
-
-== Default, Doop and Noop events
-
-If the `persistedLifecycleEvent` attribute is not explicitly specified (is left as its default value, `ObjectPersistedEvent.Default`), then the framework will, by default, post an event.
-
-If this is not required, then the `isis.reflector.facet.domainObjectAnnotation.persistedLifecycleEvent.postForDefault` configuration property can be set to "false"; this will disable posting.
-
-On the other hand, if the `persistedLifecycleEvent` has been explicitly specified to some subclass, then an event will be posted.
-The framework provides `ObjectPersistedEvent.Doop` as such a subclass, so setting the `persistedLifecycleEvent` attribute to this class will ensure that the event to be posted, irrespective of the configuration property setting.
-
-And, conversely, the framework also provides `ObjectPersistedEvent.Noop`; if `persistedLifecycleEvent` attribute is set to this class, then no event will be posted.
-
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/persistingLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/persistingLifecycleEvent.adoc
deleted file mode 100644
index 6f78dfb..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/persistingLifecycleEvent.adoc
+++ /dev/null
@@ -1,103 +0,0 @@
-[#persistingLifecycleEvent]
-= `persistingLifecycleEvent()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-Whenever a (just created, still transient) domain object is about to be saved (INSERTed in)to the database, a "persisting" lifecycle event is fired.
-
-Subscribers subscribe through the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object.
-The subscriber could then, for example, update the object, or it could use it maintain an external datastore.
-One possible application is to maintain a full-text search database using link:https://lucene.apache.org/[Apache Lucene] or similar.
-
-[NOTE]
-====
-Another use case is to maintain "last updated by"/"last updated at" properties.
-While you can roll your own, note that the framework provides built-in support for this use case through the xref:applib-classes:roles-mixins-contributees/roles.adoc#Timestampable[`Timestampable`] role interface.
-====
-
-By default the event raised is `ObjectPersistingEvent.Default`.
-For example:
-
-[source,java]
-----
-@DomainObject
-public class ToDoItemDto {
- ...
-}
-----
-
-The purpose of the `persistingLifecycleEvent` attribute is to allows a custom subclass to be emitted instead.
-A similar attribute is available for other lifecycle events.
-
-For example:
-
-[source,java]
-----
-@DomainObjectLayout(
- persistingLifecycleEvent=ToDoItem.PersistingEvent.class
-)
-public class ToDoItem {
-
- public static class PersistingEvent extends
- org.apache.isis.applib.events.lifecycle.ObjectPersistingEvent<ToDoItem> { }
-
- // ...
-}
-----
-
-The benefit is that subscribers can be more targeted as to the events that they subscribe to.
-
-== Subscribers
-
-Subscribers (which must be domain services) subscribe to events posted through the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`].
-
-Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
-
-[source,java]
-----
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SomeSubscriber {
- @EventListener(ObjectPersistingEvent.class)
- public void on(ObjectPersistingEvent ev) {
- if(ev.getSource() instanceof ToDoItem) {
- ...
- }
- }
-}
-----
-
-or can be fine-grained (by subscribing to specific event subtypes):
-
-[source,java]
-----
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SomeSubscriber {
- @EventListener(ToDoItem.ObjectPersistingEvent.class)
- public void on(ToDoItem.ObjectPersistingEvent ev) {
- // ...
- }
-}
-----
-
-== Default, Doop and Noop events
-
-If the `persistingLifecycleEvent` attribute is not explicitly specified (is left as its default value, `ObjectPersistingEvent.Default`), then the framework will, by default, post an event.
-
-If this is not required, then the `isis.reflector.facet.domainObjectAnnotation.persistingLifecycleEvent.postForDefault` configuration property can be set to "false"; this will disable posting.
-
-On the other hand, if the `persistingLifecycleEvent` has been explicitly specified to some subclass, then an event will be posted.
-The framework provides `ObjectPersistingEvent.Doop` as such a subclass, so setting the `persistingLifecycleEvent` attribute to this class will ensure that the event to be posted, irrespective of the configuration property setting.
-
-And, conversely, the framework also provides `ObjectPersistingEvent.Noop`; if `persistingLifecycleEvent` attribute is set to this class, then no event will be posted.
-
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/propertyDomainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/propertyDomainEvent.adoc
deleted file mode 100644
index 92ebbe2..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/propertyDomainEvent.adoc
+++ /dev/null
@@ -1,63 +0,0 @@
-[#propertyDomainEvent]
-= `propertyDomainEvent()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-Whenever a property of a domain object is interacted with then a domain event will be fired, for each of the various phases (hidden, disabled, validated, executing, executed).
-The `@DomainObject#propertyDomainEvent` attribute allows a common event domain class to be fired for all of the properties of the domain object.
-This can be overridden for any given property using xref:system:generated:index/applib/annotation/Property.adoc#domainEvent[`@Property#domainEvent()`].
-
-For example:
-
-[source,java]
-----
-@DomainObject(
- propertyDomainEvent=ToDoItem.PropertyDomainEventDefault.class
-)
-public class ToDoItem {
- public static class PropertyDomainEventDefault
- extends org.apache.isis.applib.events.domain.PropertyDomainEvent<Object> { }
- ...
-
- @Getter @Setter
- private String description;
-}
-----
-
-If there is a mixin for the domain object, then this will also honour the domain event.
-For example:
-
-[source,java]
-----
-@Property(
- propertyDomainEvent=ToDoItem_priority.PropertyDomainEventDefault.class
-)
-public class ToDoItem_priority {
- private final ToDoItem todoItem;
- // constructor omitted
-
- public static class PropertyDomainEventDefault
- extends org.apache.isis.applib.events.domain.PropertyDomainEvent<Object> { }
-
- public Integer prop() { /* ... */ }
-}
-----
-
-Interactions with the property contributed by this mixin will emit the domain event of the subject (`ToDoItem`).
-
-One small difference between the events emitted by a "regular" property and a contributed property is that the source of the event (as in `event#getSource()` will be different.
-In the former case it will be the domain object instance, in the latter it will be the mixin object instantiated automatically by the framework.
-
-However, the domain object is available using `event#getMixedIn()`.
-Even easier, `event#getSubject()` will always return the domain object (it returns the `#getMixedIn()` if present, otherwise the `#getSource()`.
-
-[NOTE]
-====
-Property domain events have generic types, with the first generic type indicating the event's source's type, and the second generic type indicating the property return type.
-
-Because an event specified at the class level might have either the domain object or a mixin for the domain object as its source, they should therefore use simply `Object` as their first generic type.
-
-They should _also_ have `Object` for their second generic type, because the return type of the various properties of the domain object will or could be different.
-====
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/removingLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/removingLifecycleEvent.adoc
deleted file mode 100644
index 43588a0..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/removingLifecycleEvent.adoc
+++ /dev/null
@@ -1,103 +0,0 @@
-[#removingLifecycleEvent]
-= `removingLifecycleEvent()`
-r
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-Whenever a (persistent) domain object is about to be removed (DELETEd) from the database, a "removing" lifecycle event is fired.
-
-Subscribers subscribe through the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object.
-The subscriber could then, for example, could use it maintain an external datastore.
-One possible application is to maintain a full-text search database using link:https://lucene.apache.org/[Apache Lucene] or similar.
-
-[NOTE]
-====
-Another use case is to maintain "last updated by"/"last updated at" properties.
-While you can roll your own, note that the framework provides built-in support for this use case through the xref:applib-classes:roles-mixins-contributees/roles.adoc#Timestampable[`Timestampable`] role interface.
-====
-
-By default the event raised is `ObjectRemovingEvent.Default`.
-For example:
-
-[source,java]
-----
-@DomainObject
-public class ToDoItemDto {
- ...
-}
-----
-
-The purpose of the `removingLifecycleEvent` attribute is to allows a custom subclass to be emitted instead.
-A similar attribute is available for other lifecycle events.
-
-For example:
-
-[source,java]
-----
-@DomainObjectLayout(
- removingLifecycleEvent=ToDoItem.RemovingEvent.class
-)
-public class ToDoItem {
-
- public static class RemovingEvent extends
- org.apache.isis.applib.events.lifecycle.ObjectRemovingEvent<ToDoItem> { }
-
- // ...
-}
-----
-
-The benefit is that subscribers can be more targeted as to the events that they subscribe to.
-
-== Subscribers
-
-Subscribers (which must be domain services) subscribe to events posted through the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`].
-
-Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
-
-[source,java]
-----
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SomeSubscriber {
- @EventListener(ObjectRemovingEvent.class)
- public void on(ObjectRemovingEvent ev) {
- if(ev.getSource() instanceof ToDoItem) {
- ...
- }
- }
-}
-----
-
-or can be fine-grained (by subscribing to specific event subtypes):
-
-[source,java]
-----
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SomeSubscriber {
- @EventListener(ToDoItem.ObjectRemovingEvent.class)
- public void on(ToDoItem.ObjectRemovingEvent ev) {
- ...
- }
-}
-----
-
-== Default, Doop and Noop events
-
-If the `removingLifecycleEvent` attribute is not explicitly specified (is left as its default value, `ObjectRemovingEvent.Default`), then the framework will, by default, post an event.
-
-If this is not required, then the `isis.reflector.facet.domainObjectAnnotation.removingLifecycleEvent.postForDefault` configuration property can be set to "false"; this will disable posting.
-
-On the other hand, if the `removingLifecycleEvent` has been explicitly specified to some subclass, then an event will be posted.
-The framework provides `ObjectRemovingEvent.Doop` as such a subclass, so setting the `removingLifecycleEvent` attribute to this class will ensure that the event to be posted, irrespective of the configuration property setting.
-
-And, conversely, the framework also provides `ObjectRemovingEvent.Noop`; if `removingLifecycleEvent` attribute is set to this class, then no event will be posted.
-
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/updatedLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/updatedLifecycleEvent.adoc
deleted file mode 100644
index bbf28d6..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/updatedLifecycleEvent.adoc
+++ /dev/null
@@ -1,100 +0,0 @@
-[#updatedLifecycleEvent]
-= `updatedLifecycleEvent()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-Whenever a (persistent) domain object has been modified and has been updated in the database, an "updated" lifecycle event is fired.
-
-Subscribers subscribe through the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object.
-
-[WARNING]
-====
-The object should _not_ be modified during the updated callback.
-====
-
-By default the event raised is `ObjectUpdatedEvent.Default`.
-For example:
-
-[source,java]
-----
-@DomainObject
-public class ToDoItemDto {
- ...
-}
-----
-
-The purpose of the `updatedLifecycleEvent` attribute is to allows a custom subclass to be emitted instead.
-A similar attribute is available for other lifecycle events.
-
-For example:
-
-[source,java]
-----
-@DomainObjectLayout(
- updatedLifecycleEvent=ToDoItem.UpdatedEvent.class
-)
-public class ToDoItem {
-
- public static class UpdatedEvent extends
- org.apache.isis.applib.events.lifecycle.ObjectUpdatedEvent<ToDoItem> { }
-
- // ...
-}
-----
-
-The benefit is that subscribers can be more targeted as to the events that they subscribe to.
-
-== Subscribers
-
-Subscribers (which must be domain services) subscribe to events posted through the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`].
-
-Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
-
-[source,java]
-----
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SomeSubscriber {
- @EventListener(ObjectUpdatedEvent.clas)
- public void on(ObjectUpdatedEvent ev) {
- if(ev.getSource() instanceof ToDoItem) {
- ...
- }
- }
-}
-----
-
-or can be fine-grained (by subscribing to specific event subtypes):
-
-[source,java]
-----
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SomeSubscriber {
- @EventListener(ToDoItem.ObjectUpdatedEvent.class)
- public void on(ToDoItem.ObjectUpdatedEvent ev) {
- ...
- }
-}
-----
-
-== Default, Doop and Noop events
-
-If the `updatedLifecycleEvent` attribute is not explicitly specified (is left as its default value, `ObjectUpdatedEvent.Default`), then the framework will, by default, post an event.
-
-If this is not required, then the `isis.reflector.facet.domainObjectAnnotation.updatedLifecycleEvent.postForDefault` configuration property can be set to "false"; this will disable posting.
-
-On the other hand, if the `updatedLifecycleEvent` has been explicitly specified to some subclass, then an event will be posted.
-The framework provides `ObjectUpdatedEvent.Doop` as such a subclass, so setting the `updatedLifecycleEvent` attribute to this class will ensure that the event to be posted, irrespective of the configuration property setting.
-
-And, conversely, the framework also provides `ObjectUpdatedEvent.Noop`; if `updatedLifecycleEvent` attribute is set to this class, then no event will be posted.
-
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/updatingLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/updatingLifecycleEvent.adoc
deleted file mode 100644
index 4ffb0d3..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/updatingLifecycleEvent.adoc
+++ /dev/null
@@ -1,104 +0,0 @@
-[#updatingLifecycleEvent]
-= `updatingLifecycleEvent()`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-
-Whenever a (persistent) domain object has been modified and is about to be updated to the database, an "updating" lifecycle event is fired.
-
-Subscribers subscribe through the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object.
-The subscriber could then, for example, update the object, or it could use it maintain an external datastore.
-One possible application is to maintain a full-text search database using link:https://lucene.apache.org/[Apache Lucene] or similar.
-
-[NOTE]
-====
-Another use case is to maintain "last updated by"/"last updated at" properties.
-While you can roll your own, note that the framework provides built-in support for this use case through the
-xref:applib-classes:roles-mixins-contributees/roles.adoc#Timestampable[`Timestampable`] role interface.
-====
-
-By default the event raised is `ObjectUpdatingEvent.Default`.
-For example:
-
-[source,java]
-----
-@DomainObject
-public class ToDoItemDto {
- ...
-}
-----
-
-The purpose of the `updatingLifecycleEvent` attribute is to allows a custom subclass to be emitted instead.
-A similar attribute is available for other lifecycle events.
-
-For example:
-
-[source,java]
-----
-@DomainObjectLayout(
- updatingLifecycleEvent=ToDoItem.UpdatingEvent.class
-)
-public class ToDoItem {
-
- public static class UpdatingEvent extends
- org.apache.isis.applib.events.lifecycle.ObjectUpdatingEvent<ToDoItem> { }
-
- // ...
-}
-----
-
-The benefit is that subscribers can be more targeted as to the events that they subscribe to.
-
-== Subscribers
-
-Subscribers (which must be domain services) subscribe to events posted through the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`].
-
-Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
-
-[source,java]
-----
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SomeSubscriber {
- @EventListener(ObjectUpdatingEvent.class)
- public void on(ObjectUpdatingEvent ev) {
- if(ev.getSource() instanceof ToDoItem) {
- ...
- }
- }
-}
-----
-
-or can be fine-grained (by subscribing to specific event subtypes):
-
-[source,java]
-----
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SomeSubscriber {
- @EventListener(ToDoItem.ObjectUpdatingEvent.class)
- public void on(ToDoItem.ObjectUpdatingEvent ev) {
- ...
- }
-}
-----
-
-== Default, Doop and Noop events
-
-If the `updatingLifecycleEvent` attribute is not explicitly specified (is left as its default value, `ObjectUpdatingEvent.Default`), then the framework will, by default, post an event.
-
-If this is not required, then the `isis.reflector.facet.domainObjectAnnotation.updatingLifecycleEvent.postForDefault` configuration property can be set to "false"; this will disable posting.
-
-On the other hand, if the `updatingLifecycleEvent` has been explicitly specified to some subclass, then an event will be posted.
-The framework provides `ObjectUpdatingEvent.Doop` as such a subclass, so setting the `updatingLifecycleEvent` attribute to this class will ensure that the event to be posted, irrespective of the configuration property setting.
-
-And, conversely, the framework also provides `ObjectUpdatingEvent.Noop`; if `updatingLifecycleEvent` attribute is set to this class, then no event will be posted.
-
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/_summary.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/_summary.adoc
deleted file mode 100644
index e69de29..0000000
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainService/_summary.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainService/_summary.adoc
deleted file mode 100644
index ee8a91d..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainService/_summary.adoc
+++ /dev/null
@@ -1,11 +0,0 @@
-// TODO - v2 (reconcile/move into javadoc).
-
-//<.> xref:system:generated:index/applib/annotation/DomainService.adoc#nature[`nature()`]
-//+
-//Whether the actions of this domain service should be rendered in UI menus only, or the xref:vro:ROOT:about.adoc[RestfulObjects] REST API only, or both
-//
-//<.> xref:system:generated:index/applib/annotation/DomainService.adoc#objectType[`objectType()`]
-//+
-//Equivalent to xref:system:generated:index/applib/annotation/DomainObject.adoc#objectType[`@DomainObject#objectType()`], specifies the objectType of the service.
-//+
-//The instanceId for services is always "1".
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainServiceLayout/_summary.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainServiceLayout/_summary.adoc
deleted file mode 100644
index 3fc5424..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainServiceLayout/_summary.adoc
+++ /dev/null
@@ -1,14 +0,0 @@
-// TODO - v2 (reconcile/move into javadoc).
-
-//<.> xref:system:generated:index/applib/annotation/DomainServiceLayout.adoc#menuBar[`menuBar()`]
-//+
-//The menubar in which the menu that holds this service's actions should reside:
-//+
-//[source,java]
-//----
-//include::refguide:applib-ant:example$annotation/DomainServiceLayout.java[tags="refguide-menu-bar",indent=0]
-//----
-//
-//<.> xref:system:generated:index/applib/annotation/DomainServiceLayout.adoc#named[`named()`]
-//+
-//Name of this class (overriding the name derived from its name in code)
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/MemberOrder/_summary.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/MemberOrder/_summary.adoc
deleted file mode 100644
index f8d6600..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/MemberOrder/_summary.adoc
+++ /dev/null
@@ -1,10 +0,0 @@
-// TODO - v2 (reconcile/move into javadoc).
-
-//<.> xref:system:generated:index/applib/annotation/MemberOrder.adoc#name[`name()`]
-//+
-//Names a group of (property) members.
-//All properties with this name will be grouped together.
-//
-//<.> xref:system:generated:index/applib/annotation/MemberOrder.adoc#sequence[`sequence()`]
-//+
-//Defines an ordering for members, within their container.
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/_summary.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/_summary.adoc
deleted file mode 100644
index c02691c..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/_summary.adoc
+++ /dev/null
@@ -1,32 +0,0 @@
-// TODO - v2 (reconcile/move into javadoc).
-
-//<.> xref:system:generated:index/applib/annotation/Parameter.adoc#fileAccept[`fileAccept()`]
-//+
-//Hints the file type (media type or file extension) to be uploaded for xref:applib-classes:value-types.adoc#Blob[`Blob`]
-//or xref:applib-classes:value-types.adoc#Clob[`Clob`]. +
-// +
-//Note that this does not prevent the user from uploading some other file type; rather it merely defaults the file type in the file open dialog.
-//
-//<.> xref:system:generated:index/applib/annotation/Parameter.adoc#maxLength[`maxLength()`]
-//+
-//Maximum number of characters for string parameters; ignored otherwise
-//
-//<.> xref:system:generated:index/applib/annotation/Parameter.adoc#mustSatisfy[`mustSatisfy()`]
-//+
-//Implementation of `o.a.i.applib.spec.Specification`, allowing arbitrary validation to be applied.
-//
-//<.> xref:system:generated:index/applib/annotation/Parameter.adoc#optionality[`optionality()`]
-//+
-//Specifies a parameter is optional rather than mandatory
-//
-//<.> xref:system:generated:index/applib/annotation/Parameter.adoc#regexPattern[regexPattern()]
-//+
-//Validates the contents of a string parameter against the regular expression pattern
-//
-//<.> `regexPatternFlags()`
-//+
-//Value of flags as normally passed to `java.util.regex.Pattern#compile(...)`, modifying the compilation of the regular expression
-//
-//<.> `regexPatternReplacement()`
-//+
-//Unused.
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/_summary.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/_summary.adoc
deleted file mode 100644
index 27267aa..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/_summary.adoc
+++ /dev/null
@@ -1,45 +0,0 @@
-// TODO - v2 (reconcile/move into javadoc).
-
-
-//<.> xref:system:generated:index/applib/annotation/ParameterLayout.adoc#cssClass[`cssClass()`]
-//+The css class that a parameter should have, to allow more targetted styling in xref:refguide:config:application-specific/application-css.adoc[`application.css`]
-//
-//<.> xref:system:generated:index/applib/annotation/ParameterLayout.adoc#describedAs[`describedAs()`]
-//+
-//Description of this parameter, eg to be rendered in a tooltip.
-//
-//<.> xref:system:generated:index/applib/annotation/ParameterLayout.adoc#labelPosition[`labelPosition()`]
-//In forms, the positioning of the label relative to the property value. +
-//=
-//Default is `LEFT`, unless xref:system:generated:index/applib/annotation/ParameterLayout.adoc#multiLine[`multiLine`] in which case `TOP`.
-//The value `RIGHT` is only supported for boolean parameters.
-//
-//<.> xref:system:generated:index/applib/annotation/ParameterLayout.adoc#multiLine[`multiLine()`]
-//+
-//For string parameters, render as a text area over specified number of lines.
-//+
-//If set > 1, then then xref:system:generated:index/applib/annotation/ParameterLayout.adoc#labelPosition[`labelPosition`] defaults to `TOP`.
-//
-//<.> xref:system:generated:index/applib/annotation/ParameterLayout.adoc#named[`named()`]
-//+
-//The name of this parameter.
-//+
-//[TIP]
-//====
-//There's no need to name the action parameters if the code is compiled using the `-parameters` flag to the Java compiler (javac); the framework will then use the name of the parameter itself.
-//
-//The only reason then to name the parameter is if the desired name is a reserved Java keyword, such as `default` or `package`.
-//====
-//
-//<.> `namedEscaped()`
-//+
-//Whether to HTML escape the name of this parameter.
-//
-//<.> xref:system:generated:index/applib/annotation/ParameterLayout.adoc#renderDay[`renderDay()`]
-//+
-//For date parameters only, render the date as one day prior to the actually stored date (eg the end date of an open interval into a closed interval)
-//
-//<.> xref:system:generated:index/applib/annotation/ParameterLayout.adoc#typicalLength[`typicalLength()`]
-//+
-//The typical entry length of a field, use to determine the optimum width for display
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/_summary.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/_summary.adoc
deleted file mode 100644
index 9118712..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/_summary.adoc
+++ /dev/null
@@ -1,73 +0,0 @@
-// TODO - v2 (reconcile/move into javadoc).
-
-//<.> `commandDtoProcessor()`
-//+
-//If the xref:extensions:command-replay:about.adoc[Command Replay] extension is being used (for regression testing), provides a mechanism to process the `CommandDto` before being replicated from primary to secondary system
-//
-//<.> xref:system:generated:index/applib/annotation/Property.adoc#commandPublishing[`commandPublishing()`]
-//+
-//Whether the editing of a property should be published to registered xref:system:generated:index/applib/services/publishing/spi/CommandSubscriber.adoc[`CommandSubscriber`]s as a `Command` object, that captures the details of this edit. Typically so it can be logged using the xref:extensions:command-log:about.adoc[Command Log] extension (for auditing or for regression testing using xref:extensions:command-replay:about.adoc[Command Replay]).
-//
-//<.> xref:system:generated:index/applib/annotation/Property.adoc#domainEvent[`domainEvent()`]
-//+
-//The event type to be posted to the xref:system:generated:index/applib/services/eventbus/EventBusService.adoc[`EventBusService`] to broadcast the property's business rule checking (hide, disable, validate) and its modification (before and after).
-//
-//<.> xref:system:generated:index/applib/annotation/Property.adoc#editing[`editing()`]
-//+
-//Whether a property can be modified or cleared from within the UI
-//
-//<.> `editingDisabledReason()`
-//+
-//The reason that this property cannot be modified.
-//
-//<.> xref:system:generated:index/applib/annotation/Property.adoc#executionPublishing[`executionPublishing()`]
-//+
-//Whether the editing of a property should be published to registered xref:system:generated:index/applib/services/publishing/spi/ExecutionSubscriber.adoc[`ExecutionSubscriber`]s as an `Execution` object, that captures the details of this edit.
-//
-//<.> xref:system:generated:index/applib/annotation/Property.adoc#fileAccept[`fileAccept()`]
-//+
-//Hints the file type (media type or file extension) to be uploaded to a xref:applib-classes:value-types.adoc#Blob[`Blob`]
-// or xref:applib-classes:value-types.adoc#Clob[`Clob`]. +
-//+
-//Note that this does not prevent the user from uploading some other file type; rather it merely defaults the file type in the file open dialog.
-//
-//<.> xref:system:generated:index/applib/annotation/Property.adoc#hidden[`hidden()`]
-//+
-//Indicates where (in the UI) the property should be hidden from the user.
-//
-//<.> xref:system:generated:index/applib/annotation/Property.adoc#maxLength[`maxLength()`]
-//+
-//Maximum number of characters for string parameters; ignored otherwise +
-//+
-//TIP: In many/most cases you should however use xref:refguide:applib-ant:Column.adoc[`@Column#length()`]
-//
-//<.> xref:system:generated:index/applib/annotation/Property.adoc#snapshot[`snapshot()`]
-//+
-//Whether to exclude from snapshots. +
-//
-//<.> xref:system:generated:index/applib/annotation/Property.adoc#mustSatisfy[`mustSatisfy()`]
-//+
-//Implementation of `o.a.i.applib.spec.Specification` that allows arbitrary validation to be applied.
-//
-//<.> xref:system:generated:index/applib/annotation/Property.adoc#optionality[`optionality()`]
-//+
-//Specifies a property is optional rather than mandatory
-//+
-//TIP: In many/most cases you should however use xref:refguide:applib-ant:Column.adoc[`@Column#allowsNull()`]
-//
-//<.> xref:system:generated:index/applib/annotation/Property.adoc#projecting[`projecting()`]
-//+
-//Indicates that owning object is a view model that is acting as a projection of the underlying entity referenced by this property.
-//
-//<.> xref:system:generated:index/applib/annotation/Property.adoc#regexPattern[`regexPattern()`]
-//+
-//Validates the contents of a string parameter against the regular expression pattern
-//
-//<.> `regexPatternFlags()`
-//+
-//Value of flags as normally passed to `java.util.regex.` +
-//`Pattern#compile(...)`, modifying the compilation of the regular expression
-//
-//<.> `regexPatternReplacement()`
-//+
-//Unused.
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/_summary.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/_summary.adoc
deleted file mode 100644
index 52fe736..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/_summary.adoc
+++ /dev/null
@@ -1,60 +0,0 @@
-// TODO - v2 (reconcile/move into javadoc).
-
-//<.> xref:system:generated:index/applib/annotation/PropertyLayout.adoc#cssClass[`cssClass()`]
-//+
-//The css class that a property should have, to allow more targetted styling in xref:refguide:config:application-specific/application-css.adoc[`application.css`]
-//
-//<.> xref:system:generated:index/applib/annotation/PropertyLayout.adoc#describedAs[`describedAs()`]
-//+
-//Description of this property, eg to be rendered in a tooltip.
-//
-//<.> xref:system:generated:index/applib/annotation/PropertyLayout.adoc#hidden[`hidden()`]
-//+
-//Indicates where (in the UI) the property should be hidden from the user.
-//
-//<.> xref:system:generated:index/applib/annotation/PropertyLayout.adoc#labelPosition[`labelPosition()`]
-//+
-//In forms, the positioning of the label relative to the property value. +
-//+
-//Defaults is `LEFT`, unless xref:system:generated:index/applib/annotation/PropertyLayout.adoc#multiLine[`multiLine`] in which case `TOP`.
-//The value `RIGHT` is only supported for boolean properties.
-//+
-//It is also possible to change the default through a xref:refguide:config:configuring-core.adoc#isis-viewers-propertyLayout-labelPosition[configuration property]
-//
-//<.> xref:system:generated:index/applib/annotation/PropertyLayout.adoc#multiLine[`multiLine()`]
-//+
-//For string properties, render as a text area over multiple lines. +
-//+
-//If set > 1, then xref:system:generated:index/applib/annotation/PropertyLayout.adoc#labelPosition[`labelPosition`] defaults to TOP.
-//
-//<.> xref:system:generated:index/applib/annotation/PropertyLayout.adoc#named[`named()`]
-//+
-//To override the name inferred from the collection's name in code. +
-//+
-//A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
-//
-//<.> `namedEscaped()`
-//+
-//Whether to HTML escape the name of this property.
-//
-//<.> xref:system:generated:index/applib/annotation/PropertyLayout.adoc#navigable[`navigable()`]
-//+
-//Whether a property should be used as the navigable parent (parent breadcrumb) of this object
-//
-//<.> xref:system:generated:index/applib/annotation/PropertyLayout.adoc#promptStyle[`promptStyle()`]
-//+
-//How a property prompt should be displayed within the UI
-//
-//<.> xref:system:generated:index/applib/annotation/PropertyLayout.adoc#renderDay[`renderDay()`]
-//+
-//For date properties only, render the date as one day prior to the actually stored date.
-//
-//<.> xref:system:generated:index/applib/annotation/PropertyLayout.adoc#repainting[`repainting()`]
-//+
-//Indicates that the value held by the property never changes over time (even if other properties of the object do change).
-//+
-//Used as a hint to the viewer not to redraw the property if possible after an AJAX update.
-//
-//<.> xref:system:generated:index/applib/annotation/PropertyLayout.adoc#typicalLength[`typicalLength()`]
-//+
-//The typical entry length of a field, use to determine the optimum width for display
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/Action.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/Action.java
index 266015c..c7b8eb6 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/Action.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/Action.java
@@ -40,6 +40,11 @@ import org.apache.isis.applib.value.Clob;
* Groups together all domain-specific metadata for an invokable action on a
* domain object or domain service.
*
+ * @see Property
+ * @see Collection
+ * @see DomainObject
+ * @see ActionLayout
+ *
* @since 1.x {@index}
*/
@Inherited
@@ -122,6 +127,12 @@ public @interface Action {
* {@link org.apache.isis.applib.services.eventbus.EventBusService} using a custom (subclass of)
* {@link org.apache.isis.applib.events.domain.ActionDomainEvent}.
*
+ * <p>
+ * Subscribers of this event can interact with the business rule
+ * checking (hide, disable, validate) and its modification (before and
+ * after).
+ * </p>
+ *
* <p>For example:
* </p>
*
@@ -213,8 +224,8 @@ public @interface Action {
*
* <p>
* This is only provided as a fallback; usually the framework can infer
- * the element type of the collection from the collection method's
- * generic type.
+ * the element type of the collection from the action method's
+ * return type (eg if it returns <code>Collection</code> instead of <code>Collection<Customer></code>)
* </p>
*
* @see Collection#typeOf()
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/ActionLayout.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/ActionLayout.java
index 8366c49..fd80770 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/ActionLayout.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/ActionLayout.java
@@ -31,6 +31,12 @@ import org.apache.isis.applib.layout.component.CssClassFaPosition;
/**
* Layout hints for actions.
+ *
+ * @see PropertyLayout
+ * @see CollectionLayout
+ * @see DomainObjectLayout
+ * @see Action
+ *
* @since 1.x {@index}
*/
@Inherited
@@ -63,6 +69,7 @@ public @interface ActionLayout {
* </p>
*
* @see PropertyLayout#cssClass()
+ * @see ParameterLayout#cssClass()
* @see CollectionLayout#cssClass()
* @see DomainObjectLayout#cssClass()
*/
@@ -96,6 +103,7 @@ public @interface ActionLayout {
* Description of this action, eg to be rendered in a tooltip.
*
* @see PropertyLayout#describedAs()
+ * @see ParameterLayout#describedAs()
* @see CollectionLayout#describedAs()
* @see DomainObjectLayout#describedAs()
*/
@@ -111,16 +119,24 @@ public @interface ActionLayout {
/**
* Name of this action (overriding the name derived from its name in code).
*
+ * <p>
+ * A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
+ * </p>
+ *
* @see PropertyLayout#named()
+ * @see ParameterLayout#named()
* @see CollectionLayout#named()
* @see DomainObjectLayout#named()
+ * @see DomainServiceLayout#named()
*/
String named()
default "";
/**
- * For actions that are associated with a property, indicates the positioning of the
- * action's button relative to the property.
+ * For actions that are associated with a property (using either
+ * {@link Action#associateWith()} or {@link MemberOrder#name()},
+ * indicates the positioning of the action's button relative to the
+ * property.
*
* <p>
* Ignored if the action has not been associated with a property.
@@ -139,14 +155,23 @@ public @interface ActionLayout {
}
/**
- * How this parameters for this action are prompted, either {@link PromptStyle#DIALOG dialog} or {@link PromptStyle#INLINE inline}.
+ * How the parameters for this action are prompted, either {@link PromptStyle#DIALOG dialog} or
+ * {@link PromptStyle#INLINE inline}.
*/
PromptStyle promptStyle()
default PromptStyle.AS_CONFIGURED;
/**
- * If the action returns its target, then determines whether to update the page or
- * instead to redirect (forcing a re-rendering of a new page).
+ * If the action returns its target, then determines whether to update the
+ * page or instead to redirect (forcing a re-rendering of a new page).
+ *
+ * <p>
+ * Not re-rendering can provide a smoother UI experience.
+ * </p>
+ *
+ * <p>
+ * Supported by the Wicket viewer.
+ * </p>
*/
Redirect redirectPolicy()
default Redirect.AS_CONFIGURED;
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/Collection.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/Collection.java
index a52836c..0f0e44e 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/Collection.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/Collection.java
@@ -30,6 +30,11 @@ import org.apache.isis.applib.events.domain.CollectionDomainEvent;
/**
* Domain semantics for domain object collection.
*
+ * @see Action
+ * @see Property
+ * @see DomainObject
+ * @see CollectionLayout
+ *
* @since 1.x {@index}
*/
@Inherited
@@ -48,6 +53,12 @@ public @interface Collection {
* {@link org.apache.isis.applib.services.eventbus.EventBusService event bus} using a custom (subclass of)
* {@link org.apache.isis.applib.events.domain.CollectionDomainEvent}.
*
+ * <p>
+ * Subscribers of this event can interact with the business rule
+ * checking (hide, disable, validate) and its modification (before and
+ * after).
+ * </p>
+ *
* <p>For example:
* </p>
* <pre>
@@ -83,6 +94,12 @@ public @interface Collection {
/**
* The type-of the elements held within the collection.
*
+ * <p>
+ * This is only provided as a fallback; usually the framework can infer
+ * the element type of the collection from the collection method's
+ * generic type.
+ * </p>
+ *
* @see Action#typeOf()
*/
Class<?> typeOf()
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/CollectionLayout.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/CollectionLayout.java
index 4930d82..dad2b5c 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/CollectionLayout.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/CollectionLayout.java
@@ -29,6 +29,11 @@ import java.util.Comparator;
/**
* Layout hints for collections.
*
+ * @see ActionLayout
+ * @see PropertyLayout
+ * @see DomainObjectLayout
+ * @see Collection
+ *
* @since 1.x {@index}
*/
@Inherited
@@ -43,10 +48,12 @@ import java.util.Comparator;
public @interface CollectionLayout {
/**
- * Indicates the css class that a collection should have.
+ * Indicates the css class that a collection should have, to
+ * allow more targeted styling in <code>application.css</code>.
*
* @see ActionLayout#cssClass()
* @see PropertyLayout#cssClass()
+ * @see ParameterLayout#cssClass()
* @see DomainObjectLayout#cssClass()
*/
String cssClass()
@@ -56,11 +63,13 @@ public @interface CollectionLayout {
* Indicates which view is used by default to render the collection.
*
* <p>
- * The only view available within the core framework is "table". However, other views can be added
- * as extensions. Examples are those provided by the (non-ASF) <a href="isisaddons.org">Isis addons</a>, eg
- * "<a href="https://github.com/isisaddons/isis-wicket-excel">excel</a>",
- * "<a href="https://github.com/isisaddons/isis-wicket-fullcalendar2">calendar</a>" and
- * "<a href="https://github.com/isisaddons/isis-wicket-gmap3">map</a>".
+ * This is a simple string; every available implementation is required
+ * to use a different string.
+ * </p>
+ * <p>
+ * The default is "table". Extensions provide also:
+ * "excel" (download as Excel spreadsheet), "calendar"
+ * and "map".
* </p>
*/
String defaultView()
@@ -70,6 +79,7 @@ public @interface CollectionLayout {
* Description of this collection, eg to be rendered in a tooltip.
*
* @see ActionLayout#describedAs()
+ * @see ParameterLayout#describedAs()
* @see PropertyLayout#describedAs()
* @see DomainObjectLayout#describedAs()
*/
@@ -88,11 +98,19 @@ public @interface CollectionLayout {
default Where.NOT_SPECIFIED;
/**
- * Name of this collection (overriding the name derived from its name in code).
+ * Name of this collection (overriding the name derived from its name in
+ * code).
+ *
+ * <p>
+ * A typical use case is if the desired name is a reserved Java
+ * keyword, such as `default` or `package`.
+ * </p>
*
* @see ActionLayout#named()
+ * @see ParameterLayout#named()
* @see PropertyLayout#named()
* @see DomainObjectLayout#named()
+ * @see DomainServiceLayout#named()
* @see CollectionLayout#namedEscaped()
*/
String named()
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/DomainObject.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/DomainObject.java
index a62cc0b..f977802 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/DomainObject.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/DomainObject.java
@@ -46,6 +46,12 @@ import org.apache.isis.applib.events.lifecycle.ObjectUpdatingEvent;
* annotated type.
* For more details see <code>org.apache.isis.core.config.beans.IsisBeanFactoryPostProcessorForSpring</code>
*
+ * @see Action
+ * @see Property
+ * @see Collection
+ * @see DomainObjectLayout
+ * @see DomainService
+ *
* @since 1.x {@index}
*/
@Inherited
@@ -132,7 +138,19 @@ public @interface DomainObject {
/**
* Applicable only if {@link #nature()} is {@link Nature#MIXIN}, indicates
- * the default name of the method of that mixin.
+ * the name of the method within the mixin class to be inferred as the
+ * action of that mixin.
+ *
+ * <p>
+ * Supporting methods are then derived from that method name. For
+ * example, if the mixin method name is "act", then the
+ * <i>disable</i> supporting method will be "disableAct".
+ * </p>
+ *
+ * <p>
+ * Typical examples are "act", "prop", "coll", "exec", "execute", "invoke",
+ * "apply" and so on. The default name is `$$`.
+ * </p>
*/
String mixinMethod()
default "$$";
@@ -146,7 +164,8 @@ public @interface DomainObject {
default Nature.NOT_SPECIFIED;
/**
- * Provides a unique abbreviation for the object type, eg "customer.Customer" for Customer.
+ * Provides a unique abbreviation for the object type's, eg
+ * "customer.Customer" for Customer.
*
* <p>
* This value, if specified, is used in the serialized form of the object's OID. An OID is
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/DomainObjectLayout.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/DomainObjectLayout.java
index b2ffffd..1a87f7c 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/DomainObjectLayout.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/DomainObjectLayout.java
@@ -34,6 +34,11 @@ import org.apache.isis.applib.layout.component.CssClassFaPosition;
/**
* Layout hints for domain objects.
*
+ * @see ActionLayout
+ * @see PropertyLayout
+ * @see CollectionLayout
+ * @see DomainObject
+ *
* @since 1.x {@index}
*/
@Inherited
@@ -52,10 +57,12 @@ public @interface DomainObjectLayout {
default BookmarkPolicy.NOT_SPECIFIED;
/**
- * Indicates the css class that a domain class (type) should have.
+ * Indicates the css class that a domain class (type) should have, to
+ * allow more targeted styling in <code>application.css</code>.
*
* @see ActionLayout#cssClass()
* @see PropertyLayout#cssClass()
+ * @see ParameterLayout#cssClass()
* @see CollectionLayout#cssClass()
*/
String cssClass()
@@ -85,6 +92,7 @@ public @interface DomainObjectLayout {
* Description of this class, eg to be rendered in a tooltip.
*
* @see ActionLayout#describedAs()
+ * @see ParameterLayout#describedAs()
* @see PropertyLayout#describedAs()
* @see CollectionLayout#describedAs()
*/
@@ -94,9 +102,15 @@ public @interface DomainObjectLayout {
/**
* Name of this class (overriding the name derived from its name in code).
*
+ * <p>
+ * A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
+ * </p>
+ *
* @see ActionLayout#named()
+ * @see ParameterLayout#named()
* @see PropertyLayout#named()
* @see CollectionLayout#named()
+ * @see DomainServiceLayout#named()
* @see DomainObjectLayout#plural()
*/
String named()
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/DomainService.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/DomainService.java
index c579e03..7d8a0be 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/DomainService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/DomainService.java
@@ -40,6 +40,9 @@ import org.springframework.stereotype.Service;
* annotated type.
* For more details see {@code org.apache.isis.core.config.beans.IsisBeanFactoryPostProcessorForSpring}.
*
+ * @see DomainObject
+ * @see DomainServiceLayout
+ *
* @since 1.x {@index}
*/
@Inherited
@@ -60,10 +63,13 @@ public @interface DomainService {
default NatureOfService.VIEW;
/**
- * Provides the (first part of the) unique identifier (OID) for the service (the instanceId is always "1").
+ * Provides a unique abbreviation for the object type's, eg
+ * "customer.CustomerService" for CustomerService.
*
* <p>
- * If not specified then either the optional "getId()" is used, otherwise the class' name.
+ * This value, if specified, is used in the serialized form of the object's
+ * OID. An OID is used by the framework to unique identify an object over
+ * time (same concept as a URN).
* </p>
*
* @see DomainObject#objectType()
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/DomainServiceLayout.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/DomainServiceLayout.java
index 4ca5752..50006f2 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/DomainServiceLayout.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/DomainServiceLayout.java
@@ -31,7 +31,10 @@ import java.lang.annotation.Target;
* <p>
* Also indicates the name, and menu ordering UI hints.
* </p>
- *
+ *
+ * @see DomainService
+ * @see DomainObjectLayout
+ *
* @since 1.x {@index}
*/
@Inherited
@@ -49,12 +52,11 @@ public @interface DomainServiceLayout {
default MenuBar.NOT_SPECIFIED;
/**
- * Name of this class (overriding the name derived from its name in code).
+ * Enumerates the available menu bars for positioning a domain service's
+ * actions as menu items.
+ *
+ * @since 1.x {@index}
*/
- String named()
- default "";
-
-
public enum MenuBar {
PRIMARY,
SECONDARY,
@@ -62,4 +64,21 @@ public @interface DomainServiceLayout {
NOT_SPECIFIED
}
+ /**
+ * Name of this class (overriding the name derived from its name in code).
+ *
+ * <p>
+ * A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
+ * </p>
+ *
+ * @see ActionLayout#named()
+ * @see ParameterLayout#named()
+ * @see PropertyLayout#named()
+ * @see CollectionLayout#named()
+ * @see DomainObjectLayout#named()
+ */
+ String named()
+ default "";
+
+
}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/MemberOrder.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/MemberOrder.java
index dcd1c1f..f91941f 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/MemberOrder.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/MemberOrder.java
@@ -29,7 +29,7 @@ import java.lang.annotation.Target;
* Indicates the position a method should be placed in.
*
* <p>
- * An alternative is to use the <code>Xxx.layout.xml</code> file,
+ * An alternative is to use the <code>Xxx.layout.xml</code> file,
* where <code>Xxx</code> is the domain object name.
* </p>
* @since 1.x {@index}
@@ -42,19 +42,22 @@ public @interface MemberOrder {
/**
* Groups or associate members with each other.
*
+ * <p>
+ * The intepretation ofthis grouping depends on the member:
* <ul>
* <li>For actions, indicates the property or collection to associate.</li>
* <li>For properties, indicates the property group</li>
* <li>For collections, currently has no meaning</li>
* </ul>
+ * </p>
*/
String name()
default "";
/**
* The order of this member relative to other members in the same group, in
- * Dewey-decimal notation. For collections this is relative to each other
- * (collections aren't grouped).
+ * Dewey-decimal notation.
+ *
*/
String sequence();
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/Parameter.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/Parameter.java
index b839b6b..1f87059 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/Parameter.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/Parameter.java
@@ -33,6 +33,10 @@ import org.apache.isis.applib.value.Clob;
* Collects together all domain semantics of an action parameter within a
* single annotation.
*
+ * @see Action
+ * @see Property
+ * @see ParameterLayout
+ *
* @since 1.x {@index}
*/
@Inherited
@@ -50,6 +54,11 @@ public @interface Parameter {
* The value should be of the form "file_extension|audio/*|video/*|image/*|media_type".
* </p>
*
+ * <p>
+ * Note that this does not prevent the user from uploading some other file type; rather it merely defaults the
+ * file type in the file open dialog.
+ * </p>
+ *
* @see Action#fileAccept()
* @see Property#fileAccept()
* @see <a href="http://www.w3schools.com/tags/att_input_accept.asp">http://www.w3schools.com</a>
@@ -58,10 +67,12 @@ public @interface Parameter {
default "";
/**
- * The maximum entry length of a field.
+ * The maximum entry length of a string parameter (it is ignored for other
+ * types).
*
* <p>
- * The default value (<code>-1</code>) indicates that no maxLength has been specified.
+ * The default value (<code>-1</code>) indicates that no maxLength has
+ * been specified.
* </p>
*
* @see Property#maxLength()
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java
index e9e1171..92d4921 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java
@@ -30,7 +30,10 @@ import java.lang.annotation.Target;
* annotation.
*
* @since 1.x {@index}
- * @see org.apache.isis.applib.annotation.PropertyLayout
+ *
+ * @see ActionLayout
+ * @see PropertyLayout
+ * @see Parameter
*/
@Inherited
@Target({
@@ -41,13 +44,24 @@ import java.lang.annotation.Target;
public @interface ParameterLayout {
/**
- * Indicates the css class that a parameter should have.
+ * Indicates the css class that a parameter should have, to
+ * allow more targeted styling in <code>application.css</code>.
+ *
+ * @see PropertyLayout#cssClass()
+ * @see ActionLayout#cssClass()
+ * @see CollectionLayout#cssClass()
+ * @see DomainObjectLayout#cssClass()
*/
String cssClass()
default "";
/**
* Description of this property, eg to be rendered in a tooltip.
+ *
+ * @see PropertyLayout#describedAs()
+ * @see ActionLayout#describedAs()
+ * @see CollectionLayout#describedAs()
+ * @see DomainObjectLayout#describedAs()
*/
String describedAs()
default "";
@@ -56,26 +70,59 @@ public @interface ParameterLayout {
* In forms, positioning of the label (left, top or none) relative to the parameter value.
*
* <p>
- * If not specified, the default depends upon the parameter value's datatype.
+ * If not specified, the default depends upon the parameter value's
+ * datatype (including whether the field is {@link #multiLine()}.
* </p>
+ *
+ * @see #multiLine()
*/
LabelPosition labelPosition()
default LabelPosition.NOT_SPECIFIED;
/**
* Name of this action parameter.
+ *
+ * <p>
+ * The name of an action parameters is available to the framework
+ * provided that the code is compiled using <code>-parameters</code>
+ * (for <code>javac</code>.
+ * </p>
+ *
+ * <p>
+ * The only reason then to name the parameter is if the desired name is a reserved Java keyword, such as `default` or `package`.
+ * </p>
+ *
+ * @see ActionLayout#named()
+ * @see PropertyLayout#named()
+ * @see CollectionLayout#named()
+ * @see DomainObjectLayout#named()
+ * @see DomainServiceLayout#named()
+ * @see ParameterLayout#namedEscaped()
*/
String named()
default "";
/**
* A flag indicating whether the value of {@linkplain #named()} should be HTML escaped or not.
+ *
+ * @see PropertyLayout#namedEscaped()
+ * @see CollectionLayout#namedEscaped()
+ * @see ParameterLayout#named()
*/
boolean namedEscaped()
default true;
/**
- * For string parameters (and properties), whether to render as a text area over multiple lines.
+ * For string parameters (and properties), whether to render as a text area
+ * over multiple lines.
+ *
+ * <p>
+ * If set to > 1, then {@link #labelPosition()} defaults to
+ * {@link LabelPosition#TOP top}.
+ * </p>
+ *
+ * @see #labelPosition()
+ * @see PropertyLayout#multiLine()
*/
int multiLine()
default -1;
@@ -103,12 +150,20 @@ public @interface ParameterLayout {
* 1-may-2013 for the start date but using 31-may-2013 (the day before) for the end date. What is stored
* In the domain object, itself, however, the value stored is 1-jun-2013.
* </p>
+ *
+ * @see PropertyLayout#renderDay()
*/
RenderDay renderDay()
default RenderDay.NOT_SPECIFIED;
/**
* The typical entry length of a field, use to determine the optimum width for display
+ *
+ * <p>
+ * Note: the Wicket viewer does not use this information.
+ * </p>
+ *
+ * @see PropertyLayout#typicalLength()
*/
int typicalLength()
default -1;
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/Property.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/Property.java
index 0f04ae9..c94c98c 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/Property.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/Property.java
@@ -41,6 +41,11 @@ import org.apache.isis.applib.value.Clob;
* Collects together all the domain semantics for the property of a domain
* object.
*
+ * @see Action
+ * @see Collection
+ * @see DomainObject
+ * @see PropertyLayout
+ *
* @since 1.x {@index}
*/
@Inherited
@@ -83,6 +88,12 @@ public @interface Property {
* {@link org.apache.isis.applib.services.eventbus.EventBusService event bus} using a custom (subclass of)
* {@link org.apache.isis.applib.events.domain.PropertyDomainEvent}.
*
+ * <p>
+ * Subscribers of this event can interact with the business rule
+ * checking (hide, disable, validate) and its modification (before and
+ * after).
+ * </p>
+ *
* <p>For example:
* </p>
*
@@ -144,6 +155,11 @@ public @interface Property {
* The value should be of the form "file_extension|audio/*|video/*|image/*|media_type".
* </p>
*
+ * <p>
+ * Note that this does not prevent the user from uploading some other
+ * file type; rather it merely defaults the file type in the file open dialog.
+ * </p>
+ *
* @see <a href="http://www.w3schools.com/tags/att_input_accept.asp">http://www.w3schools.com</a>
* @see Parameter#fileAccept()
* @see Action#fileAccept()
@@ -167,6 +183,12 @@ public @interface Property {
* The default value (<code>-1</code>) indicates that no maxLength has been specified.
* </p>
*
+ * <p>
+ * NOTE: this will usually be supplemented by a JDO or JPA-specific
+ * annotation to indicate length of the column in the table to whic
+ * the entity is mapped.
+ * </p>
+ *
* @see Parameter#maxLength()
*/
int maxLength()
@@ -199,9 +221,9 @@ public @interface Property {
* Whether this property is optional or is mandatory (ie required).
*
* <p>
- * For properties the default value, {@link org.apache.isis.applib.annotation.Optionality#DEFAULT}, usually
- * means that the property is required unless it has been overridden by <code>javax.jdo.annotations.Column</code>
- * with its <code>javax.jdo.annotations.Column#allowsNull()</code> attribute set to true.
+ * NOTE: this will usually be supplmented by a JDO or JPA-specific
+ * annotation to specify the nullability of the corresponding column in
+ * the table to which the owning entity is mapped.
* </p>
*
* @see Parameter#optionality()
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/PropertyLayout.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/PropertyLayout.java
index 0ca85f0..bb0299a 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/PropertyLayout.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/PropertyLayout.java
@@ -28,6 +28,11 @@ import java.lang.annotation.Target;
/**
* Collects together all layout hints for a property of a domain object.
*
+ * @see ActionLayout
+ * @see CollectionLayout
+ * @see DomainObjectLayout
+ * @see Property
+ *
* @since 1.x {@index}
* @see org.apache.isis.applib.annotation.ParameterLayout
*/
@@ -38,9 +43,11 @@ import java.lang.annotation.Target;
public @interface PropertyLayout {
/**
- * Indicates the css class that a property should have.
+ * Indicates the css class that a property should have, to
+ * allow more targeted styling in <code>application.css</code>.
*
* @see ActionLayout#cssClass()
+ * @see ParameterLayout#cssClass()
* @see CollectionLayout#cssClass()
* @see DomainObjectLayout#cssClass()
*/
@@ -51,6 +58,7 @@ public @interface PropertyLayout {
* Description of this property, eg to be rendered in a tooltip.
*
* @see ActionLayout#describedAs()
+ * @see ParameterLayout#describedAs()
* @see CollectionLayout#describedAs()
* @see DomainObjectLayout#describedAs()
*/
@@ -58,7 +66,11 @@ public @interface PropertyLayout {
default "";
/**
- * Indicates where in the UI the property should <i>not</i>not be visible.
+ * Indicates where in the UI the property
+ * should <i>not</i> be visible.
+ *
+ * @see ActionLayout#hidden()
+ * @see CollectionLayout#hidden()
*/
Where hidden()
default Where.NOT_SPECIFIED;
@@ -67,14 +79,25 @@ public @interface PropertyLayout {
* In forms, positioning of the label (left, top or none) relative to the property value.
*
* <p>
- * If not specified, the default depends upon the property value's datatype.
+ * If not specified, the default depends upon the property value's
+ * datatype (including whether the field is {@link #multiLine()}.
* </p>
+ *
+ * @see #multiLine()
+ * @see ParameterLayout#labelPosition()
*/
LabelPosition labelPosition()
default LabelPosition.NOT_SPECIFIED;
/**
* For string properties (and parameters), render as a text area over specified number of lines.
+ *
+ * <p>
+ * If set to > 1, then {@link #labelPosition()} defaults to
+ * {@link LabelPosition#TOP top}.
+ * </p>
+ *
+ * @see ParameterLayout#multiLine()
*/
int multiLine()
default -1;
@@ -82,9 +105,15 @@ public @interface PropertyLayout {
/**
* Name of this property (overriding the name derived from its name in code).
*
+ * <p>
+ * A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
+ * </p>
+ *
* @see ActionLayout#named()
+ * @see ParameterLayout#named()
* @see CollectionLayout#named()
* @see DomainObjectLayout#named()
+ * @see DomainServiceLayout#named()
* @see PropertyLayout#namedEscaped()
*/
String named()
@@ -94,6 +123,8 @@ public @interface PropertyLayout {
* A flag indicating whether the value of {@linkplain #named()} should be
* HTML escaped or not.
*
+ * @see ParameterLayout#namedEscaped()
+ * @see CollectionLayout#namedEscaped()
* @see PropertyLayout#named()
*/
boolean namedEscaped()
@@ -139,6 +170,8 @@ public @interface PropertyLayout {
* 1-may-2013 for the start date but using 31-may-2013 (the day before) for the end date. What is stored
* In the domain object, itself, however, the value stored is 1-jun-2013.
* </p>
+ *
+ * @see ParameterLayout#renderDay()
*/
RenderDay renderDay()
default RenderDay.NOT_SPECIFIED;
@@ -169,7 +202,14 @@ public @interface PropertyLayout {
default Repainting.NOT_SPECIFIED;
/**
- * The typical entry length of a field, use to determine the optimum width for display
+ * The typical entry length of a field, use to determine the optimum width
+ * for display.
+ *
+ * <p>
+ * Note: the Wicket viewer does not use this information.
+ * </p>
+ *
+ * @see ParameterLayout#typicalLength()
*/
int typicalLength()
default -1;