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 2020/07/20 08:06:59 UTC
[isis] 01/02: ISIS-2222: improves asciidoc descriptions for all
types
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit cc6195fb5482744fa313b5a664d571a244a46789
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Jul 20 07:24:50 2020 +0100
ISIS-2222: improves asciidoc descriptions for all types
... factoring out some common text.
---
.../_infra/resources/ResourceReaderService.java | 6 +-
.../types/isis/blobs/IsisBlobs-description.adoc | 71 ++-----------
.../isis/blobs/jdo/IsisBlobJdo-description.adoc | 1 +
.../isis/blobs/vm/IsisBlobVm-description.adoc | 2 +
.../types/isis/clobs/IsisClobs-description.adoc | 72 ++------------
.../isis/clobs/jdo/IsisClobJdo-description.adoc | 1 +
.../isis/clobs/vm/IsisClobVm-description.adoc | 2 +
.../types/isis/images/IsisImages-description.adoc | 72 ++------------
.../isis/images/jdo/IsisImageJdo-description.adoc | 1 +
.../isis/images/samples/IsisImagesSamples.java | 2 +-
.../isis/images/vm/IsisImageVm-description.adoc | 1 +
.../IsisLocalResourcePaths-description.adoc | 110 +++++----------------
.../IsisLocalResourcePathsSamples.java | 38 -------
.../jdo/IsisLocalResourcePathJdo-description.adoc | 1 +
.../vm/IsisLocalResourcePathVm-description.adoc | 2 +
.../isis/markups/IsisMarkups-description.adoc | 70 ++-----------
.../markups/jdo/IsisMarkupJdo-description.adoc | 1 +
.../isis/markups/vm/IsisMarkupVm-description.adoc | 2 +
.../isis/passwords/IsisPasswords-description.adoc | 70 ++-----------
.../types/isis/passwords/IsisPasswordsSamples.java | 37 -------
.../passwords/jdo/IsisPasswordJdo-description.adoc | 1 +
.../passwords/vm/IsisPasswordVm-description.adoc | 2 +
.../asciidocs/IsisAsciiDocs-description.adoc | 70 ++-----------
.../asciidocs/jdo/IsisAsciiDocJdo-description.adoc | 1 +
.../asciidocs/vm/IsisAsciiDocVm-description.adoc | 2 +
.../markdowns/IsisMarkdowns-description.adoc | 70 ++-----------
.../markdowns/jdo/IsisMarkdownJdo-description.adoc | 1 +
.../markdowns/vm/IsisMarkdownVm-description.adoc | 2 +
.../types/javaawt/images/JavaAwtImageService.java | 64 ------------
.../javaawt/images/JavaAwtImages-description.adoc | 70 ++-----------
.../images/jdo/JavaAwtImageJdo-description.adoc | 1 +
.../images/samples/JavaAwtImagesSamples.java | 1 -
.../images/vm/JavaAwtImageVm-description.adoc | 2 +
.../dom/types/javalang/JavaLangTypesMenu.java | 2 +-
.../booleans/WrapperBooleans-description.adoc | 68 ++-----------
.../jdo/WrapperBooleanJdo-description.adoc | 2 +
.../booleans/vm/WrapperBooleanVm-description.adoc | 2 +
.../javalang/bytes/WrapperBytes-description.adoc | 72 ++------------
.../bytes/jdo/WrapperByteJdo-description.adoc | 1 +
.../bytes/vm/WrapperByteVm-description.adoc | 2 +
.../characters/WrapperCharacters-description.adoc | 72 ++------------
.../jdo/WrapperCharacterJdo-description.adoc | 1 +
.../vm/WrapperCharacterVm-description.adoc | 2 +
.../doubles/WrapperDoubles-description.adoc | 71 ++-----------
.../doubles/jdo/WrapperDoubleJdo-description.adoc | 1 +
.../doubles/vm/WrapperDoubleVm-description.adoc | 2 +
.../javalang/floats/WrapperFloats-description.adoc | 71 ++-----------
.../floats/jdo/WrapperFloatJdo-description.adoc | 1 +
.../floats/vm/WrapperFloatVm-description.adoc | 2 +
.../integers/WrapperIntegers-description.adoc | 72 ++------------
.../jdo/WrapperIntegerJdo-description.adoc | 1 +
.../integers/vm/WrapperIntegerVm-description.adoc | 2 +
.../javalang/longs/WrapperLongs-description.adoc | 70 ++-----------
.../longs/jdo/WrapperLongJdo-description.adoc | 2 +
.../longs/vm/WrapperLongVm-description.adoc | 2 +
.../javalang/shorts/WrapperShorts-description.adoc | 70 ++-----------
.../shorts/jdo/WrapperShortJdo-description.adoc | 1 +
.../shorts/vm/WrapperShortVm-description.adoc | 2 +
.../strings/JavaLangStrings-description.adoc | 70 ++-----------
.../strings/jdo/JavaLangStringJdo-description.adoc | 1 +
.../strings/vm/JavaLangStringVm-description.adoc | 2 +
.../JavaMathBigDecimals-description.adoc | 70 ++-----------
.../jdo/JavaMathBigDecimalJdo-description.adoc | 1 +
.../vm/JavaMathBigDecimalVm-description.adoc | 1 +
.../JavaMathBigIntegers-description.adoc | 70 ++-----------
.../jdo/JavaMathBigIntegerJdo-description.adoc | 1 +
.../vm/JavaMathBigIntegerVm-description.adoc | 2 +
.../javanet/urls/JavaNetUrls-description.adoc | 70 ++-----------
.../urls/jdo/JavaNetUrlJdo-description.adoc | 1 +
.../javanet/urls/vm/JavaNetUrlVm-description.adoc | 2 +
.../javasqldate/JavaSqlDates-description.adoc | 88 ++---------------
.../jdo/JavaSqlDateJdo-description.adoc | 1 +
.../javasqldate/vm/JavaSqlDateVm-description.adoc | 2 +
.../JavaSqlTimestamps-description.adoc | 86 ++--------------
.../jdo/JavaSqlTimestampJdo-description.adoc | 1 +
.../vm/JavaSqlTimestampVm-description.adoc | 2 +
.../JavaTimeLocalDates-description.adoc | 86 ++--------------
.../jdo/JavaTimeLocalDateJdo-description.adoc | 1 +
.../vm/JavaTimeLocalDateVm-description.adoc | 2 +
.../JavaTimeLocalDateTimes-description.adoc | 85 ++--------------
.../jdo/JavaTimeLocalDateTimeJdo-description.adoc | 1 +
.../vm/JavaTimeLocalDateTimeVm-description.adoc | 2 +
.../JavaTimeOffsetDateTimes-description.adoc | 87 ++--------------
.../jdo/JavaTimeOffsetDateTimeJdo-description.adoc | 1 +
.../vm/JavaTimeOffsetDateTimeVm-description.adoc | 2 +
.../JavaTimeOffsetTimes-description.adoc | 86 ++--------------
.../jdo/JavaTimeOffsetTimeJdo-description.adoc | 1 +
.../vm/JavaTimeOffsetTimeVm-description.adoc | 2 +
.../JavaTimeZonedDateTimes-description.adoc | 87 ++--------------
.../jdo/JavaTimeZonedDateTimeJdo-description.adoc | 2 +
.../vm/JavaTimeZonedDateTimeVm-description.adoc | 2 +
.../javautildate/JavaUtilDates-description.adoc | 85 ++--------------
.../jdo/JavaUtilDateJdo-description.adoc | 2 +
.../vm/JavaUtilDateVm-description.adoc | 2 +
.../javautil/uuids/JavaUtilUuids-description.adoc | 72 ++------------
.../uuids/jdo/JavaUtilUuidJdo-description.adoc | 1 +
.../uuids/vm/JavaUtilUuidVm-description.adoc | 2 +
.../jodadatetime/JodaDateTimes-description.adoc | 86 ++--------------
.../jdo/JodaDateTimeJdo-description.adoc | 2 +
.../vm/JodaDateTimeVm-description.adoc | 2 +
.../jodalocaldate/JodaLocalDates-description.adoc | 86 ++--------------
.../jdo/JodaLocalDateJdo-description.adoc | 2 +
.../vm/JodaLocalDateVm-description.adoc | 3 +
.../JodaLocalDateTimes-description.adoc | 87 ++--------------
.../jdo/JodaLocalDateTimeJdo-description.adoc | 3 +
.../vm/JodaLocalDateTimeVm-description.adoc | 3 +
.../booleans/PrimitiveBooleans-description.adoc | 51 ++--------
.../jdo/PrimitiveBooleanJdo-description.adoc | 5 +-
.../vm/PrimitiveBooleanVm-description.adoc | 5 +-
.../bytes/PrimitiveBytes-description.adoc | 53 ++--------
.../bytes/jdo/PrimitiveByteJdo-description.adoc | 5 +-
.../bytes/vm/PrimitiveByteVm-description.adoc | 5 +-
.../chars/PrimitiveChars-description.adoc | 54 ++--------
.../chars/jdo/PrimitiveCharJdo-description.adoc | 5 +-
.../chars/vm/PrimitiveCharVm-description.adoc | 6 +-
.../doubles/PrimitiveDoubles-description.adoc | 54 ++--------
.../jdo/PrimitiveDoubleJdo-description.adoc | 6 +-
.../doubles/vm/PrimitiveDoubleVm-description.adoc | 6 +-
.../floats/PrimitiveFloats-description.adoc | 55 ++---------
.../floats/jdo/PrimitiveFloatJdo-description.adoc | 6 +-
.../floats/vm/PrimitiveFloatVm-description.adoc | 6 +-
.../primitive/ints/PrimitiveInts-description.adoc | 55 ++---------
.../ints/jdo/PrimitiveIntJdo-description.adoc | 6 +-
.../ints/vm/PrimitiveIntVm-description.adoc | 6 +-
.../longs/PrimitiveLongs-description.adoc | 55 ++---------
.../longs/jdo/PrimitiveLongJdo-description.adoc | 6 +-
.../longs/vm/PrimitiveLongVm-description.adoc | 7 +-
.../shorts/PrimitiveShorts-description.adoc | 56 ++---------
.../shorts/jdo/PrimitiveShortJdo-description.adoc | 6 +-
.../shorts/vm/PrimitiveShortVm-description.adoc | 6 +-
130 files changed, 536 insertions(+), 2788 deletions(-)
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/_infra/resources/ResourceReaderService.java b/examples/demo/domain/src/main/java/demoapp/dom/_infra/resources/ResourceReaderService.java
index a8a1b8f..7edd36c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/_infra/resources/ResourceReaderService.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/_infra/resources/ResourceReaderService.java
@@ -28,7 +28,11 @@ public class ResourceReaderService {
return readResource(aClass, resourceName, Collections.emptyMap());
}
public String readResource(Class<?> aClass, String resourceName, Map<String, Object> attributes) {
- val resourceStream = aClass.getResourceAsStream(resourceName);
+ InputStream resourceStream = aClass.getResourceAsStream(resourceName);
+ if(resourceStream==null) {
+ // horrendous hack...
+ resourceStream = aClass.getResourceAsStream("../" + resourceName);
+ }
if(resourceStream==null) {
return String.format("Resource '%s' not found.", resourceName);
}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/IsisBlobs-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/IsisBlobs-description.adoc
index c43f3cb..8337328 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/IsisBlobs-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/IsisBlobs-description.adoc
@@ -9,76 +9,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `IsisBlobHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/IsisBlobHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `Blob` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisBlobHolder_updateReadOnlyProperty.java[tags=class]
-----
+=== IsisBlobHolder
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisBlobHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
+The `IsisBlobHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturning` action is:
-+
[source,java]
----
-include::holder/IsisBlobHolder_actionReturning.java[tags=class]
-----
-
-
-* the `actionReturningCollection` action is:
-+
-[source,java]
-----
-include::holder/IsisBlobHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/IsisBlobHolder_mixinProperty.java[tags=class]
-----
-
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `IsisBlobHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/IsisBlobHolder2.java[tags=class]
+include::holder/IsisBlobHolder.java[tags=class]
----
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+=== IsisBlobHolder2
+The `IsisBlobHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdo-description.adoc
index c130947..c3dba0c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../IsisBlobs-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/IsisBlobVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/IsisBlobVm-description.adoc
index 2e007e7..78504cd 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/IsisBlobVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/IsisBlobVm-description.adoc
@@ -11,3 +11,5 @@ include::IsisBlobVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../IsisBlobs-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/IsisClobs-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/IsisClobs-description.adoc
index c48538f..77529ea 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/IsisClobs-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/IsisClobs-description.adoc
@@ -9,77 +9,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `IsisClobHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/IsisClobHolder.java[tags=class]
-----
-
-
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `Clob` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisClobHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisClobHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
+=== IsisClobHolder
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/IsisClobHolder_actionReturning.java[tags=class]
-----
-
-
-* the `actionReturningCollection` action is:
-+
-[source,java]
-----
-include::holder/IsisClobHolder_actionReturningCollection.java[tags=class]
-----
+The `IsisClobHolder` interface is used to contribute a number of mixins to both types:
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
[source,java]
----
-include::holder/IsisClobHolder_mixinProperty.java[tags=class]
+include::holder/IsisClobHolder.java[tags=class]
----
+=== IsisClobHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `IsisClobHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/IsisClobHolder2.java[tags=class]
-----
+The `IsisClobHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdo-description.adoc
index 1bb415f..036cbc6 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../IsisClobs-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/IsisClobVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/IsisClobVm-description.adoc
index 2e0aca0..3e6a614 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/IsisClobVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/IsisClobVm-description.adoc
@@ -11,3 +11,5 @@ include::IsisClobVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../IsisClobs-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/IsisImages-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/IsisImages-description.adoc
index b5465c0..d6cb928 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/IsisImages-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/IsisImages-description.adoc
@@ -9,77 +9,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `IsisImageHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/IsisImageHolder.java[tags=class]
-----
-
-
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `Image` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisImageHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisImageHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
+=== IsisImageHolder
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/IsisImageHolder_actionReturning.java[tags=class]
-----
-
-
-* the `actionReturningCollection` action is:
-+
-[source,java]
-----
-include::holder/IsisImageHolder_actionReturningCollection.java[tags=class]
-----
+The `IsisImageHolder` interface is used to contribute a number of mixins to both types:
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
[source,java]
----
-include::holder/IsisImageHolder_mixinProperty.java[tags=class]
+include::holder/IsisImageHolder.java[tags=class]
----
+=== IsisImageHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `IsisImageHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/IsisImageHolder2.java[tags=class]
-----
+The `IsisImageHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/IsisImageJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/IsisImageJdo-description.adoc
index 8a398b4..239088a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/IsisImageJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/IsisImageJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../IsisImages-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/samples/IsisImagesSamples.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/samples/IsisImagesSamples.java
index ed04df4..71b71af 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/samples/IsisImagesSamples.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/samples/IsisImagesSamples.java
@@ -27,7 +27,7 @@ import org.springframework.stereotype.Service;
import org.apache.isis.applib.value.Image;
import demoapp.dom.types.Samples;
-import demoapp.dom.types.javaawt.images.JavaAwtImageService;
+import demoapp.dom.types.javaawt.images.samples.JavaAwtImageService;
import demoapp.dom.types.javaawt.images.samples.JavaAwtImagesSamples;
@Service
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/IsisImageVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/IsisImageVm-description.adoc
index 304d6c9..098023f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/IsisImageVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/IsisImageVm-description.adoc
@@ -11,3 +11,4 @@ include::IsisImageVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+include::../IsisImages-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePaths-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePaths-description.adoc
index 6e23330..bfa9396 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePaths-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePaths-description.adoc
@@ -1,89 +1,31 @@
-CAUTION: TODO - to document
+The framework has built-in support for representing servlets and other resources that exist alongside the Apache Isis runtime, using the `LocalResourcePath` data type .
+When an action returns an instance of this type, then this is rendered as a redirect request to the browser to that resource.
+In this way you could for example return a link to a PDF or image (to be rendered by the web browser itself), or provide access to dynamic content by redirecting to a servlet.
-// might decide to remove this from the demo...
+NOTE: This is an Apache Isis specific data type.
+From here you can:
-//The framework has built-in support for all of the Wrapper data types, including `LocalResourcePath`.
-//
-//From here you can:
-//
-//* navigate to an entity that uses the `LocalResourcePath` datatype
-//* open a view model that uses the `LocalResourcePath` datatype
-//
-//Some properties on these domain objects are mandatory, some optional.
-//
-//== Common interface
-//
-//These objects both implement a common interface, `IsisLocalResourcePathHolder`:
-//
-//[source,java]
-//----
-//include::holder/IsisLocalResourcePathHolder.java[tags=class]
-//----
-//
-//
-//== Mixin actions
-//
-//A number of mixin actions contribute through this interface, demonstrate the use of `LocalResourcePath` as a parameter and as a return type.
-//For example:
-//
-//* the `updateReadOnlyProperty` action is:
-//+
-//[source,java]
-//----
-//include::holder/IsisLocalResourcePathHolder_updateReadOnlyProperty.java[tags=class]
-//----
-//
-//* the `updateReadOnlyOptionalProperty` action is:
-//+
-//[source,java]
-//----
-//include::holder/IsisLocalResourcePathHolder_updateReadOnlyOptionalProperty.java[tags=class]
-//----
-//
-//* the `actionReturning` action is:
-//+
-//[source,java]
-//----
-//include::holder/IsisLocalResourcePathHolder_actionReturning.java[tags=class]
-//----
-//
-//
-//* the `actionReturningCollection` action is:
-//+
-//[source,java]
-//----
-//include::holder/IsisLocalResourcePathHolder_actionReturningCollection.java[tags=class]
-//----
-//
-//== Mixin properties
-//
-//We also use the interface to contribute a mixin property:
-//
-//* the `mixinProperty` property:
-//+
-//[source,java]
-//----
-//include::holder/IsisLocalResourcePathHolder_mixinProperty.java[tags=class]
-//----
-//
-//
+* navigate to an entity that uses the `LocalResourcePath` datatype
+* open a view model that uses the `LocalResourcePath` datatype
+Some properties on these domain objects are mandatory, some optional.
-//== @PropertyLayout(labelPosition=...)
-//
-//There is also an extended interface, `IsisLocalResourcePathHolder2`, with default methods demonstrating the use of label positions:
-//
-//[source,java]
-//----
-//include::holder/IsisLocalResourcePathHolder2.java[tags=class]
-//----
-//
-//<.> The default methods have annotations that are automatically inherited.
-//<.> Position to the left
-//<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-//<.> Position label on top
-//<.> Position label to the right
-//+
-//CAUTION: currently not supported
-//<.> Hide the label compleely.
+== Common interfaces
+
+The entity and view model types both implement some common interfaces.
+
+=== IsisLocalResourcePathHolder
+
+The `IsisLocalResourcePathHolder` interface is used to contribute a number of mixins to both types:
+
+[source,java]
+----
+include::holder/IsisLocalResourcePathHolder.java[tags=class]
+----
+
+=== IsisLocalResourcePathHolder2
+
+The `IsisLocalResourcePathHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
+
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePathsSamples.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePathsSamples.java
deleted file mode 100644
index 4706909..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePathsSamples.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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 agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package demoapp.dom.types.isis.localresourcepaths;
-
-import java.util.stream.Stream;
-
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.value.LocalResourcePath;
-
-import demoapp.dom.types.Samples;
-
-@Service
-public class IsisLocalResourcePathsSamples implements Samples<LocalResourcePath> {
-
- @Override
- public Stream<LocalResourcePath> stream() {
- return Stream.of("/", "/db/", "/swagger-ui/index.thtml", "/restful/")
- .map(LocalResourcePath::new);
- }
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/jdo/IsisLocalResourcePathJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/jdo/IsisLocalResourcePathJdo-description.adoc
index 98cf0b0..614e038 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/jdo/IsisLocalResourcePathJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/jdo/IsisLocalResourcePathJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../IsisLocalResourcePaths-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/vm/IsisLocalResourcePathVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/vm/IsisLocalResourcePathVm-description.adoc
index b9d90b2..9ac1d0c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/vm/IsisLocalResourcePathVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/vm/IsisLocalResourcePathVm-description.adoc
@@ -11,3 +11,5 @@ include::IsisLocalResourcePathVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../IsisLocalResourcePaths-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/IsisMarkups-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/IsisMarkups-description.adoc
index 53d3e05..f450e3c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/IsisMarkups-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/IsisMarkups-description.adoc
@@ -9,75 +9,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `IsisMarkupHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/IsisMarkupHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `Markup` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisMarkupHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisMarkupHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/IsisMarkupHolder_actionReturning.java[tags=class]
-----
+=== IsisMarkupHolder
+The `IsisMarkupHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/IsisMarkupHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/IsisMarkupHolder_mixinProperty.java[tags=class]
+include::holder/IsisMarkupHolder.java[tags=class]
----
+=== IsisMarkupHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `IsisMarkupHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/IsisMarkupHolder2.java[tags=class]
-----
+The `IsisMarkupHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jdo/IsisMarkupJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jdo/IsisMarkupJdo-description.adoc
index 707c69c..ff2b26b 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jdo/IsisMarkupJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jdo/IsisMarkupJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../IsisMarkups-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/vm/IsisMarkupVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/vm/IsisMarkupVm-description.adoc
index cedee28..1239917 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/vm/IsisMarkupVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/vm/IsisMarkupVm-description.adoc
@@ -11,3 +11,5 @@ include::IsisMarkupVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../IsisMarkups-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/IsisPasswords-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/IsisPasswords-description.adoc
index ddccbb7..02e6b7a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/IsisPasswords-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/IsisPasswords-description.adoc
@@ -9,75 +9,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `IsisPasswordHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/IsisPasswordHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `Password` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisPasswordHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisPasswordHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/IsisPasswordHolder_actionReturning.java[tags=class]
-----
+=== IsisPasswordHolder
+The `IsisPasswordHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/IsisPasswordHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/IsisPasswordHolder_mixinProperty.java[tags=class]
+include::holder/IsisPasswordHolder.java[tags=class]
----
+=== IsisPasswordHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `IsisPasswordHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/IsisPasswordHolder2.java[tags=class]
-----
+The `IsisPasswordHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/IsisPasswordsSamples.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/IsisPasswordsSamples.java
deleted file mode 100644
index 5445357..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/IsisPasswordsSamples.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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 agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package demoapp.dom.types.isis.passwords;
-
-import java.util.stream.Stream;
-
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.value.Password;
-
-import demoapp.dom.types.Samples;
-
-@Service
-public class IsisPasswordsSamples implements Samples<Password> {
-
- @Override
- public Stream<Password> stream() {
- return Stream.of();
- }
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/jdo/IsisPasswordJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/jdo/IsisPasswordJdo-description.adoc
index 8811a13..9fd659f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/jdo/IsisPasswordJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/jdo/IsisPasswordJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../IsisPasswords-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/vm/IsisPasswordVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/vm/IsisPasswordVm-description.adoc
index 1034f6f..7bed98f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/vm/IsisPasswordVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/vm/IsisPasswordVm-description.adoc
@@ -11,3 +11,5 @@ include::IsisPasswordVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../IsisPasswords-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/IsisAsciiDocs-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/IsisAsciiDocs-description.adoc
index e79db0a..13a78d2 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/IsisAsciiDocs-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/IsisAsciiDocs-description.adoc
@@ -9,75 +9,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `IsisAsciiDocHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/IsisAsciiDocHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `AsciiDoc` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisAsciiDocHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisAsciiDocHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/IsisAsciiDocHolder_actionReturning.java[tags=class]
-----
+=== IsisAsciiDocHolder
+The `IsisAsciiDocHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/IsisAsciiDocHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/IsisAsciiDocHolder_mixinProperty.java[tags=class]
+include::holder/IsisAsciiDocHolder.java[tags=class]
----
+=== IsisAsciiDocHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `IsisAsciiDocHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/IsisAsciiDocHolder2.java[tags=class]
-----
+The `IsisAsciiDocHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/jdo/IsisAsciiDocJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/jdo/IsisAsciiDocJdo-description.adoc
index dbbe819..af5ba8f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/jdo/IsisAsciiDocJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/jdo/IsisAsciiDocJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../IsisAsciiDocs-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/vm/IsisAsciiDocVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/vm/IsisAsciiDocVm-description.adoc
index 1404a3d..424df60 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/vm/IsisAsciiDocVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/vm/IsisAsciiDocVm-description.adoc
@@ -11,3 +11,5 @@ include::IsisAsciiDocVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../IsisAsciiDocs-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns-description.adoc
index d3de7e6..9292db6 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns-description.adoc
@@ -9,75 +9,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `IsisMarkdownHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/IsisMarkdownHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `Markdown` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisMarkdownHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisMarkdownHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/IsisMarkdownHolder_actionReturning.java[tags=class]
-----
+=== IsisMarkdownHolder
+The `IsisMarkdownHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/IsisMarkdownHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/IsisMarkdownHolder_mixinProperty.java[tags=class]
+include::holder/IsisMarkdownHolder.java[tags=class]
----
+=== IsisMarkdownHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `IsisMarkdownHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/IsisMarkdownHolder2.java[tags=class]
-----
+The `IsisMarkdownHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdo-description.adoc
index c4afd35..1f13571 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../IsisMarkdowns-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/vm/IsisMarkdownVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/vm/IsisMarkdownVm-description.adoc
index e3b609a..fd22a9d 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/vm/IsisMarkdownVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/vm/IsisMarkdownVm-description.adoc
@@ -11,3 +11,5 @@ include::IsisMarkdownVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../IsisMarkdowns-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/JavaAwtImageService.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/JavaAwtImageService.java
deleted file mode 100644
index 19272be..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/JavaAwtImageService.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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 agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package demoapp.dom.types.javaawt.images;
-
-import java.awt.image.ColorModel;
-import java.awt.image.ImageObserver;
-import java.awt.image.PixelGrabber;
-import java.io.ByteArrayInputStream;
-
-import javax.imageio.ImageIO;
-
-import org.springframework.stereotype.Service;
-
-import lombok.SneakyThrows;
-
-@Service
-public class JavaAwtImageService {
-
- @SneakyThrows
- public java.awt.Image bytesToJavaAwtImage(byte[] bytes) {
- return ImageIO.read(new ByteArrayInputStream(bytes));
- }
-
- @SneakyThrows
- public int[][] javaAwtImageToPixels(final java.awt.Image image) {
- final int width = image.getWidth(null);
- final int lines = image.getHeight(null);
- final int pixels[] = new int[width * lines];
- final PixelGrabber grabber = new PixelGrabber(image, 0, 0, width, lines, pixels, 0, width);
- grabber.setColorModel(ColorModel.getRGBdefault());
- if (grabber.grabPixels() && (grabber.status() & ImageObserver.ALLBITS) != 0) {
- final int[][] array = new int[lines][width];
- int srcPos = 0;
- for (int line = 0; line < lines; line++) {
- array[line] = new int[width];
- System.arraycopy(pixels, srcPos, array[line], 0, width);
- for (int pixel = 0; pixel < array[line].length; pixel++) {
- array[line][pixel] = array[line][pixel] | 0xFF000000;
- }
- srcPos += width;
- }
- return array;
- }
- return new int[lines][width];
- }
-
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/JavaAwtImages-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/JavaAwtImages-description.adoc
index 74f7d67..fec0cf5 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/JavaAwtImages-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/JavaAwtImages-description.adoc
@@ -9,75 +9,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `JavaAwtImageHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/JavaAwtImageHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `Image` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaAwtImageHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaAwtImageHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JavaAwtImageHolder_actionReturning.java[tags=class]
-----
+=== JavaAwtImageHolder
+The `JavaAwtImageHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/JavaAwtImageHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/JavaAwtImageHolder_mixinProperty.java[tags=class]
+include::holder/JavaAwtImageHolder.java[tags=class]
----
+=== JavaAwtImageHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `JavaAwtImageHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/JavaAwtImageHolder2.java[tags=class]
-----
+The `JavaAwtImageHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/jdo/JavaAwtImageJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/jdo/JavaAwtImageJdo-description.adoc
index 048ef2f..4e7a1a4 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/jdo/JavaAwtImageJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/jdo/JavaAwtImageJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../JavaAwtImages-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/samples/JavaAwtImagesSamples.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/samples/JavaAwtImagesSamples.java
index e2692b2..667097a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/samples/JavaAwtImagesSamples.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/samples/JavaAwtImagesSamples.java
@@ -32,7 +32,6 @@ import lombok.SneakyThrows;
import lombok.val;
import demoapp.dom.types.Samples;
-import demoapp.dom.types.javaawt.images.JavaAwtImageService;
@Service
public class JavaAwtImagesSamples implements Samples<Image> {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/vm/JavaAwtImageVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/vm/JavaAwtImageVm-description.adoc
index bac027b..7b41ef5 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/vm/JavaAwtImageVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/vm/JavaAwtImageVm-description.adoc
@@ -11,3 +11,5 @@ include::JavaAwtImageVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../JavaAwtImages-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/JavaLangTypesMenu.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/JavaLangTypesMenu.java
index 8279b95..e684119 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/JavaLangTypesMenu.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/JavaLangTypesMenu.java
@@ -37,7 +37,7 @@ import demoapp.dom.types.javalang.voids.JavaLangVoids;
public class JavaLangTypesMenu {
@Action(semantics = SemanticsOf.SAFE)
- @ActionLayout(cssClassFa="fa-clock")
+ @ActionLayout(cssClassFa="fa-font")
public JavaLangStrings strings(){
return new JavaLangStrings();
}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/booleans/WrapperBooleans-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/booleans/WrapperBooleans-description.adoc
index 091f5ff..c8d2e77 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/booleans/WrapperBooleans-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/booleans/WrapperBooleans-description.adoc
@@ -7,73 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `WrapperBooleanHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/WrapperBooleanHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `Boolean` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/WrapperBooleanHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/WrapperBooleanHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/WrapperBooleanHolder_actionReturning.java[tags=class]
-----
+=== WrapperBooleanHolder
+The `WrapperBooleanHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/WrapperBooleanHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/WrapperBooleanHolder_mixinProperty.java[tags=class]
+include::holder/WrapperBooleanHolder.java[tags=class]
----
+=== WrapperBooleanHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `WrapperBooleanHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/WrapperBooleanHolder2.java[tags=class]
-----
+The `WrapperBooleanHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/booleans/jdo/WrapperBooleanJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/booleans/jdo/WrapperBooleanJdo-description.adoc
index f4bb819..99b21f3 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/booleans/jdo/WrapperBooleanJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/booleans/jdo/WrapperBooleanJdo-description.adoc
@@ -13,3 +13,5 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+
+include::../WrapperBooleans-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/booleans/vm/WrapperBooleanVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/booleans/vm/WrapperBooleanVm-description.adoc
index 7122bcd..f8dee7a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/booleans/vm/WrapperBooleanVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/booleans/vm/WrapperBooleanVm-description.adoc
@@ -11,3 +11,5 @@ include::WrapperBooleanVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../WrapperBooleans-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/bytes/WrapperBytes-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/bytes/WrapperBytes-description.adoc
index 79eabe7..e1f29bf 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/bytes/WrapperBytes-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/bytes/WrapperBytes-description.adoc
@@ -7,77 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `WrapperByteHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/WrapperByteHolder.java[tags=class]
-----
-
-
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `Byte` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/WrapperByteHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/WrapperByteHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
+=== WrapperByteHolder
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/WrapperByteHolder_actionReturning.java[tags=class]
-----
-
-
-* the `actionReturningCollection` action is:
-+
-[source,java]
-----
-include::holder/WrapperByteHolder_actionReturningCollection.java[tags=class]
-----
+The `WrapperByteHolder` interface is used to contribute a number of mixins to both types:
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
[source,java]
----
-include::holder/WrapperByteHolder_mixinProperty.java[tags=class]
+include::holder/WrapperByteHolder.java[tags=class]
----
+=== WrapperByteHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `WrapperByteHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/WrapperByteHolder2.java[tags=class]
-----
+The `WrapperByteHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/bytes/jdo/WrapperByteJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/bytes/jdo/WrapperByteJdo-description.adoc
index 95a7c95..9ad682c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/bytes/jdo/WrapperByteJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/bytes/jdo/WrapperByteJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../WrapperBytes-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/bytes/vm/WrapperByteVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/bytes/vm/WrapperByteVm-description.adoc
index baa4f17..7f39e98 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/bytes/vm/WrapperByteVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/bytes/vm/WrapperByteVm-description.adoc
@@ -11,3 +11,5 @@ include::WrapperByteVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../WrapperBytes-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/characters/WrapperCharacters-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/characters/WrapperCharacters-description.adoc
index 5c8cc7f..dd04e0e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/characters/WrapperCharacters-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/characters/WrapperCharacters-description.adoc
@@ -7,77 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `WrapperCharacterHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/WrapperCharacterHolder.java[tags=class]
-----
-
-
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `Character` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/WrapperCharacterHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/WrapperCharacterHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
+=== WrapperCharacterHolder
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/WrapperCharacterHolder_actionReturning.java[tags=class]
-----
-
-
-* the `actionReturningCollection` action is:
-+
-[source,java]
-----
-include::holder/WrapperCharacterHolder_actionReturningCollection.java[tags=class]
-----
+The `WrapperCharacterHolder` interface is used to contribute a number of mixins to both types:
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
[source,java]
----
-include::holder/WrapperCharacterHolder_mixinProperty.java[tags=class]
+include::holder/WrapperCharacterHolder.java[tags=class]
----
+=== WrapperCharacterHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `WrapperCharacterHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/WrapperCharacterHolder2.java[tags=class]
-----
+The `WrapperCharacterHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/characters/jdo/WrapperCharacterJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/characters/jdo/WrapperCharacterJdo-description.adoc
index dcf9598..17306a5 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/characters/jdo/WrapperCharacterJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/characters/jdo/WrapperCharacterJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../WrapperCharacters-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/characters/vm/WrapperCharacterVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/characters/vm/WrapperCharacterVm-description.adoc
index f5ac1b9..1bc1650 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/characters/vm/WrapperCharacterVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/characters/vm/WrapperCharacterVm-description.adoc
@@ -11,3 +11,5 @@ include::WrapperCharacterVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../WrapperCharacters-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/doubles/WrapperDoubles-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/doubles/WrapperDoubles-description.adoc
index 1d60503..ad0b106 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/doubles/WrapperDoubles-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/doubles/WrapperDoubles-description.adoc
@@ -7,76 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `WrapperDoubleHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/WrapperDoubleHolder.java[tags=class]
-----
-
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `Double` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/WrapperDoubleHolder_updateReadOnlyProperty.java[tags=class]
-----
+=== WrapperDoubleHolder
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/WrapperDoubleHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
+The `WrapperDoubleHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturning` action is:
-+
[source,java]
----
-include::holder/WrapperDoubleHolder_actionReturning.java[tags=class]
-----
-
-
-* the `actionReturningCollection` action is:
-+
-[source,java]
-----
-include::holder/WrapperDoubleHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/WrapperDoubleHolder_mixinProperty.java[tags=class]
+include::holder/WrapperDoubleHolder.java[tags=class]
----
+=== WrapperDoubleHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `WrapperDoubleHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/WrapperDoubleHolder2.java[tags=class]
-----
+The `WrapperDoubleHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/doubles/jdo/WrapperDoubleJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/doubles/jdo/WrapperDoubleJdo-description.adoc
index 10d2268..bf1db4f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/doubles/jdo/WrapperDoubleJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/doubles/jdo/WrapperDoubleJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../WrapperDoubles-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/doubles/vm/WrapperDoubleVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/doubles/vm/WrapperDoubleVm-description.adoc
index b30a6cb..a046cfd 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/doubles/vm/WrapperDoubleVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/doubles/vm/WrapperDoubleVm-description.adoc
@@ -11,3 +11,5 @@ include::WrapperDoubleVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../WrapperDoubles-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/floats/WrapperFloats-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/floats/WrapperFloats-description.adoc
index a2b6c20..78bca1b 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/floats/WrapperFloats-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/floats/WrapperFloats-description.adoc
@@ -7,76 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `WrapperFloatHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/WrapperFloatHolder.java[tags=class]
-----
-
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `Float` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/WrapperFloatHolder_updateReadOnlyProperty.java[tags=class]
-----
+=== WrapperFloatHolder
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/WrapperFloatHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
+The `WrapperFloatHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturning` action is:
-+
[source,java]
----
-include::holder/WrapperFloatHolder_actionReturning.java[tags=class]
-----
-
-
-* the `actionReturningCollection` action is:
-+
-[source,java]
-----
-include::holder/WrapperFloatHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/WrapperFloatHolder_mixinProperty.java[tags=class]
+include::holder/WrapperFloatHolder.java[tags=class]
----
+=== WrapperFloatHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `WrapperFloatHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/WrapperFloatHolder2.java[tags=class]
-----
+The `WrapperFloatHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/floats/jdo/WrapperFloatJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/floats/jdo/WrapperFloatJdo-description.adoc
index cd7e0c1..fec0b32 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/floats/jdo/WrapperFloatJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/floats/jdo/WrapperFloatJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../WrapperFloats-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/floats/vm/WrapperFloatVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/floats/vm/WrapperFloatVm-description.adoc
index c3bb83f..38c26b4 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/floats/vm/WrapperFloatVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/floats/vm/WrapperFloatVm-description.adoc
@@ -11,3 +11,5 @@ include::WrapperFloatVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../WrapperFloats-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/integers/WrapperIntegers-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/integers/WrapperIntegers-description.adoc
index 74fdd5d..0066644 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/integers/WrapperIntegers-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/integers/WrapperIntegers-description.adoc
@@ -7,77 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `WrapperIntegerHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/WrapperIntegerHolder.java[tags=class]
-----
-
-
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `Integer` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/WrapperIntegerHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/WrapperIntegerHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
+=== WrapperIntegerHolder
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/WrapperIntegerHolder_actionReturning.java[tags=class]
-----
-
-
-* the `actionReturningCollection` action is:
-+
-[source,java]
-----
-include::holder/WrapperIntegerHolder_actionReturningCollection.java[tags=class]
-----
+The `WrapperIntegerHolder` interface is used to contribute a number of mixins to both types:
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
[source,java]
----
-include::holder/WrapperIntegerHolder_mixinProperty.java[tags=class]
+include::holder/WrapperIntegerHolder.java[tags=class]
----
+=== WrapperIntegerHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `WrapperIntegerHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/WrapperIntegerHolder2.java[tags=class]
-----
+The `WrapperIntegerHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/integers/jdo/WrapperIntegerJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/integers/jdo/WrapperIntegerJdo-description.adoc
index c19aaa0..d8cf4c8 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/integers/jdo/WrapperIntegerJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/integers/jdo/WrapperIntegerJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../WrapperIntegers-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/integers/vm/WrapperIntegerVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/integers/vm/WrapperIntegerVm-description.adoc
index 19006cc..89a42fb 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/integers/vm/WrapperIntegerVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/integers/vm/WrapperIntegerVm-description.adoc
@@ -11,3 +11,5 @@ include::WrapperIntegerVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../WrapperIntegers-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/longs/WrapperLongs-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/longs/WrapperLongs-description.adoc
index 2b7bb5c..0d457f7 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/longs/WrapperLongs-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/longs/WrapperLongs-description.adoc
@@ -7,75 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `WrapperLongHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/WrapperLongHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `Long` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/WrapperLongHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/WrapperLongHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/WrapperLongHolder_actionReturning.java[tags=class]
-----
+=== WrapperLongHolder
+The `WrapperLongHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/WrapperLongHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/WrapperLongHolder_mixinProperty.java[tags=class]
+include::holder/WrapperLongHolder.java[tags=class]
----
+=== WrapperLongHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `WrapperLongHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/WrapperLongHolder2.java[tags=class]
-----
+The `WrapperLongHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/longs/jdo/WrapperLongJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/longs/jdo/WrapperLongJdo-description.adoc
index d9a92da..01462bd 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/longs/jdo/WrapperLongJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/longs/jdo/WrapperLongJdo-description.adoc
@@ -13,3 +13,5 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+
+include::../WrapperLongs-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/longs/vm/WrapperLongVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/longs/vm/WrapperLongVm-description.adoc
index eb297f1..717659d 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/longs/vm/WrapperLongVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/longs/vm/WrapperLongVm-description.adoc
@@ -11,3 +11,5 @@ include::WrapperLongVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../WrapperLongs-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/shorts/WrapperShorts-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/shorts/WrapperShorts-description.adoc
index ca5c44a..aa650aa 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/shorts/WrapperShorts-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/shorts/WrapperShorts-description.adoc
@@ -7,75 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `WrapperShortHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/WrapperShortHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `Short` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/WrapperShortHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/WrapperShortHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/WrapperShortHolder_actionReturning.java[tags=class]
-----
+=== WrapperShortHolder
+The `WrapperShortHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/WrapperShortHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/WrapperShortHolder_mixinProperty.java[tags=class]
+include::holder/WrapperShortHolder.java[tags=class]
----
+=== WrapperShortHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `WrapperShortHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/WrapperShortHolder2.java[tags=class]
-----
+The `WrapperShortHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/shorts/jdo/WrapperShortJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/shorts/jdo/WrapperShortJdo-description.adoc
index 4c93dc6..3ac3d5e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/shorts/jdo/WrapperShortJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/shorts/jdo/WrapperShortJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../WrapperShorts-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/shorts/vm/WrapperShortVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/shorts/vm/WrapperShortVm-description.adoc
index d7cb0e1..cf03dd1 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/shorts/vm/WrapperShortVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/shorts/vm/WrapperShortVm-description.adoc
@@ -11,3 +11,5 @@ include::WrapperShortVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../WrapperShorts-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/JavaLangStrings-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/JavaLangStrings-description.adoc
index 8ca96ca..a7159e0 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/JavaLangStrings-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/JavaLangStrings-description.adoc
@@ -7,75 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `JavaLangStringHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/JavaLangStringHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `String` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaLangStringHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaLangStringHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JavaLangStringHolder_actionReturning.java[tags=class]
-----
+=== JavaLangStringHolder
+The `JavaLangStringHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/JavaLangStringHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/JavaLangStringHolder_mixinProperty.java[tags=class]
+include::holder/JavaLangStringHolder.java[tags=class]
----
+=== JavaLangStringHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `JavaLangStringHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/JavaLangStringHolder2.java[tags=class]
-----
+The `JavaLangStringHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/jdo/JavaLangStringJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/jdo/JavaLangStringJdo-description.adoc
index 48d5c1e..7522000 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/jdo/JavaLangStringJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/jdo/JavaLangStringJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../JavaLangStrings-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/vm/JavaLangStringVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/vm/JavaLangStringVm-description.adoc
index 9078348..3ff03b2 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/vm/JavaLangStringVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/vm/JavaLangStringVm-description.adoc
@@ -11,3 +11,5 @@ include::JavaLangStringVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../JavaLangStrings-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigdecimals/JavaMathBigDecimals-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigdecimals/JavaMathBigDecimals-description.adoc
index 836472d..301324d 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigdecimals/JavaMathBigDecimals-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigdecimals/JavaMathBigDecimals-description.adoc
@@ -7,75 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `JavaMathBigDecimalHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/JavaMathBigDecimalHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `java.math.BigDecimal` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaMathBigDecimalHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaMathBigDecimalHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JavaMathBigDecimalHolder_actionReturning.java[tags=class]
-----
+=== JavaMathBigDecimalHolder
+The `JavaMathBigDecimalHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/JavaMathBigDecimalHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/JavaMathBigDecimalHolder_mixinProperty.java[tags=class]
+include::holder/JavaMathBigDecimalHolder.java[tags=class]
----
+=== JavaMathBigDecimalHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `JavaMathBigDecimalHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/JavaMathBigDecimalHolder2.java[tags=class]
-----
+The `JavaMathBigDecimalHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigdecimals/jdo/JavaMathBigDecimalJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigdecimals/jdo/JavaMathBigDecimalJdo-description.adoc
index e8402365..66033ec 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigdecimals/jdo/JavaMathBigDecimalJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigdecimals/jdo/JavaMathBigDecimalJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../JavaMathBigDecimals-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigdecimals/vm/JavaMathBigDecimalVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigdecimals/vm/JavaMathBigDecimalVm-description.adoc
index 77dc8a3..85cd2ab 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigdecimals/vm/JavaMathBigDecimalVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigdecimals/vm/JavaMathBigDecimalVm-description.adoc
@@ -11,3 +11,4 @@ include::JavaMathBigDecimalVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+include::../JavaMathBigDecimals-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigintegers/JavaMathBigIntegers-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigintegers/JavaMathBigIntegers-description.adoc
index efc023f..045ca77 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigintegers/JavaMathBigIntegers-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigintegers/JavaMathBigIntegers-description.adoc
@@ -7,75 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `JavaMathBigIntegerHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/JavaMathBigIntegerHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `java.math.BigInteger` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaMathBigIntegerHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaMathBigIntegerHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JavaMathBigIntegerHolder_actionReturning.java[tags=class]
-----
+=== JavaMathBigIntegerHolder
+The `JavaMathBigIntegerHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/JavaMathBigIntegerHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/JavaMathBigIntegerHolder_mixinProperty.java[tags=class]
+include::holder/JavaMathBigIntegerHolder.java[tags=class]
----
+=== JavaMathBigIntegerHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `JavaMathBigIntegerHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/JavaMathBigIntegerHolder2.java[tags=class]
-----
+The `JavaMathBigIntegerHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigintegers/jdo/JavaMathBigIntegerJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigintegers/jdo/JavaMathBigIntegerJdo-description.adoc
index a1f2756..438d411 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigintegers/jdo/JavaMathBigIntegerJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigintegers/jdo/JavaMathBigIntegerJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../JavaMathBigIntegers-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigintegers/vm/JavaMathBigIntegerVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigintegers/vm/JavaMathBigIntegerVm-description.adoc
index 29d8fc3..583ca71 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigintegers/vm/JavaMathBigIntegerVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigintegers/vm/JavaMathBigIntegerVm-description.adoc
@@ -11,3 +11,5 @@ include::JavaMathBigIntegerVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../JavaMathBigIntegers-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javanet/urls/JavaNetUrls-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javanet/urls/JavaNetUrls-description.adoc
index c1dd994..349ea85 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javanet/urls/JavaNetUrls-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javanet/urls/JavaNetUrls-description.adoc
@@ -7,75 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `JavaNetUrlHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/JavaNetUrlHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `java.net.URL` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaNetUrlHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaNetUrlHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JavaNetUrlHolder_actionReturning.java[tags=class]
-----
+=== JavaNetUrlHolder
+The `JavaNetUrlHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/JavaNetUrlHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/JavaNetUrlHolder_mixinProperty.java[tags=class]
+include::holder/JavaNetUrlHolder.java[tags=class]
----
+=== JavaNetUrlHolder2
-== @PropertyLayout(labelPosition=...)
-
-There is also an extended interface, `JavaNetUrlHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/JavaNetUrlHolder2.java[tags=class]
-----
+The `JavaNetUrlHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javanet/urls/jdo/JavaNetUrlJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javanet/urls/jdo/JavaNetUrlJdo-description.adoc
index 424fb4c..3a0ef0f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javanet/urls/jdo/JavaNetUrlJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javanet/urls/jdo/JavaNetUrlJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../JavaNetUrls-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javanet/urls/vm/JavaNetUrlVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javanet/urls/vm/JavaNetUrlVm-description.adoc
index 17eefb5..d70f44e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javanet/urls/vm/JavaNetUrlVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javanet/urls/vm/JavaNetUrlVm-description.adoc
@@ -11,3 +11,5 @@ include::JavaNetUrlVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../JavaNetUrls-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqldate/JavaSqlDates-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqldate/JavaSqlDates-description.adoc
index 149fea5..6e8ea81 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqldate/JavaSqlDates-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqldate/JavaSqlDates-description.adoc
@@ -7,93 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
-
-These objects both implement a common interface, `JavaSqlDateHolder`:
-
-[source,java]
-----
-include::holder/JavaSqlDateHolder.java[tags=class]
-----
+== Common interfaces
+The entity and view model types both implement some common interfaces.
+=== JavaSqlDateHolder
-== Mixin actions
-
-A number of mixin actions contribute through the common `JavaSqlDateHolder` interface, demonstrate the use of `java.sql.Date` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaSqlDateHolder_updateReadOnlyProperty.java[tags=class]
-----
+The `JavaSqlDateHolder` interface is used to contribute a number of mixins to both types:
-* the `updateReadOnlyOptionalProperty` action is:
-+
[source,java]
----
-include::holder/JavaSqlDateHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JavaSqlDateHolder_actionReturning.java[tags=class]
-----
-
-
-* the `actionReturningCollection` action is:
-+
-[source,java]
-----
-include::holder/JavaSqlDateHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/JavaSqlDateHolder_mixinProperty.java[tags=class]
-----
-
-
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `JavaSqlDateHolder2` interface:
-
-[source,java]
-----
-include::holder/JavaSqlDateHolder2.java[tags=class]
+include::holder/JavaSqlDateHolder.java[tags=class]
----
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
-
-
-== @PropertyLayout(renderDay=...)
-
-To demonstrate support for `@PropertyLayout(renderDay=...)` -- to simplify the modelling "[inclusive, exclusive)" date ranges -- the entity and view model objects both implement the extended `JavaSqlDateHolder3` interface.
-All methods have a default implementation:
-
-[source,java]
-----
-include::holder/JavaSqlDateHolder3.java[tags=class]
-----
+=== JavaSqlDateHolder2
-<.> Render the value as the day before
-<.> Render the value unchanged
-<.> Render the value as the day before
+The `JavaSqlDateHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqldate/jdo/JavaSqlDateJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqldate/jdo/JavaSqlDateJdo-description.adoc
index c5ae92c..402797a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqldate/jdo/JavaSqlDateJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqldate/jdo/JavaSqlDateJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../JavaSqlDates-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqldate/vm/JavaSqlDateVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqldate/vm/JavaSqlDateVm-description.adoc
index a7a533c..e8d4ab0 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqldate/vm/JavaSqlDateVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqldate/vm/JavaSqlDateVm-description.adoc
@@ -12,3 +12,5 @@ include::JavaSqlDateVm.java[tags=class]
+
Properties are optional by default in JAXB, so no additional annotation required.
+
+include::../JavaSqlDates-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqltimestamp/JavaSqlTimestamps-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqltimestamp/JavaSqlTimestamps-description.adoc
index 9a153d8..3df2f6b 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqltimestamp/JavaSqlTimestamps-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqltimestamp/JavaSqlTimestamps-description.adoc
@@ -7,91 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `JavaSqlTimestampHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/JavaSqlTimestampHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `java.sql.Timestamp` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaSqlTimestampHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaSqlTimestampHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JavaSqlTimestampHolder_actionReturning.java[tags=class]
-----
+=== JavaSqlTimestampHolder
+The `JavaSqlTimestampHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/JavaSqlTimestampHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/JavaSqlTimestampHolder_mixinProperty.java[tags=class]
-----
-
-
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `JavaSqlTimestampHolder2` interface:
-
-[source,java]
-----
-include::holder/JavaSqlTimestampHolder2.java[tags=class]
+include::holder/JavaSqlTimestampHolder.java[tags=class]
----
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
-
-
-== @PropertyLayout(renderDay=...)
-
-To demonstrate support for `@PropertyLayout(renderDay=...)` -- to simplify the modelling "[inclusive, exclusive)" date ranges -- the entity and view model objects both implement the extended `JavaSqlTimestampHolder3` interface.
-All methods have a default implementation:
-
-[source,java]
-----
-include::holder/JavaSqlTimestampHolder3.java[tags=class]
-----
+=== JavaSqlTimestampHolder2
-<.> Render the value as the day before
-<.> Render the value unchanged
-<.> Render the value as the day before
+The `JavaSqlTimestampHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqltimestamp/jdo/JavaSqlTimestampJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqltimestamp/jdo/JavaSqlTimestampJdo-description.adoc
index 6cb31a1..4ce996a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqltimestamp/jdo/JavaSqlTimestampJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqltimestamp/jdo/JavaSqlTimestampJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../JavaSqlTimestamps-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqltimestamp/vm/JavaSqlTimestampVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqltimestamp/vm/JavaSqlTimestampVm-description.adoc
index 0912446..8b1e449 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqltimestamp/vm/JavaSqlTimestampVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqltimestamp/vm/JavaSqlTimestampVm-description.adoc
@@ -12,3 +12,5 @@ include::JavaSqlTimestampVm.java[tags=class]
+
Properties are optional by default in JAXB, so no additional annotation required.
+
+include::../JavaSqlTimestamps-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldate/JavaTimeLocalDates-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldate/JavaTimeLocalDates-description.adoc
index 2e61560..84c9f12 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldate/JavaTimeLocalDates-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldate/JavaTimeLocalDates-description.adoc
@@ -7,91 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `JavaTimeLocalDateHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/JavaTimeLocalDateHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `java.time.LocalDate` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeLocalDateHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeLocalDateHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeLocalDateHolder_actionReturning.java[tags=class]
-----
+=== JavaTimeLocalDateHolder
+The `JavaTimeLocalDateHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/JavaTimeLocalDateHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/JavaTimeLocalDateHolder_mixinProperty.java[tags=class]
-----
-
-
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `JavaTimeLocalDateHolder2` interface:
-
-[source,java]
-----
-include::holder/JavaTimeLocalDateHolder2.java[tags=class]
+include::holder/JavaTimeLocalDateHolder.java[tags=class]
----
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
-
-
-== @PropertyLayout(renderDay=...)
-
-To demonstrate support for `@PropertyLayout(renderDay=...)` -- to simplify the modelling "[inclusive, exclusive)" date ranges -- the entity and view model objects both implement the extended `JavaTimeLocalDateHolder3` interface.
-All methods have a default implementation:
-
-[source,java]
-----
-include::holder/JavaTimeLocalDateHolder3.java[tags=class]
-----
+=== JavaTimeLocalDateHolder2
-<.> Render the value as the day before
-<.> Render the value unchanged
-<.> Render the value as the day before
+The `JavaTimeLocalDateHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldate/jdo/JavaTimeLocalDateJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldate/jdo/JavaTimeLocalDateJdo-description.adoc
index 3f71ab8..005ccc2 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldate/jdo/JavaTimeLocalDateJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldate/jdo/JavaTimeLocalDateJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../JavaTimeLocalDates-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldate/vm/JavaTimeLocalDateVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldate/vm/JavaTimeLocalDateVm-description.adoc
index b61ba8c..f5704b2 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldate/vm/JavaTimeLocalDateVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldate/vm/JavaTimeLocalDateVm-description.adoc
@@ -12,3 +12,5 @@ include::JavaTimeLocalDateVm.java[tags=class]
+
Properties are optional by default in JAXB, so no additional annotation required.
+
+include::../JavaTimeLocalDates-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldatetime/JavaTimeLocalDateTimes-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldatetime/JavaTimeLocalDateTimes-description.adoc
index 430614c..6490611 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldatetime/JavaTimeLocalDateTimes-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldatetime/JavaTimeLocalDateTimes-description.adoc
@@ -7,90 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `JavaTimeLocalDateTimeHolder`:
-
-[source,java]
-----
-include::holder/JavaTimeLocalDateTimeHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `java.time.LocalDateTime` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeLocalDateTimeHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeLocalDateTimeHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeLocalDateTimeHolder_actionReturning.java[tags=class]
-----
+The entity and view model types both implement some common interfaces.
+=== JavaTimeLocalDateTimeHolder
-* the `actionReturningCollection` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeLocalDateTimeHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
+The `JavaTimeLocalDateTimeHolder` interface is used to contribute a number of mixins to both types:
-* the `mixinProperty` property:
-+
[source,java]
----
-include::holder/JavaTimeLocalDateTimeHolder_mixinProperty.java[tags=class]
-----
-
-
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `JavaTimeLocalDateTimeHolder2` interface:
-
-[source,java]
-----
-include::holder/JavaTimeLocalDateTimeHolder2.java[tags=class]
+include::holder/JavaTimeLocalDateTimeHolder.java[tags=class]
----
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
-
-== @PropertyLayout(renderDay=...)
-
-To demonstrate support for `@PropertyLayout(renderDay=...)` -- to simplify the modelling "[inclusive, exclusive)" date ranges -- the entity and view model objects both implement the extended `JavaTimeLocalDateTimeHolder3` interface.
-All methods have a default implementation:
-
-[source,java]
-----
-include::holder/JavaTimeLocalDateTimeHolder3.java[tags=class]
-----
+=== JavaTimeLocalDateTimeHolder2
-<.> Render the value as the day before
-<.> Render the value unchanged
-<.> Render the value as the day before
+The `JavaTimeLocalDateTimeHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldatetime/jdo/JavaTimeLocalDateTimeJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldatetime/jdo/JavaTimeLocalDateTimeJdo-description.adoc
index 369583d..0140d61 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldatetime/jdo/JavaTimeLocalDateTimeJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldatetime/jdo/JavaTimeLocalDateTimeJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../JavaTimeLocalDateTimes-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldatetime/vm/JavaTimeLocalDateTimeVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldatetime/vm/JavaTimeLocalDateTimeVm-description.adoc
index b183cef..e9e374e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldatetime/vm/JavaTimeLocalDateTimeVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldatetime/vm/JavaTimeLocalDateTimeVm-description.adoc
@@ -12,3 +12,5 @@ include::JavaTimeLocalDateTimeVm.java[tags=class]
+
Properties are optional by default in JAXB, so no additional annotation required.
+
+include::../JavaTimeLocalDateTimes-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsetdatetime/JavaTimeOffsetDateTimes-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsetdatetime/JavaTimeOffsetDateTimes-description.adoc
index 973fd05..a7f2fcb 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsetdatetime/JavaTimeOffsetDateTimes-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsetdatetime/JavaTimeOffsetDateTimes-description.adoc
@@ -7,92 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `JavaTimeOffsetDateTimeHolder`:
-
-[source,java]
-----
-include::holder/JavaTimeOffsetDateTimeHolder.java[tags=class]
-----
-
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `java.time.OffsetDateTime` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeOffsetDateTimeHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeOffsetDateTimeHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeOffsetDateTimeHolder_actionReturning.java[tags=class]
-----
+The entity and view model types both implement some common interfaces.
+=== JavaTimeOffsetDateTimeHolder
-* the `actionReturningCollection` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeOffsetDateTimeHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/JavaTimeOffsetDateTimeHolder_mixinProperty.java[tags=class]
-----
-
-
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `JavaTimeOffsetDateTimeHolder2` interface:
+The `JavaTimeOffsetDateTimeHolder` interface is used to contribute a number of mixins to both types:
[source,java]
----
-include::holder/JavaTimeOffsetDateTimeHolder2.java[tags=class]
+include::holder/JavaTimeOffsetDateTimeHolder.java[tags=class]
----
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
-
-
-== @PropertyLayout(renderDay=...)
-
-To demonstrate support for `@PropertyLayout(renderDay=...)` -- to simplify the modelling "[inclusive, exclusive)" date ranges -- the entity and view model objects both implement the extended `JavaTimeOffsetDateTimeHolder3` interface.
-All methods have a default implementation:
-
-[source,java]
-----
-include::holder/JavaTimeOffsetDateTimeHolder3.java[tags=class]
-----
+=== JavaTimeOffsetDateTimeHolder2
-<.> Render the value as the day before
-<.> Render the value unchanged
-<.> Render the value as the day before
+The `JavaTimeOffsetDateTimeHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsetdatetime/jdo/JavaTimeOffsetDateTimeJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsetdatetime/jdo/JavaTimeOffsetDateTimeJdo-description.adoc
index b5eafeb..26a4fbf 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsetdatetime/jdo/JavaTimeOffsetDateTimeJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsetdatetime/jdo/JavaTimeOffsetDateTimeJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../JavaTimeOffsetDateTimes-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsetdatetime/vm/JavaTimeOffsetDateTimeVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsetdatetime/vm/JavaTimeOffsetDateTimeVm-description.adoc
index cef6e03..8dc3d2e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsetdatetime/vm/JavaTimeOffsetDateTimeVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsetdatetime/vm/JavaTimeOffsetDateTimeVm-description.adoc
@@ -12,3 +12,5 @@ include::JavaTimeOffsetDateTimeVm.java[tags=class]
+
Properties are optional by default in JAXB, so no additional annotation required.
+
+include::../JavaTimeOffsetDateTimes-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsettime/JavaTimeOffsetTimes-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsettime/JavaTimeOffsetTimes-description.adoc
index ec7bc73..f213d34 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsettime/JavaTimeOffsetTimes-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsettime/JavaTimeOffsetTimes-description.adoc
@@ -7,91 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `JavaTimeOffsetTimeHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/JavaTimeOffsetTimeHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `java.time.OffsetTime` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeOffsetTimeHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeOffsetTimeHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeOffsetTimeHolder_actionReturning.java[tags=class]
-----
+=== JavaTimeOffsetTimeHolder
+The `JavaTimeOffsetTimeHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/JavaTimeOffsetTimeHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/JavaTimeOffsetTimeHolder_mixinProperty.java[tags=class]
-----
-
-
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `JavaTimeOffsetTimeHolder2` interface:
-
-[source,java]
-----
-include::holder/JavaTimeOffsetTimeHolder2.java[tags=class]
+include::holder/JavaTimeOffsetTimeHolder.java[tags=class]
----
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
-
-
-== @PropertyLayout(renderDay=...)
-
-To demonstrate support for `@PropertyLayout(renderDay=...)` -- to simplify the modelling "[inclusive, exclusive)" date ranges -- the entity and view model objects both implement the extended `JavaTimeOffsetTimeHolder3` interface.
-All methods have a default implementation:
-
-[source,java]
-----
-include::holder/JavaTimeOffsetTimeHolder3.java[tags=class]
-----
+=== JavaTimeOffsetTimeHolder2
-<.> Render the value as the day before
-<.> Render the value unchanged
-<.> Render the value as the day before
+The `JavaTimeOffsetTimeHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsettime/jdo/JavaTimeOffsetTimeJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsettime/jdo/JavaTimeOffsetTimeJdo-description.adoc
index 671c1c1..4aef3f8 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsettime/jdo/JavaTimeOffsetTimeJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsettime/jdo/JavaTimeOffsetTimeJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../JavaTimeOffsetTimes-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsettime/vm/JavaTimeOffsetTimeVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsettime/vm/JavaTimeOffsetTimeVm-description.adoc
index f50e34d..a82a45c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsettime/vm/JavaTimeOffsetTimeVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsettime/vm/JavaTimeOffsetTimeVm-description.adoc
@@ -12,3 +12,5 @@ include::JavaTimeOffsetTimeVm.java[tags=class]
+
Properties are optional by default in JAXB, so no additional annotation required.
+
+include::../JavaTimeOffsetTimes-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/JavaTimeZonedDateTimes-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/JavaTimeZonedDateTimes-description.adoc
index 080ba7c..f02686f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/JavaTimeZonedDateTimes-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/JavaTimeZonedDateTimes-description.adoc
@@ -7,92 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `JavaTimeZonedDateTimeHolder`:
-
-[source,java]
-----
-include::holder/JavaTimeZonedDateTimeHolder.java[tags=class]
-----
-
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `java.time.ZonedDateTime` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeZonedDateTimeHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeZonedDateTimeHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeZonedDateTimeHolder_actionReturning.java[tags=class]
-----
+The entity and view model types both implement some common interfaces.
+=== JavaTimeZonedDateTimeHolder
-* the `actionReturningCollection` action is:
-+
-[source,java]
-----
-include::holder/JavaTimeZonedDateTimeHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/JavaTimeZonedDateTimeHolder_mixinProperty.java[tags=class]
-----
-
-
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `JavaTimeZonedDateTimeHolder2` interface:
+The `JavaTimeZonedDateTimeHolder` interface is used to contribute a number of mixins to both types:
[source,java]
----
-include::holder/JavaTimeZonedDateTimeHolder2.java[tags=class]
+include::holder/JavaTimeZonedDateTimeHolder.java[tags=class]
----
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
-
-
-== @PropertyLayout(renderDay=...)
-
-To demonstrate support for `@PropertyLayout(renderDay=...)` -- to simplify the modelling "[inclusive, exclusive)" date ranges -- the entity and view model objects both implement the extended `JavaTimeZonedDateTimeHolder3` interface.
-All methods have a default implementation:
-
-[source,java]
-----
-include::holder/JavaTimeZonedDateTimeHolder3.java[tags=class]
-----
+=== JavaTimeZonedDateTimeHolder2
-<.> Render the value as the day before
-<.> Render the value unchanged
-<.> Render the value as the day before
+The `JavaTimeZonedDateTimeHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/jdo/JavaTimeZonedDateTimeJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/jdo/JavaTimeZonedDateTimeJdo-description.adoc
index df10b8b..2b66140 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/jdo/JavaTimeZonedDateTimeJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/jdo/JavaTimeZonedDateTimeJdo-description.adoc
@@ -13,3 +13,5 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+
+include::../JavaTimeZonedDateTimes-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/vm/JavaTimeZonedDateTimeVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/vm/JavaTimeZonedDateTimeVm-description.adoc
index 7f3dc80..de30e3a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/vm/JavaTimeZonedDateTimeVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/vm/JavaTimeZonedDateTimeVm-description.adoc
@@ -12,3 +12,5 @@ include::JavaTimeZonedDateTimeVm.java[tags=class]
+
Properties are optional by default in JAXB, so no additional annotation required.
+
+include::../JavaTimeZonedDateTimes-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/javautildate/JavaUtilDates-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/javautildate/JavaUtilDates-description.adoc
index ff1995c..e62ec74 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/javautildate/JavaUtilDates-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/javautildate/JavaUtilDates-description.adoc
@@ -7,90 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `JavaUtilDateHolder`:
-
-[source,java]
-----
-include::holder/JavaUtilDateHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `java.util.Date` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaUtilDateHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaUtilDateHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JavaUtilDateHolder_actionReturning.java[tags=class]
-----
+The entity and view model types both implement some common interfaces.
+=== JavaUtilDateHolder
-* the `actionReturningCollection` action is:
-+
-[source,java]
-----
-include::holder/JavaUtilDateHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
+The `JavaUtilDateHolder` interface is used to contribute a number of mixins to both types:
-* the `mixinProperty` property:
-+
[source,java]
----
-include::holder/JavaUtilDateHolder_mixinProperty.java[tags=class]
-----
-
-
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `JavaUtilDateHolder2` interface:
-
-[source,java]
-----
-include::holder/JavaUtilDateHolder2.java[tags=class]
+include::holder/JavaUtilDateHolder.java[tags=class]
----
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
-
-== @PropertyLayout(renderDay=...)
-
-To demonstrate support for `@PropertyLayout(renderDay=...)` -- to simplify the modelling "[inclusive, exclusive)" date ranges -- the entity and view model objects both implement the extended `JavaUtilDateHolder3` interface.
-All methods have a default implementation:
-
-[source,java]
-----
-include::holder/JavaUtilDateHolder3.java[tags=class]
-----
+=== JavaUtilDateHolder2
-<.> Render the value as the day before
-<.> Render the value unchanged
-<.> Render the value as the day before
+The `JavaUtilDateHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/javautildate/jdo/JavaUtilDateJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/javautildate/jdo/JavaUtilDateJdo-description.adoc
index 2a6cc9e..4542796 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/javautildate/jdo/JavaUtilDateJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/javautildate/jdo/JavaUtilDateJdo-description.adoc
@@ -13,3 +13,5 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+
+include::../JavaUtilDates-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/javautildate/vm/JavaUtilDateVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/javautildate/vm/JavaUtilDateVm-description.adoc
index 1375152..5683fd6 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/javautildate/vm/JavaUtilDateVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/javautildate/vm/JavaUtilDateVm-description.adoc
@@ -12,3 +12,5 @@ include::JavaUtilDateVm.java[tags=class]
+
Properties are optional by default in JAXB, so no additional annotation required.
+
+include::../JavaUtilDates-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/JavaUtilUuids-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/JavaUtilUuids-description.adoc
index f9d4b95..d334dc3 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/JavaUtilUuids-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/JavaUtilUuids-description.adoc
@@ -7,77 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `JavaUtilUuidHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/JavaUtilUuidHolder.java[tags=class]
-----
-
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `java.util.UUID` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaUtilUuidHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/JavaUtilUuidHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JavaUtilUuidHolder_actionReturning.java[tags=class]
-----
-
-
-* the `actionReturningCollection` action is:
-+
-[source,java]
-----
-include::holder/JavaUtilUuidHolder_actionReturningCollection.java[tags=class]
-----
+=== JavaUtilUuidHolder
-== Mixin properties
+The `JavaUtilUuidHolder` interface is used to contribute a number of mixins to both types:
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
[source,java]
----
-include::holder/JavaUtilUuidHolder_mixinProperty.java[tags=class]
+include::holder/JavaUtilUuidHolder.java[tags=class]
----
+=== JavaUtilUuidHolder2
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `JavaUtilUuidHolder2` interface:
-
-[source,java]
-----
-include::holder/JavaUtilUuidHolder2.java[tags=class]
-----
-
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+The `JavaUtilUuidHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/jdo/JavaUtilUuidJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/jdo/JavaUtilUuidJdo-description.adoc
index ce412e3..6420ae3 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/jdo/JavaUtilUuidJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/jdo/JavaUtilUuidJdo-description.adoc
@@ -13,3 +13,4 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+include::../JavaUtilUuids-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/vm/JavaUtilUuidVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/vm/JavaUtilUuidVm-description.adoc
index 3a57da0..bc5cd9f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/vm/JavaUtilUuidVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/vm/JavaUtilUuidVm-description.adoc
@@ -11,3 +11,5 @@ include::JavaUtilUuidVm.java[tags=class]
+
This is the default for JAXB so no additional annotation required.
+
+include::../JavaUtilUuids-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodadatetime/JodaDateTimes-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodadatetime/JodaDateTimes-description.adoc
index 95a29d0..e94cbe9 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodadatetime/JodaDateTimes-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodadatetime/JodaDateTimes-description.adoc
@@ -7,91 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `JodaDateTimeHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/JodaDateTimeHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `org.joda.time.DateTime` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JodaDateTimeHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/JodaDateTimeHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JodaDateTimeHolder_actionReturning.java[tags=class]
-----
+=== JodaDateTimeHolder
+The `JodaDateTimeHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/JodaDateTimeHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/JodaDateTimeHolder_mixinProperty.java[tags=class]
-----
-
-
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `JodaDateTimeHolder2` interface:
-
-[source,java]
-----
-include::holder/JodaDateTimeHolder2.java[tags=class]
+include::holder/JodaDateTimeHolder.java[tags=class]
----
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
-
-
-== @PropertyLayout(renderDay=...)
-
-To demonstrate support for `@PropertyLayout(renderDay=...)` -- to simplify the modelling "[inclusive, exclusive)" date ranges -- the entity and view model objects both implement the extended `JodaDateTimeHolder3` interface.
-All methods have a default implementation:
-
-[source,java]
-----
-include::holder/JodaDateTimeHolder3.java[tags=class]
-----
+=== JodaDateTimeHolder2
-<.> Render the value as the day before
-<.> Render the value unchanged
-<.> Render the value as the day before
+The `JodaDateTimeHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodadatetime/jdo/JodaDateTimeJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodadatetime/jdo/JodaDateTimeJdo-description.adoc
index 2e9edae..8eacbc4 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodadatetime/jdo/JodaDateTimeJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodadatetime/jdo/JodaDateTimeJdo-description.adoc
@@ -13,3 +13,5 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+
+include::../JodaDateTimes-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodadatetime/vm/JodaDateTimeVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodadatetime/vm/JodaDateTimeVm-description.adoc
index a63d1eb..9459cf0 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodadatetime/vm/JodaDateTimeVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodadatetime/vm/JodaDateTimeVm-description.adoc
@@ -12,3 +12,5 @@ include::JodaDateTimeVm.java[tags=class]
+
Properties are optional by default in JAXB, so no additional annotation required.
+
+include::../JodaDateTimes-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldate/JodaLocalDates-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldate/JodaLocalDates-description.adoc
index 98afbe4..332b9d2 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldate/JodaLocalDates-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldate/JodaLocalDates-description.adoc
@@ -7,91 +7,21 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `JodaLocalDateHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/JodaLocalDateHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `joda.time.LocalDate` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JodaLocalDateHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/JodaLocalDateHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JodaLocalDateHolder_actionReturning.java[tags=class]
-----
+=== JodaLocalDateHolder
+The `JodaLocalDateHolder` interface is used to contribute a number of mixins to both types:
-* the `actionReturningCollection` action is:
-+
[source,java]
----
-include::holder/JodaLocalDateHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/JodaLocalDateHolder_mixinProperty.java[tags=class]
-----
-
-
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `JodaLocalDateHolder2` interface:
-
-[source,java]
-----
-include::holder/JodaLocalDateHolder2.java[tags=class]
+include::holder/JodaLocalDateHolder.java[tags=class]
----
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
-
-
-== @PropertyLayout(renderDay=...)
-
-To demonstrate support for `@PropertyLayout(renderDay=...)` -- to simplify the modelling "[inclusive, exclusive)" date ranges -- the entity and view model objects both implement the extended `JodaLocalDateHolder3` interface.
-All methods have a default implementation:
-
-[source,java]
-----
-include::holder/JodaLocalDateHolder3.java[tags=class]
-----
+=== JodaLocalDateHolder2
-<.> Render the value as the day before
-<.> Render the value unchanged
-<.> Render the value as the day before
+The `JodaLocalDateHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldate/jdo/JodaLocalDateJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldate/jdo/JodaLocalDateJdo-description.adoc
index bbe3104..4322f87 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldate/jdo/JodaLocalDateJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldate/jdo/JodaLocalDateJdo-description.adoc
@@ -13,3 +13,5 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+
+include::../JodaLocalDates-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldate/vm/JodaLocalDateVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldate/vm/JodaLocalDateVm-description.adoc
index b3e4750..dca2146 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldate/vm/JodaLocalDateVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldate/vm/JodaLocalDateVm-description.adoc
@@ -12,3 +12,6 @@ include::JodaLocalDateVm.java[tags=class]
+
Properties are optional by default in JAXB, so no additional annotation required.
+
+
+include::../JodaLocalDates-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldatetime/JodaLocalDateTimes-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldatetime/JodaLocalDateTimes-description.adoc
index 3193e9e..66b1242 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldatetime/JodaLocalDateTimes-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldatetime/JodaLocalDateTimes-description.adoc
@@ -7,93 +7,22 @@ From here you can:
Some properties on these domain objects are mandatory, some optional.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `JodaLocalDateTimeHolder`:
-
-[source,java]
-----
-include::holder/JodaLocalDateTimeHolder.java[tags=class]
-----
-
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `joda.time.LocalDateTime` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/JodaLocalDateTimeHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/JodaLocalDateTimeHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/JodaLocalDateTimeHolder_actionReturning.java[tags=class]
-----
+The entity and view model types both implement some common interfaces.
+=== JodaLocalDateTimeHolder
-* the `actionReturningCollection` action is:
-+
-[source,java]
-----
-include::holder/JodaLocalDateTimeHolder_actionReturningCollection.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/JodaLocalDateTimeHolder_mixinProperty.java[tags=class]
-----
-
-
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `JodaLocalDateTimeHolder2` interface:
+The `JodaLocalDateTimeHolder` interface is used to contribute a number of mixins to both types:
[source,java]
----
-include::holder/JodaLocalDateTimeHolder2.java[tags=class]
+include::holder/JodaLocalDateTimeHolder.java[tags=class]
----
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
-
-
-== @PropertyLayout(renderDay=...)
-
-To demonstrate support for `@PropertyLayout(renderDay=...)` -- to simplify the modelling "[inclusive, exclusive)" date ranges -- the entity and view model objects both implement the extended `JodaLocalDateTimeHolder3` interface.
-All methods have a default implementation:
-
-[source,java]
-----
-include::holder/JodaLocalDateTimeHolder3.java[tags=class]
-----
+=== JodaLocalDateTimeHolder2
-<.> Render the value as the day before
-<.> Render the value unchanged
-<.> Render the value as the day before
+The `JodaLocalDateTimeHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldatetime/jdo/JodaLocalDateTimeJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldatetime/jdo/JodaLocalDateTimeJdo-description.adoc
index fba433d..93bdce0 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldatetime/jdo/JodaLocalDateTimeJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldatetime/jdo/JodaLocalDateTimeJdo-description.adoc
@@ -13,3 +13,6 @@ Apache Isis assumes properties are mandatory, so no additional annotation is req
<.> optional property as defined to JDO/DataNucleus
+
+include::../JodaLocalDateTimes-common.adoc[]
+
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldatetime/vm/JodaLocalDateTimeVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldatetime/vm/JodaLocalDateTimeVm-description.adoc
index 36d9500..af2b31e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldatetime/vm/JodaLocalDateTimeVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldatetime/vm/JodaLocalDateTimeVm-description.adoc
@@ -12,3 +12,6 @@ include::JodaLocalDateTimeVm.java[tags=class]
+
Properties are optional by default in JAXB, so no additional annotation required.
+
+
+include::../JodaLocalDateTimes-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans-description.adoc
index 02e88ad..0a7637e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans-description.adoc
@@ -7,57 +7,22 @@ From here you can:
Because `boolean` is a primitive value, the properties on these domain objects are mandatory.
-== Common interface
+== Common interfaces
-The two domain objects both implement a common interface, `PrimitiveBooleanHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/PrimitiveBooleanHolder.java[tags=class]
-----
-
-== Mixin actions
+=== PrimitiveBooleanHolder
-A number of mixin actions contribute through this interface, demonstrate the use of `boolean` as a parameter and as a return type.
-For example:
+The `PrimitiveBooleanHolder` interface is used to contribute a number of mixins to both types:
-* the `updateReadOnlyProperty` action is:
-+
[source,java]
----
-include::holder/PrimitiveBooleanHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/PrimitiveBooleanHolder_actionReturning.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/PrimitiveBooleanHolder_mixinProperty.java[tags=class]
+include::holder/PrimitiveBooleanHolder.java[tags=class]
----
-== @PropertyLayout(labelPosition=...)
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `PrimitiveBooleanHolder2` interface:
+=== PrimitiveBooleanHolder2
-[source,java]
-----
-include::holder/PrimitiveBooleanHolder2.java[tags=class]
-----
+The `PrimitiveBooleanHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jdo/PrimitiveBooleanJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jdo/PrimitiveBooleanJdo-description.adoc
index f44377f..8c1351e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jdo/PrimitiveBooleanJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jdo/PrimitiveBooleanJdo-description.adoc
@@ -5,4 +5,7 @@ JDO supports `boolean` link:http://www.datanucleus.org:15080/products/accessplat
include::PrimitiveBooleanJdo.java[tags="class"]
----
<.> a no-arg constructor is introduced by JDO enhancer
-<.> no additional JDO annotations required.
\ No newline at end of file
+<.> no additional JDO annotations required.
+
+
+include::../PrimitiveBooleans-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/vm/PrimitiveBooleanVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/vm/PrimitiveBooleanVm-description.adoc
index 89fe52e..65a85bb 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/vm/PrimitiveBooleanVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/vm/PrimitiveBooleanVm-description.adoc
@@ -5,4 +5,7 @@ JAXB supports `boolean` link:https://docs.oracle.com/cd/E12840_01/wls/docs103/we
include::PrimitiveBooleanVm.java[tags="class"]
----
<.> a no-arg constructor is required by JAXB
-<.> no additional JAXB annotations required.
\ No newline at end of file
+<.> no additional JAXB annotations required.
+
+
+include::../PrimitiveBooleans-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/bytes/PrimitiveBytes-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/bytes/PrimitiveBytes-description.adoc
index c31c5d8..704c80e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/bytes/PrimitiveBytes-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/bytes/PrimitiveBytes-description.adoc
@@ -7,59 +7,22 @@ From here you can:
Because `byte` is a primitive value, the properties on these domain objects are mandatory.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `PrimitiveByteHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/PrimitiveByteHolder.java[tags=class]
-----
-
-== Mixin actions
+=== PrimitiveByteHolder
-A number of mixin actions contribute through this interface, demonstrate the use of `byte` as a parameter and as a return type.
-For example:
+The `PrimitiveByteHolder` interface is used to contribute a number of mixins to both types:
-* the `updateReadOnlyProperty` action is:
-+
[source,java]
----
-include::holder/PrimitiveByteHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/PrimitiveByteHolder_actionReturning.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/PrimitiveByteHolder_mixinProperty.java[tags=class]
+include::holder/PrimitiveByteHolder.java[tags=class]
----
-== @PropertyLayout(labelPosition=...)
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `PrimitiveByteHolder2` interface:
+=== PrimitiveByteHolder2
-[source,java]
-----
-include::holder/PrimitiveByteHolder2.java[tags=class]
-----
+The `PrimitiveByteHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/bytes/jdo/PrimitiveByteJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/bytes/jdo/PrimitiveByteJdo-description.adoc
index e4ff8fb..03f6503 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/bytes/jdo/PrimitiveByteJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/bytes/jdo/PrimitiveByteJdo-description.adoc
@@ -5,4 +5,7 @@ JDO supports `byte` link:http://www.datanucleus.org:15080/products/accessplatfor
include::PrimitiveByteJdo.java[tags="class"]
----
<.> a no-arg constructor is introduced by JDO enhancer
-<.> no additional JDO annotations required.
\ No newline at end of file
+<.> no additional JDO annotations required.
+
+
+include::../PrimitiveBytes-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/bytes/vm/PrimitiveByteVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/bytes/vm/PrimitiveByteVm-description.adoc
index f560131..7fa7e30 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/bytes/vm/PrimitiveByteVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/bytes/vm/PrimitiveByteVm-description.adoc
@@ -5,4 +5,7 @@ JAXB supports `byte` link:https://docs.oracle.com/cd/E12840_01/wls/docs103/webse
include::PrimitiveByteVm.java[tags="class"]
----
<.> a no-arg constructor is required by JAXB
-<.> no additional JAXB annotations required.
\ No newline at end of file
+<.> no additional JAXB annotations required.
+
+
+include::../PrimitiveBytes-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/PrimitiveChars-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/PrimitiveChars-description.adoc
index 71a8879..aacad23 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/PrimitiveChars-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/PrimitiveChars-description.adoc
@@ -7,60 +7,22 @@ From here you can:
Because `char` is a primitive value, the properties on these domain objects are mandatory.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `PrimitiveCharHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/PrimitiveCharHolder.java[tags=class]
-----
-
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `char` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/PrimitiveCharHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/PrimitiveCharHolder_actionReturning.java[tags=class]
-----
+=== PrimitiveCharHolder
-== Mixin properties
+The `PrimitiveCharHolder` interface is used to contribute a number of mixins to both types:
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
[source,java]
----
-include::holder/PrimitiveCharHolder_mixinProperty.java[tags=class]
+include::holder/PrimitiveCharHolder.java[tags=class]
----
-== @PropertyLayout(labelPosition=...)
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `PrimitiveCharHolder2` interface:
+=== PrimitiveCharHolder2
-[source,java]
-----
-include::holder/PrimitiveCharHolder2.java[tags=class]
-----
+The `PrimitiveCharHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/jdo/PrimitiveCharJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/jdo/PrimitiveCharJdo-description.adoc
index 6771c1a..23a9f29 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/jdo/PrimitiveCharJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/jdo/PrimitiveCharJdo-description.adoc
@@ -5,4 +5,7 @@ JDO supports `char` link:http://www.datanucleus.org:15080/products/accessplatfor
include::PrimitiveCharJdo.java[tags="class"]
----
<.> a no-arg constructor is introduced by JDO enhancer
-<.> no additional JDO annotations required.
\ No newline at end of file
+<.> no additional JDO annotations required.
+
+
+include::../PrimitiveChars-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/vm/PrimitiveCharVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/vm/PrimitiveCharVm-description.adoc
index 5d8c845..fb1b1fa 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/vm/PrimitiveCharVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/vm/PrimitiveCharVm-description.adoc
@@ -5,4 +5,8 @@ JAXB supports `char` link:https://docs.oracle.com/cd/E12840_01/wls/docs103/webse
include::PrimitiveCharVm.java[tags="class"]
----
<.> a no-arg constructor is required by JAXB
-<.> no additional JAXB annotations required.
\ No newline at end of file
+<.> no additional JAXB annotations required.
+
+
+
+include::../PrimitiveChars-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/doubles/PrimitiveDoubles-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/doubles/PrimitiveDoubles-description.adoc
index 961f065..e83c9d1 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/doubles/PrimitiveDoubles-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/doubles/PrimitiveDoubles-description.adoc
@@ -7,59 +7,21 @@ From here you can:
Because `double` is a primitive value, the properties on these domain objects are mandatory.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `PrimitiveDoubleHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/PrimitiveDoubleHolder.java[tags=class]
-----
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `double` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/PrimitiveDoubleHolder_updateReadOnlyProperty.java[tags=class]
-----
+=== PrimitiveDoubleHolder
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/PrimitiveDoubleHolder_actionReturning.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
+The `PrimitiveDoubleHolder` interface is used to contribute a number of mixins to both types:
-* the `mixinProperty` property:
-+
[source,java]
----
-include::holder/PrimitiveDoubleHolder_mixinProperty.java[tags=class]
+include::holder/PrimitiveDoubleHolder.java[tags=class]
----
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `PrimitiveDoubleHolder2` interface:
+=== PrimitiveDoubleHolder2
-[source,java]
-----
-include::holder/PrimitiveDoubleHolder2.java[tags=class]
-----
+The `PrimitiveDoubleHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/doubles/jdo/PrimitiveDoubleJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/doubles/jdo/PrimitiveDoubleJdo-description.adoc
index d3c70ee..61abf20 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/doubles/jdo/PrimitiveDoubleJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/doubles/jdo/PrimitiveDoubleJdo-description.adoc
@@ -5,4 +5,8 @@ JDO supports `double` link:http://www.datanucleus.org:15080/products/accessplatf
include::PrimitiveDoubleJdo.java[tags="class"]
----
<.> a no-arg constructor is introduced by JDO enhancer
-<.> no additional JDO annotations required.
\ No newline at end of file
+<.> no additional JDO annotations required.
+
+
+
+include::../PrimitiveDoubles-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/doubles/vm/PrimitiveDoubleVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/doubles/vm/PrimitiveDoubleVm-description.adoc
index ede1376..051a97a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/doubles/vm/PrimitiveDoubleVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/doubles/vm/PrimitiveDoubleVm-description.adoc
@@ -5,4 +5,8 @@ JAXB supports `double` link:https://docs.oracle.com/cd/E12840_01/wls/docs103/web
include::PrimitiveDoubleVm.java[tags="class"]
----
<.> a no-arg constructor is required by JAXB
-<.> no additional JAXB annotations required.
\ No newline at end of file
+<.> no additional JAXB annotations required.
+
+
+
+include::../PrimitiveDoubles-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/floats/PrimitiveFloats-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/floats/PrimitiveFloats-description.adoc
index 16271d5..819d977 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/floats/PrimitiveFloats-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/floats/PrimitiveFloats-description.adoc
@@ -7,60 +7,21 @@ From here you can:
Because `float` is a primitive value, the properties on these domain objects are mandatory.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `PrimitiveFloatHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/PrimitiveFloatHolder.java[tags=class]
-----
-
-
-== Mixin actions
+=== PrimitiveFloatHolder
-A number of mixin actions contribute through this interface, demonstrate the use of `float` as a parameter and as a return type.
-For example:
+The `PrimitiveFloatHolder` interface is used to contribute a number of mixins to both types:
-* the `updateReadOnlyProperty` action is:
-+
[source,java]
----
-include::holder/PrimitiveFloatHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/PrimitiveFloatHolder_actionReturning.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/PrimitiveFloatHolder_mixinProperty.java[tags=class]
+include::holder/PrimitiveFloatHolder.java[tags=class]
----
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `PrimitiveFloatHolder2` interface:
+=== PrimitiveFloatHolder2
-[source,java]
-----
-include::holder/PrimitiveFloatHolder2.java[tags=class]
-----
+The `PrimitiveFloatHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/floats/jdo/PrimitiveFloatJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/floats/jdo/PrimitiveFloatJdo-description.adoc
index 26fff6a..2db40bb 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/floats/jdo/PrimitiveFloatJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/floats/jdo/PrimitiveFloatJdo-description.adoc
@@ -5,4 +5,8 @@ JDO supports `float` link:http://www.datanucleus.org:15080/products/accessplatfo
include::PrimitiveFloatJdo.java[tags="class"]
----
<.> a no-arg constructor is introduced by JDO enhancer
-<.> no additional JDO annotations required.
\ No newline at end of file
+<.> no additional JDO annotations required.
+
+
+
+include::../PrimitiveFloats-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/floats/vm/PrimitiveFloatVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/floats/vm/PrimitiveFloatVm-description.adoc
index b4aa253..bb457b1 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/floats/vm/PrimitiveFloatVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/floats/vm/PrimitiveFloatVm-description.adoc
@@ -5,4 +5,8 @@ JAXB supports `float` link:https://docs.oracle.com/cd/E12840_01/wls/docs103/webs
include::PrimitiveFloatVm.java[tags="class"]
----
<.> a no-arg constructor is required by JAXB
-<.> no additional JAXB annotations required.
\ No newline at end of file
+<.> no additional JAXB annotations required.
+
+
+
+include::../PrimitiveFloats-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/ints/PrimitiveInts-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/ints/PrimitiveInts-description.adoc
index c2de0cc..dce28f4 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/ints/PrimitiveInts-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/ints/PrimitiveInts-description.adoc
@@ -7,60 +7,21 @@ From here you can:
Because `int` is a primitive value, the properties on these domain objects are mandatory.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `PrimitiveIntHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/PrimitiveIntHolder.java[tags=class]
-----
-
-
-== Mixin actions
+=== PrimitiveIntHolder
-A number of mixin actions contribute through this interface, demonstrate the use of `int` as a parameter and as a return type.
-For example:
+The `PrimitiveIntHolder` interface is used to contribute a number of mixins to both types:
-* the `updateReadOnlyProperty` action is:
-+
[source,java]
----
-include::holder/PrimitiveIntHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/PrimitiveIntHolder_actionReturning.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/PrimitiveIntHolder_mixinProperty.java[tags=class]
+include::holder/PrimitiveIntHolder.java[tags=class]
----
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `PrimitiveIntHolder2` interface:
+=== PrimitiveIntHolder2
-[source,java]
-----
-include::holder/PrimitiveIntHolder2.java[tags=class]
-----
+The `PrimitiveIntHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/ints/jdo/PrimitiveIntJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/ints/jdo/PrimitiveIntJdo-description.adoc
index a6b3253..da0bbd2 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/ints/jdo/PrimitiveIntJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/ints/jdo/PrimitiveIntJdo-description.adoc
@@ -5,4 +5,8 @@ JDO supports `int` link:http://www.datanucleus.org:15080/products/accessplatform
include::PrimitiveIntJdo.java[tags="class"]
----
<.> a no-arg constructor is introduced by JDO enhancer
-<.> no additional JDO annotations required.
\ No newline at end of file
+<.> no additional JDO annotations required.
+
+
+
+include::../PrimitiveInts-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/ints/vm/PrimitiveIntVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/ints/vm/PrimitiveIntVm-description.adoc
index 444d8d1..69de7f9 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/ints/vm/PrimitiveIntVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/ints/vm/PrimitiveIntVm-description.adoc
@@ -5,4 +5,8 @@ JAXB supports `int` link:https://docs.oracle.com/cd/E12840_01/wls/docs103/webser
include::PrimitiveIntVm.java[tags="class"]
----
<.> a no-arg constructor is required by JAXB
-<.> no additional JAXB annotations required.
\ No newline at end of file
+<.> no additional JAXB annotations required.
+
+
+
+include::../PrimitiveInts-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/longs/PrimitiveLongs-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/longs/PrimitiveLongs-description.adoc
index 4d54d15..4fd5003 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/longs/PrimitiveLongs-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/longs/PrimitiveLongs-description.adoc
@@ -7,60 +7,21 @@ From here you can:
Because `long` is a primitive value, the properties on these domain objects are mandatory.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `PrimitiveLongHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/PrimitiveLongHolder.java[tags=class]
-----
-
-
-== Mixin actions
+=== PrimitiveLongHolder
-A number of mixin actions contribute through this interface, demonstrate the use of `long` as a parameter and as a return type.
-For example:
+The `PrimitiveLongHolder` interface is used to contribute a number of mixins to both types:
-* the `updateReadOnlyProperty` action is:
-+
[source,java]
----
-include::holder/PrimitiveLongHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/PrimitiveLongHolder_actionReturning.java[tags=class]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/PrimitiveLongHolder_mixinProperty.java[tags=class]
+include::holder/PrimitiveLongHolder.java[tags=class]
----
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `PrimitiveLongHolder2` interface:
+=== PrimitiveLongHolder2
-[source,java]
-----
-include::holder/PrimitiveLongHolder2.java[tags=class]
-----
+The `PrimitiveLongHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/longs/jdo/PrimitiveLongJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/longs/jdo/PrimitiveLongJdo-description.adoc
index 8814843..8e38d9a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/longs/jdo/PrimitiveLongJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/longs/jdo/PrimitiveLongJdo-description.adoc
@@ -5,4 +5,8 @@ JDO supports `long` link:http://www.datanucleus.org:15080/products/accessplatfor
include::PrimitiveLongJdo.java[tags="class"]
----
<.> a no-arg constructor is introduced by JDO enhancer
-<.> no additional JDO annotations required.
\ No newline at end of file
+<.> no additional JDO annotations required.
+
+
+
+include::../PrimitiveLongs-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/longs/vm/PrimitiveLongVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/longs/vm/PrimitiveLongVm-description.adoc
index 96f86d8..cdf2398 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/longs/vm/PrimitiveLongVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/longs/vm/PrimitiveLongVm-description.adoc
@@ -5,4 +5,9 @@ JAXB supports `long` link:https://docs.oracle.com/cd/E12840_01/wls/docs103/webse
include::PrimitiveLongVm.java[tags="class"]
----
<.> a no-arg constructor is required by JAXB
-<.> no additional JAXB annotations required.
\ No newline at end of file
+<.> no additional JAXB annotations required.
+
+
+
+
+include::../PrimitiveLongs-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/shorts/PrimitiveShorts-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/shorts/PrimitiveShorts-description.adoc
index f508237..e347dbe 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/shorts/PrimitiveShorts-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/shorts/PrimitiveShorts-description.adoc
@@ -7,61 +7,21 @@ From here you can:
Because `short` is a primitive value, the properties on these domain objects are mandatory.
-== Common interface
+== Common interfaces
-These objects both implement a common interface, `PrimitiveShortHolder`:
+The entity and view model types both implement some common interfaces.
-[source,java]
-----
-include::holder/PrimitiveShortHolder.java[tags=class]
-----
-
-
-
-== Mixin actions
-
-A number of mixin actions contribute through this interface, demonstrate the use of `short` as a parameter and as a return type.
-For example:
-
-* the `updateReadOnlyProperty` action is:
-+
-[source,java]
-----
-include::holder/PrimitiveShortHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `actionReturning` action is:
-+
-[source,java]
-----
-include::holder/PrimitiveShortHolder_actionReturning.java[tags=class]
-----
-
-== Mixin properties
+=== PrimitiveShortHolder
-We also use the interface to contribute a mixin property:
+The `PrimitiveShortHolder` interface is used to contribute a number of mixins to both types:
-* the `mixinProperty` property:
-+
[source,java]
----
-include::holder/PrimitiveShortHolder_mixinProperty.java[tags=class]
+include::holder/PrimitiveShortHolder.java[tags=class]
----
-== @PropertyLayout(labelPosition=...)
-
-To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `PrimitiveShortHolder2` interface:
+=== PrimitiveShortHolder2
-[source,java]
-----
-include::holder/PrimitiveShortHolder2.java[tags=class]
-----
+The `PrimitiveShortHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`.
-<.> The default methods have annotations that are automatically inherited.
-<.> Position to the left
-<.> Uses `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-<.> Position label on top
-<.> Position label to the right
-+
-CAUTION: currently not supported
-<.> Hide the label compleely.
+Further details, along with the effect of this annotation, can be seen on the entity and view model object pages.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/shorts/jdo/PrimitiveShortJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/shorts/jdo/PrimitiveShortJdo-description.adoc
index bd79eb4..c50b7b3 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/shorts/jdo/PrimitiveShortJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/shorts/jdo/PrimitiveShortJdo-description.adoc
@@ -5,4 +5,8 @@ JDO supports `short` link:http://www.datanucleus.org:15080/products/accessplatfo
include::PrimitiveShortJdo.java[tags="class"]
----
<.> a no-arg constructor is introduced by JDO enhancer
-<.> no additional JDO annotations required.
\ No newline at end of file
+<.> no additional JDO annotations required.
+
+
+
+include::../PrimitiveShorts-common.adoc[]
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/shorts/vm/PrimitiveShortVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/shorts/vm/PrimitiveShortVm-description.adoc
index c67ab17..7abd744 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/shorts/vm/PrimitiveShortVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/shorts/vm/PrimitiveShortVm-description.adoc
@@ -5,4 +5,8 @@ JAXB supports `short` link:https://docs.oracle.com/cd/E12840_01/wls/docs103/webs
include::PrimitiveShortVm.java[tags="class"]
----
<.> a no-arg constructor is required by JAXB
-<.> no additional JAXB annotations required.
\ No newline at end of file
+<.> no additional JAXB annotations required.
+
+
+
+include::../PrimitiveShorts-common.adoc[]
\ No newline at end of file