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/04 16:30:29 UTC
[isis] 01/04: ISIS-2222: WIP adding the other value types supported.
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 98a595e36a647fc3b463c67168ffcc7def822207
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Jul 4 13:19:42 2020 +0100
ISIS-2222: WIP adding the other value types supported.
renamed, still need sample data for some of the new types.
---
examples/demo/domain/pom.xml | 10 +-
.../src/main/java/demoapp/dom/menubars.layout.xml | 57 ++++++++---
.../domain/src/main/java/demoapp/dom/package.jdo | 2 +-
.../java/demoapp/dom/types/isis/IsisTypesMenu.java | 75 ++++++++++++++
.../types/isis/asciidocs/IsisAsciiDocsStream.java | 37 -------
.../asciidocs/WrapperCharacters-description.adoc | 75 --------------
.../types/isis/asciidocs/WrapperCharacters.java | 76 --------------
.../isis/asciidocs/WrapperCharacters.layout.xml | 46 ---------
.../asciidocs/holder/WrapperCharacterHolder.java | 37 -------
.../asciidocs/holder/WrapperCharacterHolder2.java | 76 --------------
.../WrapperCharacterHolder_actionReturning.java | 39 -------
...rCharacterHolder_actionReturningCollection.java | 48 ---------
.../WrapperCharacterHolder_mixinProperty.java | 45 --------
...acterHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...pperCharacterHolder_updateReadOnlyProperty.java | 50 ---------
...erHolder_updateReadOnlyPropertyWithChoices.java | 58 -----------
.../jdo/WrapperCharacterJdo-description.adoc | 15 ---
.../isis/asciidocs/jdo/WrapperCharacterJdo.java | 83 ---------------
.../asciidocs/jdo/WrapperCharacterJdo.layout.xml | 46 ---------
.../asciidocs/jdo/WrapperCharacterJdoEntities.java | 26 -----
.../jdo/WrapperCharacterJdoSeedService.java | 42 --------
.../vm/WrapperCharacterVm-description.adoc | 13 ---
.../isis/asciidocs/vm/WrapperCharacterVm.java | 85 ---------------
.../asciidocs/vm/WrapperCharacterVm.layout.xml | 46 ---------
.../types/isis/blobs/IsisBlobs-description.adoc | 75 ++++++++++++++
.../demoapp/dom/types/isis/blobs/IsisBlobs.java | 81 +++++++++++++++
.../blobs/IsisBlobs.layout.xml} | 0
.../dom/types/isis/blobs/IsisBlobsSamples.java | 37 +++++++
.../dom/types/isis/blobs/IsisBlobsStream.java | 37 -------
.../isis/blobs/WrapperCharacters-description.adoc | 75 --------------
.../dom/types/isis/blobs/WrapperCharacters.java | 76 --------------
.../types/isis/blobs/WrapperCharacters.layout.xml | 46 ---------
.../types/isis/blobs/holder/IsisBlobHolder.java | 39 +++++++
.../types/isis/blobs/holder/IsisBlobHolder2.java | 77 ++++++++++++++
.../holder/IsisBlobHolder_actionReturning.java | 40 ++++++++
.../IsisBlobHolder_actionReturningCollection.java | 53 ++++++++++
.../blobs/holder/IsisBlobHolder_mixinProperty.java | 46 +++++++++
...sBlobHolder_updateReadOnlyOptionalProperty.java | 56 ++++++++++
.../IsisBlobHolder_updateReadOnlyProperty.java | 51 +++++++++
...obHolder_updateReadOnlyPropertyWithChoices.java | 65 ++++++++++++
.../isis/blobs/holder/WrapperCharacterHolder.java | 37 -------
.../isis/blobs/holder/WrapperCharacterHolder2.java | 76 --------------
.../WrapperCharacterHolder_actionReturning.java | 39 -------
...rCharacterHolder_actionReturningCollection.java | 48 ---------
.../WrapperCharacterHolder_mixinProperty.java | 45 --------
...acterHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...pperCharacterHolder_updateReadOnlyProperty.java | 50 ---------
...erHolder_updateReadOnlyPropertyWithChoices.java | 58 -----------
.../isis/blobs/jdo/IsisBlobJdo-description.adoc | 15 +++
.../dom/types/isis/blobs/jdo/IsisBlobJdo.java | 84 +++++++++++++++
.../blobs/jdo/IsisBlobJdo.layout.xml} | 0
.../types/isis/blobs/jdo/IsisBlobJdoEntities.java | 27 +++++
.../isis/blobs/jdo/IsisBlobJdoSeedService.java | 47 +++++++++
.../blobs/jdo/WrapperCharacterJdo-description.adoc | 15 ---
.../types/isis/blobs/jdo/WrapperCharacterJdo.java | 83 ---------------
.../isis/blobs/jdo/WrapperCharacterJdo.layout.xml | 46 ---------
.../blobs/jdo/WrapperCharacterJdoEntities.java | 26 -----
.../blobs/jdo/WrapperCharacterJdoSeedService.java | 42 --------
.../isis/blobs/vm/IsisBlobVm-description.adoc | 13 +++
.../dom/types/isis/blobs/vm/IsisBlobVm.java | 86 ++++++++++++++++
.../blobs/vm/IsisBlobVm.layout.xml} | 0
.../blobs/vm/WrapperCharacterVm-description.adoc | 13 ---
.../types/isis/blobs/vm/WrapperCharacterVm.java | 85 ---------------
.../isis/blobs/vm/WrapperCharacterVm.layout.xml | 46 ---------
.../types/isis/clobs/IsisClobs-description.adoc | 75 ++++++++++++++
.../demoapp/dom/types/isis/clobs/IsisClobs.java | 81 +++++++++++++++
.../clobs/IsisClobs.layout.xml} | 0
.../dom/types/isis/clobs/IsisClobsSamples.java | 37 +++++++
.../dom/types/isis/clobs/IsisClobsStream.java | 37 -------
.../isis/clobs/WrapperCharacters-description.adoc | 75 --------------
.../dom/types/isis/clobs/WrapperCharacters.java | 76 --------------
.../types/isis/clobs/WrapperCharacters.layout.xml | 46 ---------
.../types/isis/clobs/holder/IsisClobHolder.java | 39 +++++++
.../types/isis/clobs/holder/IsisClobHolder2.java | 77 ++++++++++++++
.../holder/IsisClobHolder_actionReturning.java | 40 ++++++++
.../IsisClobHolder_actionReturningCollection.java | 53 ++++++++++
.../clobs/holder/IsisClobHolder_mixinProperty.java | 46 +++++++++
...sClobHolder_updateReadOnlyOptionalProperty.java | 56 ++++++++++
.../IsisClobHolder_updateReadOnlyProperty.java | 51 +++++++++
...obHolder_updateReadOnlyPropertyWithChoices.java | 65 ++++++++++++
.../isis/clobs/holder/WrapperCharacterHolder.java | 37 -------
.../isis/clobs/holder/WrapperCharacterHolder2.java | 76 --------------
.../WrapperCharacterHolder_actionReturning.java | 39 -------
...rCharacterHolder_actionReturningCollection.java | 48 ---------
.../WrapperCharacterHolder_mixinProperty.java | 45 --------
...acterHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...pperCharacterHolder_updateReadOnlyProperty.java | 50 ---------
...erHolder_updateReadOnlyPropertyWithChoices.java | 58 -----------
.../isis/clobs/jdo/IsisClobJdo-description.adoc | 15 +++
.../dom/types/isis/clobs/jdo/IsisClobJdo.java | 84 +++++++++++++++
.../clobs/jdo/IsisClobJdo.layout.xml} | 0
.../types/isis/clobs/jdo/IsisClobJdoEntities.java | 27 +++++
.../isis/clobs/jdo/IsisClobJdoSeedService.java | 47 +++++++++
.../clobs/jdo/WrapperCharacterJdo-description.adoc | 15 ---
.../types/isis/clobs/jdo/WrapperCharacterJdo.java | 83 ---------------
.../isis/clobs/jdo/WrapperCharacterJdo.layout.xml | 46 ---------
.../clobs/jdo/WrapperCharacterJdoEntities.java | 26 -----
.../clobs/jdo/WrapperCharacterJdoSeedService.java | 42 --------
.../isis/clobs/vm/IsisClobVm-description.adoc | 13 +++
.../dom/types/isis/clobs/vm/IsisClobVm.java | 86 ++++++++++++++++
.../clobs/vm/IsisClobVm.layout.xml} | 0
.../clobs/vm/WrapperCharacterVm-description.adoc | 13 ---
.../types/isis/clobs/vm/WrapperCharacterVm.java | 85 ---------------
.../isis/clobs/vm/WrapperCharacterVm.layout.xml | 46 ---------
.../types/isis/images/IsisImages-description.adoc | 75 ++++++++++++++
.../demoapp/dom/types/isis/images/IsisImages.java | 81 +++++++++++++++
.../images/IsisImages.layout.xml} | 0
.../dom/types/isis/images/IsisImagesSamples.java | 37 +++++++
.../dom/types/isis/images/IsisImagesStream.java | 37 -------
.../isis/images/WrapperCharacters-description.adoc | 75 --------------
.../dom/types/isis/images/WrapperCharacters.java | 76 --------------
.../types/isis/images/WrapperCharacters.layout.xml | 46 ---------
.../types/isis/images/holder/IsisImageHolder.java | 39 +++++++
.../types/isis/images/holder/IsisImageHolder2.java | 77 ++++++++++++++
.../holder/IsisImageHolder_actionReturning.java | 40 ++++++++
.../IsisImageHolder_actionReturningCollection.java | 53 ++++++++++
.../holder/IsisImageHolder_mixinProperty.java | 46 +++++++++
...ImageHolder_updateReadOnlyOptionalProperty.java | 56 ++++++++++
.../IsisImageHolder_updateReadOnlyProperty.java | 51 +++++++++
...geHolder_updateReadOnlyPropertyWithChoices.java | 65 ++++++++++++
.../isis/images/holder/WrapperCharacterHolder.java | 37 -------
.../images/holder/WrapperCharacterHolder2.java | 76 --------------
.../WrapperCharacterHolder_actionReturning.java | 39 -------
...rCharacterHolder_actionReturningCollection.java | 48 ---------
.../WrapperCharacterHolder_mixinProperty.java | 45 --------
...acterHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...pperCharacterHolder_updateReadOnlyProperty.java | 50 ---------
...erHolder_updateReadOnlyPropertyWithChoices.java | 58 -----------
.../isis/images/jdo/IsisImageJdo-description.adoc | 15 +++
.../dom/types/isis/images/jdo/IsisImageJdo.java | 84 +++++++++++++++
.../images/jdo/IsisImageJdo.layout.xml} | 0
.../isis/images/jdo/IsisImageJdoEntities.java | 27 +++++
.../isis/images/jdo/IsisImageJdoSeedService.java | 47 +++++++++
.../jdo/WrapperCharacterJdo-description.adoc | 15 ---
.../types/isis/images/jdo/WrapperCharacterJdo.java | 83 ---------------
.../isis/images/jdo/WrapperCharacterJdo.layout.xml | 46 ---------
.../images/jdo/WrapperCharacterJdoEntities.java | 26 -----
.../images/jdo/WrapperCharacterJdoSeedService.java | 42 --------
.../isis/images/vm/IsisImageVm-description.adoc | 13 +++
.../dom/types/isis/images/vm/IsisImageVm.java | 86 ++++++++++++++++
.../images/vm/IsisImageVm.layout.xml} | 0
.../images/vm/WrapperCharacterVm-description.adoc | 13 ---
.../types/isis/images/vm/WrapperCharacterVm.java | 85 ---------------
.../isis/images/vm/WrapperCharacterVm.layout.xml | 46 ---------
.../IsisLocalResourcePaths-description.adoc | 75 ++++++++++++++
.../localresourcepaths/IsisLocalResourcePaths.java | 81 +++++++++++++++
.../IsisLocalResourcePaths.layout.xml} | 0
.../IsisLocalResourcePathsSamples.java | 37 +++++++
.../IsisLocalResourcePathsStream.java | 37 -------
.../WrapperCharacters-description.adoc | 75 --------------
.../isis/localresourcepaths/WrapperCharacters.java | 76 --------------
.../WrapperCharacters.layout.xml | 46 ---------
.../holder/IsisLocalResourcePathHolder.java | 39 +++++++
.../holder/IsisLocalResourcePathHolder2.java | 77 ++++++++++++++
...sisLocalResourcePathHolder_actionReturning.java | 40 ++++++++
...sourcePathHolder_actionReturningCollection.java | 53 ++++++++++
.../IsisLocalResourcePathHolder_mixinProperty.java | 46 +++++++++
...ePathHolder_updateReadOnlyOptionalProperty.java | 56 ++++++++++
...lResourcePathHolder_updateReadOnlyProperty.java | 51 +++++++++
...thHolder_updateReadOnlyPropertyWithChoices.java | 65 ++++++++++++
.../holder/WrapperCharacterHolder.java | 37 -------
.../holder/WrapperCharacterHolder2.java | 76 --------------
.../WrapperCharacterHolder_actionReturning.java | 39 -------
...rCharacterHolder_actionReturningCollection.java | 48 ---------
.../WrapperCharacterHolder_mixinProperty.java | 45 --------
...acterHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...pperCharacterHolder_updateReadOnlyProperty.java | 50 ---------
...erHolder_updateReadOnlyPropertyWithChoices.java | 58 -----------
.../jdo/IsisLocalResourcePathJdo-description.adoc | 15 +++
.../jdo/IsisLocalResourcePathJdo.java | 84 +++++++++++++++
.../jdo/IsisLocalResourcePathJdo.layout.xml} | 0
.../jdo/IsisLocalResourcePathJdoEntities.java | 27 +++++
.../jdo/IsisLocalResourcePathJdoSeedService.java | 47 +++++++++
.../jdo/WrapperCharacterJdo-description.adoc | 15 ---
.../jdo/WrapperCharacterJdo.java | 83 ---------------
.../jdo/WrapperCharacterJdo.layout.xml | 46 ---------
.../jdo/WrapperCharacterJdoEntities.java | 26 -----
.../jdo/WrapperCharacterJdoSeedService.java | 42 --------
.../vm/IsisLocalResourcePathVm-description.adoc | 13 +++
.../vm/IsisLocalResourcePathVm.java | 86 ++++++++++++++++
.../vm/IsisLocalResourcePathVm.layout.xml} | 0
.../vm/WrapperCharacterVm-description.adoc | 13 ---
.../localresourcepaths/vm/WrapperCharacterVm.java | 85 ---------------
.../vm/WrapperCharacterVm.layout.xml | 46 ---------
.../dom/types/isis/markups/IsisMarkUpsStream.java | 37 -------
.../markups/WrapperCharacters-description.adoc | 75 --------------
.../dom/types/isis/markups/WrapperCharacters.java | 76 --------------
.../isis/markups/WrapperCharacters.layout.xml | 46 ---------
.../markups/holder/WrapperCharacterHolder.java | 37 -------
.../markups/holder/WrapperCharacterHolder2.java | 76 --------------
.../WrapperCharacterHolder_actionReturning.java | 39 -------
...rCharacterHolder_actionReturningCollection.java | 48 ---------
.../WrapperCharacterHolder_mixinProperty.java | 45 --------
...acterHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...pperCharacterHolder_updateReadOnlyProperty.java | 50 ---------
...erHolder_updateReadOnlyPropertyWithChoices.java | 58 -----------
.../jdo/WrapperCharacterJdo-description.adoc | 15 ---
.../isis/markups/jdo/WrapperCharacterJdo.java | 83 ---------------
.../markups/jdo/WrapperCharacterJdo.layout.xml | 46 ---------
.../markups/jdo/WrapperCharacterJdoEntities.java | 26 -----
.../jdo/WrapperCharacterJdoSeedService.java | 42 --------
.../markups/vm/WrapperCharacterVm-description.adoc | 13 ---
.../types/isis/markups/vm/WrapperCharacterVm.java | 85 ---------------
.../isis/markups/vm/WrapperCharacterVm.layout.xml | 46 ---------
.../isis/passwords/IsisPasswords-description.adoc | 75 ++++++++++++++
.../dom/types/isis/passwords/IsisPasswords.java | 81 +++++++++++++++
.../passwords/IsisPasswords.layout.xml} | 0
.../types/isis/passwords/IsisPasswordsSamples.java | 37 +++++++
.../types/isis/passwords/IsisPasswordsStream.java | 36 -------
.../passwords/WrapperCharacters-description.adoc | 75 --------------
.../types/isis/passwords/WrapperCharacters.java | 76 --------------
.../isis/passwords/WrapperCharacters.layout.xml | 46 ---------
.../isis/passwords/holder/IsisPasswordHolder.java | 39 +++++++
.../isis/passwords/holder/IsisPasswordHolder2.java | 77 ++++++++++++++
.../holder/IsisPasswordHolder_actionReturning.java | 40 ++++++++
...isPasswordHolder_actionReturningCollection.java | 53 ++++++++++
.../holder/IsisPasswordHolder_mixinProperty.java | 46 +++++++++
...swordHolder_updateReadOnlyOptionalProperty.java | 56 ++++++++++
.../IsisPasswordHolder_updateReadOnlyProperty.java | 51 +++++++++
...rdHolder_updateReadOnlyPropertyWithChoices.java | 65 ++++++++++++
.../passwords/holder/WrapperCharacterHolder.java | 37 -------
.../passwords/holder/WrapperCharacterHolder2.java | 76 --------------
.../WrapperCharacterHolder_actionReturning.java | 39 -------
...rCharacterHolder_actionReturningCollection.java | 48 ---------
.../WrapperCharacterHolder_mixinProperty.java | 45 --------
...acterHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...pperCharacterHolder_updateReadOnlyProperty.java | 50 ---------
...erHolder_updateReadOnlyPropertyWithChoices.java | 58 -----------
.../passwords/jdo/IsisPasswordJdo-description.adoc | 15 +++
.../types/isis/passwords/jdo/IsisPasswordJdo.java | 84 +++++++++++++++
.../passwords/jdo/IsisPasswordJdo.layout.xml} | 0
.../passwords/jdo/IsisPasswordJdoEntities.java | 27 +++++
.../passwords/jdo/IsisPasswordJdoSeedService.java | 47 +++++++++
.../jdo/WrapperCharacterJdo-description.adoc | 15 ---
.../isis/passwords/jdo/WrapperCharacterJdo.java | 83 ---------------
.../passwords/jdo/WrapperCharacterJdo.layout.xml | 46 ---------
.../passwords/jdo/WrapperCharacterJdoEntities.java | 26 -----
.../jdo/WrapperCharacterJdoSeedService.java | 42 --------
.../passwords/vm/IsisPasswordVm-description.adoc | 13 +++
.../types/isis/passwords/vm/IsisPasswordVm.java | 86 ++++++++++++++++
.../passwords/vm/IsisPasswordVm.layout.xml} | 0
.../vm/WrapperCharacterVm-description.adoc | 13 ---
.../isis/passwords/vm/WrapperCharacterVm.java | 85 ---------------
.../passwords/vm/WrapperCharacterVm.layout.xml | 46 ---------
.../types/isis/treenodes/IsisTreeNodesStream.java | 37 -------
.../treenodes/WrapperCharacters-description.adoc | 75 --------------
.../types/isis/treenodes/WrapperCharacters.java | 76 --------------
.../treenodes/holder/WrapperCharacterHolder.java | 37 -------
.../treenodes/holder/WrapperCharacterHolder2.java | 76 --------------
.../WrapperCharacterHolder_actionReturning.java | 39 -------
...rCharacterHolder_actionReturningCollection.java | 48 ---------
.../WrapperCharacterHolder_mixinProperty.java | 45 --------
...acterHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...pperCharacterHolder_updateReadOnlyProperty.java | 50 ---------
...erHolder_updateReadOnlyPropertyWithChoices.java | 58 -----------
.../jdo/WrapperCharacterJdo-description.adoc | 15 ---
.../isis/treenodes/jdo/WrapperCharacterJdo.java | 83 ---------------
.../treenodes/jdo/WrapperCharacterJdoEntities.java | 26 -----
.../jdo/WrapperCharacterJdoSeedService.java | 42 --------
.../vm/WrapperCharacterVm-description.adoc | 13 ---
.../isis/treenodes/vm/WrapperCharacterVm.java | 85 ---------------
.../dom/types/isisext/IsisExtTypesMenu.java | 53 ++++++++++
.../asciidocs/IsisAsciiDoc-description.adoc | 75 ++++++++++++++
.../dom/types/isisext/asciidocs/IsisAsciiDocs.java | 81 +++++++++++++++
.../isisext/asciidocs/IsisAsciiDocsSamples.java | 37 +++++++
.../asciidocs/holder/IsisAsciiDocHolder.java | 39 +++++++
.../asciidocs/holder/IsisAsciiDocHolder2.java | 76 ++++++++++++++
.../holder/IsisAsciiDocHolder_actionReturning.java | 40 ++++++++
...isAsciiDocHolder_actionReturningCollection.java | 51 +++++++++
.../holder/IsisAsciiDocHolder_mixinProperty.java | 44 ++++++++
...iiDocHolder_updateReadOnlyOptionalProperty.java | 56 ++++++++++
.../IsisAsciiDocHolder_updateReadOnlyProperty.java | 51 +++++++++
...ocHolder_updateReadOnlyPropertyWithChoices.java | 61 +++++++++++
.../asciidocs/jdo/IsisAsciiDocJdo-description.adoc | 15 +++
.../isisext/asciidocs/jdo/IsisAsciiDocJdo.java | 82 +++++++++++++++
.../asciidocs/jdo/IsisAsciiDocJdoEntities.java | 27 +++++
.../asciidocs/jdo/IsisAsciiDocJdoSeedService.java | 45 ++++++++
.../asciidocs/vm/IsisAsciiDocVm-description.adoc | 13 +++
.../types/isisext/asciidocs/vm/IsisAsciiDocVm.java | 84 +++++++++++++++
.../dom/types/isisext/markdowns/IsisAsciiDocs.java | 81 +++++++++++++++
.../isisext/markdowns/IsisAsciiDocsSamples.java | 37 +++++++
.../markdowns/IsisMarkdown-description.adoc | 75 ++++++++++++++
.../markdowns/IsisMarkdown.layout.xml} | 0
.../markdowns/holder/IsisMarkdownHolder.java | 39 +++++++
.../markdowns/holder/IsisMarkdownHolder2.java | 76 ++++++++++++++
.../holder/IsisMarkdownHolder_actionReturning.java | 40 ++++++++
...isMarkdownHolder_actionReturningCollection.java | 51 +++++++++
.../holder/IsisMarkdownHolder_mixinProperty.java | 44 ++++++++
...kdownHolder_updateReadOnlyOptionalProperty.java | 56 ++++++++++
.../IsisMarkdownHolder_updateReadOnlyProperty.java | 51 +++++++++
...wnHolder_updateReadOnlyPropertyWithChoices.java | 61 +++++++++++
.../markdowns/jdo/IsisMarkdownJdo-description.adoc | 15 +++
.../isisext/markdowns/jdo/IsisMarkdownJdo.java | 82 +++++++++++++++
.../markdowns/jdo/IsisMarkdownJdo.layout.xml} | 0
.../markdowns/jdo/IsisMarkdownJdoEntities.java | 27 +++++
.../markdowns/jdo/IsisMarkdownJdoSeedService.java | 45 ++++++++
.../markdowns/vm/IsisMarkdownVm-description.adoc | 13 +++
.../types/isisext/markdowns/vm/IsisMarkdownVm.java | 84 +++++++++++++++
.../markdowns/vm/IsisMarkdownVm.layout.xml} | 0
.../dom/types/javalang/JavaLangTypesMenu.java | 53 ++++++++++
.../types/javalang/JavaLangWrapperTypesMenu.java | 92 +++++++++++++++++
.../booleans/WrapperBooleans-description.adoc | 0
.../types/javalang/booleans/WrapperBooleans.java | 114 +++++++++++++++++++++
.../booleans/WrapperBooleans.layout.xml | 0
.../javalang/booleans/WrapperBooleansSamples.java | 35 +++++++
.../booleans/holder/WrapperBooleanHolder.java | 37 +++++++
.../booleans/holder/WrapperBooleanHolder2.java | 75 ++++++++++++++
.../WrapperBooleanHolder_actionReturning.java | 39 +++++++
...perBooleanHolder_actionReturningCollection.java | 51 +++++++++
.../holder/WrapperBooleanHolder_mixinProperty.java | 43 ++++++++
...oleanHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
...rapperBooleanHolder_updateReadOnlyProperty.java | 50 +++++++++
...anHolder_updateReadOnlyPropertyWithChoices.java | 63 ++++++++++++
.../jdo/WrapperBooleanJdo-description.adoc | 0
.../javalang/booleans/jdo/WrapperBooleanJdo.java | 81 +++++++++++++++
.../booleans/jdo/WrapperBooleanJdo.layout.xml | 0
.../booleans/jdo/WrapperBooleanJdoEntities.java | 26 +++++
.../booleans/jdo/WrapperBooleanJdoSeedService.java | 44 ++++++++
.../booleans/vm/WrapperBooleanVm-description.adoc | 0
.../javalang/booleans/vm/WrapperBooleanVm.java | 83 +++++++++++++++
.../booleans/vm/WrapperBooleanVm.layout.xml | 0
.../bytes/WrapperBytes-description.adoc | 0
.../dom/types/javalang/bytes/WrapperBytes.java | 76 ++++++++++++++
.../bytes/WrapperBytes.layout.xml | 0
.../types/javalang/bytes/WrapperBytesSamples.java | 36 +++++++
.../javalang/bytes/holder/WrapperByteHolder.java | 37 +++++++
.../javalang/bytes/holder/WrapperByteHolder2.java | 75 ++++++++++++++
.../holder/WrapperByteHolder_actionReturning.java | 39 +++++++
...rapperByteHolder_actionReturningCollection.java | 53 ++++++++++
.../holder/WrapperByteHolder_mixinProperty.java | 43 ++++++++
...rByteHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
.../WrapperByteHolder_updateReadOnlyProperty.java | 50 +++++++++
...teHolder_updateReadOnlyPropertyWithChoices.java | 63 ++++++++++++
.../bytes/jdo/WrapperByteJdo-description.adoc | 0
.../types/javalang/bytes/jdo/WrapperByteJdo.java | 81 +++++++++++++++
.../bytes/jdo/WrapperByteJdo.layout.xml | 0
.../javalang/bytes/jdo/WrapperByteJdoEntities.java | 26 +++++
.../bytes/jdo/WrapperByteJdoSeedService.java | 44 ++++++++
.../bytes/vm/WrapperByteVm-description.adoc | 0
.../dom/types/javalang/bytes/vm/WrapperByteVm.java | 83 +++++++++++++++
.../bytes/vm/WrapperByteVm.layout.xml | 0
.../characters/WrapperCharacters-description.adoc | 0
.../javalang/characters/WrapperCharacters.java | 76 ++++++++++++++
.../characters/WrapperCharactersSamples.java | 35 +++++++
.../characters/holder/WrapperCharacterHolder.java | 37 +++++++
.../characters/holder/WrapperCharacterHolder2.java | 75 ++++++++++++++
.../WrapperCharacterHolder_actionReturning.java | 39 +++++++
...rCharacterHolder_actionReturningCollection.java | 49 +++++++++
.../WrapperCharacterHolder_mixinProperty.java | 43 ++++++++
...acterHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
...pperCharacterHolder_updateReadOnlyProperty.java | 50 +++++++++
...erHolder_updateReadOnlyPropertyWithChoices.java | 64 ++++++++++++
.../jdo/WrapperCharacterJdo-description.adoc | 0
.../characters/jdo/WrapperCharacterJdo.java | 81 +++++++++++++++
.../jdo/WrapperCharacterJdoEntities.java | 26 +++++
.../jdo/WrapperCharacterJdoSeedService.java | 44 ++++++++
.../vm/WrapperCharacterVm-description.adoc | 0
.../javalang/characters/vm/WrapperCharacterVm.java | 83 +++++++++++++++
.../doubles/WrapperDoubles-description.adoc | 0
.../dom/types/javalang/doubles/WrapperDoubles.java | 76 ++++++++++++++
.../doubles/WrapperDoubles.layout.xml | 0
.../javalang/doubles/WrapperDoublesSamples.java | 35 +++++++
.../doubles/holder/WrapperDoubleHolder.java | 37 +++++++
.../doubles/holder/WrapperDoubleHolder2.java | 75 ++++++++++++++
.../WrapperDoubleHolder_actionReturning.java | 39 +++++++
...pperDoubleHolder_actionReturningCollection.java | 53 ++++++++++
.../holder/WrapperDoubleHolder_mixinProperty.java | 43 ++++++++
...oubleHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
...WrapperDoubleHolder_updateReadOnlyProperty.java | 50 +++++++++
...leHolder_updateReadOnlyPropertyWithChoices.java | 63 ++++++++++++
.../doubles/jdo/WrapperDoubleJdo-description.adoc | 0
.../javalang/doubles/jdo/WrapperDoubleJdo.java | 81 +++++++++++++++
.../doubles/jdo/WrapperDoubleJdo.layout.xml | 0
.../doubles/jdo/WrapperDoubleJdoEntities.java | 26 +++++
.../doubles/jdo/WrapperDoubleJdoSeedService.java | 44 ++++++++
.../doubles/vm/WrapperDoubleVm-description.adoc | 0
.../types/javalang/doubles/vm/WrapperDoubleVm.java | 83 +++++++++++++++
.../doubles/vm/WrapperDoubleVm.layout.xml | 0
.../floats/WrapperFloats-description.adoc | 0
.../dom/types/javalang/floats/WrapperFloats.java | 76 ++++++++++++++
.../floats/WrapperFloats.layout.xml | 0
.../javalang/floats/WrapperFloatsSamples.java | 35 +++++++
.../javalang/floats/holder/WrapperFloatHolder.java | 37 +++++++
.../floats/holder/WrapperFloatHolder2.java | 75 ++++++++++++++
.../holder/WrapperFloatHolder_actionReturning.java | 39 +++++++
...apperFloatHolder_actionReturningCollection.java | 49 +++++++++
.../holder/WrapperFloatHolder_mixinProperty.java | 43 ++++++++
...FloatHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
.../WrapperFloatHolder_updateReadOnlyProperty.java | 50 +++++++++
...atHolder_updateReadOnlyPropertyWithChoices.java | 63 ++++++++++++
.../floats/jdo/WrapperFloatJdo-description.adoc | 0
.../types/javalang/floats/jdo/WrapperFloatJdo.java | 81 +++++++++++++++
.../floats/jdo/WrapperFloatJdo.layout.xml | 0
.../floats/jdo/WrapperFloatJdoEntities.java | 26 +++++
.../floats/jdo/WrapperFloatJdoSeedService.java | 44 ++++++++
.../floats/vm/WrapperFloatVm-description.adoc | 0
.../types/javalang/floats/vm/WrapperFloatVm.java | 83 +++++++++++++++
.../floats/vm/WrapperFloatVm.layout.xml | 0
.../integers/WrapperIntegers-description.adoc | 0
.../types/javalang/integers/WrapperIntegers.java | 76 ++++++++++++++
.../integers/WrapperIntegers.layout.xml | 0
.../javalang/integers/WrapperIntegersSamples.java | 35 +++++++
.../integers/holder/WrapperIntegerHolder.java | 37 +++++++
.../integers/holder/WrapperIntegerHolder2.java | 75 ++++++++++++++
.../WrapperIntegerHolder_actionReturning.java | 39 +++++++
...perIntegerHolder_actionReturningCollection.java | 49 +++++++++
.../holder/WrapperIntegerHolder_mixinProperty.java | 43 ++++++++
...tegerHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
...rapperIntegerHolder_updateReadOnlyProperty.java | 50 +++++++++
...erHolder_updateReadOnlyPropertyWithChoices.java | 63 ++++++++++++
.../jdo/WrapperIntegerJdo-description.adoc | 0
.../javalang/integers/jdo/WrapperIntegerJdo.java | 81 +++++++++++++++
.../integers/jdo/WrapperIntegerJdo.layout.xml | 0
.../integers/jdo/WrapperIntegerJdoEntities.java | 26 +++++
.../integers/jdo/WrapperIntegerJdoSeedService.java | 44 ++++++++
.../integers/vm/WrapperIntegerVm-description.adoc | 0
.../javalang/integers/vm/WrapperIntegerVm.java | 83 +++++++++++++++
.../integers/vm/WrapperIntegerVm.layout.xml | 0
.../longs/WrapperLongs-description.adoc | 0
.../dom/types/javalang/longs/WrapperLongs.java | 76 ++++++++++++++
.../longs/WrapperLongs.layout.xml | 0
.../types/javalang/longs/WrapperLongsSamples.java | 35 +++++++
.../javalang/longs/holder/WrapperLongHolder.java | 37 +++++++
.../javalang/longs/holder/WrapperLongHolder2.java | 75 ++++++++++++++
.../holder/WrapperLongHolder_actionReturning.java | 39 +++++++
...rapperLongHolder_actionReturningCollection.java | 49 +++++++++
.../holder/WrapperLongHolder_mixinProperty.java | 43 ++++++++
...rLongHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
.../WrapperLongHolder_updateReadOnlyProperty.java | 50 +++++++++
...ngHolder_updateReadOnlyPropertyWithChoices.java | 63 ++++++++++++
.../longs/jdo/WrapperLongJdo-description.adoc | 0
.../types/javalang/longs/jdo/WrapperLongJdo.java | 81 +++++++++++++++
.../longs/jdo/WrapperLongJdo.layout.xml | 0
.../javalang/longs/jdo/WrapperLongJdoEntities.java | 26 +++++
.../longs/jdo/WrapperLongJdoSeedService.java | 44 ++++++++
.../longs/vm/WrapperLongVm-description.adoc | 0
.../dom/types/javalang/longs/vm/WrapperLongVm.java | 83 +++++++++++++++
.../longs/vm/WrapperLongVm.layout.xml | 0
.../shorts/WrapperShorts-description.adoc | 0
.../dom/types/javalang/shorts/WrapperShorts.java | 76 ++++++++++++++
.../shorts/WrapperShorts.layout.xml | 0
.../javalang/shorts/WrapperShortsSamples.java | 36 +++++++
.../javalang/shorts/holder/WrapperShortHolder.java | 37 +++++++
.../shorts/holder/WrapperShortHolder2.java | 75 ++++++++++++++
.../holder/WrapperShortHolder_actionReturning.java | 39 +++++++
...apperShortHolder_actionReturningCollection.java | 49 +++++++++
.../holder/WrapperShortHolder_mixinProperty.java | 43 ++++++++
...ShortHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
.../WrapperShortHolder_updateReadOnlyProperty.java | 50 +++++++++
...rtHolder_updateReadOnlyPropertyWithChoices.java | 63 ++++++++++++
.../shorts/jdo/WrapperShortJdo-description.adoc | 0
.../types/javalang/shorts/jdo/WrapperShortJdo.java | 81 +++++++++++++++
.../shorts/jdo/WrapperShortJdo.layout.xml | 0
.../shorts/jdo/WrapperShortJdoEntities.java | 26 +++++
.../shorts/jdo/WrapperShortJdoSeedService.java | 44 ++++++++
.../shorts/vm/WrapperShortVm-description.adoc | 0
.../types/javalang/shorts/vm/WrapperShortVm.java | 83 +++++++++++++++
.../shorts/vm/WrapperShortVm.layout.xml | 0
.../strings/JavaLangStrings-description.adoc | 75 ++++++++++++++
.../types/javalang/strings/JavaLangStrings.java | 80 +++++++++++++++
.../javalang/strings/JavaLangStringsSamples.java | 35 +++++++
.../dom/types/javalang/strings/StringsStream.java | 35 -------
.../strings/WrapperCharacters-description.adoc | 75 --------------
.../types/javalang/strings/WrapperCharacters.java | 76 --------------
.../javalang/strings/WrapperCharacters.layout.xml | 46 ---------
.../strings/holder/JavaLangStringHolder.java | 37 +++++++
.../strings/holder/JavaLangStringHolder2.java | 76 ++++++++++++++
.../JavaLangStringHolder_actionReturning.java | 39 +++++++
...LangStringHolder_actionReturningCollection.java | 52 ++++++++++
.../holder/JavaLangStringHolder_mixinProperty.java | 45 ++++++++
...tringHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
...avaLangStringHolder_updateReadOnlyProperty.java | 50 +++++++++
...ngHolder_updateReadOnlyPropertyWithChoices.java | 65 ++++++++++++
.../strings/holder/WrapperCharacterHolder.java | 37 -------
.../strings/holder/WrapperCharacterHolder2.java | 76 --------------
.../WrapperCharacterHolder_actionReturning.java | 39 -------
...rCharacterHolder_actionReturningCollection.java | 48 ---------
.../WrapperCharacterHolder_mixinProperty.java | 45 --------
...acterHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...pperCharacterHolder_updateReadOnlyProperty.java | 50 ---------
...erHolder_updateReadOnlyPropertyWithChoices.java | 58 -----------
.../strings/jdo/JavaLangStringJdo-description.adoc | 15 +++
.../javalang/strings/jdo/JavaLangStringJdo.java | 83 +++++++++++++++
.../strings/jdo/JavaLangStringJdoEntities.java | 26 +++++
.../strings/jdo/JavaLangStringJdoSeedService.java | 46 +++++++++
.../jdo/WrapperCharacterJdo-description.adoc | 15 ---
.../javalang/strings/jdo/WrapperCharacterJdo.java | 83 ---------------
.../strings/jdo/WrapperCharacterJdo.layout.xml | 46 ---------
.../strings/jdo/WrapperCharacterJdoEntities.java | 26 -----
.../jdo/WrapperCharacterJdoSeedService.java | 42 --------
.../strings/vm/JavaLangStringVm-description.adoc | 13 +++
.../javalang/strings/vm/JavaLangStringVm.java | 85 +++++++++++++++
.../strings/vm/WrapperCharacterVm-description.adoc | 13 ---
.../javalang/strings/vm/WrapperCharacterVm.java | 85 ---------------
.../strings/vm/WrapperCharacterVm.layout.xml | 46 ---------
...ription.adoc => JavaLangVoids-description.adoc} | 0
.../dom/types/javalang/voids/JavaLangVoids.java | 67 ++++++++++++
.../types/javalang/voids/JavaLangVoidsStream.java | 35 -------
.../types/javalang/voids/WrapperCharacters.java | 76 --------------
.../voids/holder/WrapperCharacterHolder.java | 37 -------
.../voids/holder/WrapperCharacterHolder2.java | 76 --------------
.../WrapperCharacterHolder_actionReturning.java | 39 -------
...rCharacterHolder_actionReturningCollection.java | 48 ---------
.../WrapperCharacterHolder_mixinProperty.java | 45 --------
...acterHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...pperCharacterHolder_updateReadOnlyProperty.java | 50 ---------
...erHolder_updateReadOnlyPropertyWithChoices.java | 58 -----------
.../voids/jdo/WrapperCharacterJdo-description.adoc | 15 ---
.../javalang/voids/jdo/WrapperCharacterJdo.java | 83 ---------------
.../voids/jdo/WrapperCharacterJdoEntities.java | 26 -----
.../voids/jdo/WrapperCharacterJdoSeedService.java | 42 --------
.../voids/vm/WrapperCharacterVm-description.adoc | 13 ---
.../javalang/voids/vm/WrapperCharacterVm.java | 85 ---------------
.../dom/types/javamath/JavaMathTypesMenu.java | 52 ++++++++++
.../JavaMathBigDecimals-description.adoc | 75 ++++++++++++++
.../javamath/bigdecimals/JavaMathBigDecimals.java | 81 +++++++++++++++
.../bigdecimals/JavaMathBigDecimalsSamples.java | 36 +++++++
.../bigdecimals/JavaMathBigDecimalsStream.java | 36 -------
.../bigdecimals/WrapperCharacters-description.adoc | 75 --------------
.../javamath/bigdecimals/WrapperCharacters.java | 76 --------------
.../holder/JavaMathBigDecimalHolder.java | 37 +++++++
.../holder/JavaMathBigDecimalHolder2.java | 76 ++++++++++++++
.../JavaMathBigDecimalHolder_actionReturning.java | 39 +++++++
...BigDecimalHolder_actionReturningCollection.java | 53 ++++++++++
.../JavaMathBigDecimalHolder_mixinProperty.java | 45 ++++++++
...cimalHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
...athBigDecimalHolder_updateReadOnlyProperty.java | 50 +++++++++
...alHolder_updateReadOnlyPropertyWithChoices.java | 65 ++++++++++++
.../bigdecimals/holder/WrapperCharacterHolder.java | 37 -------
.../holder/WrapperCharacterHolder2.java | 76 --------------
.../WrapperCharacterHolder_actionReturning.java | 39 -------
...rCharacterHolder_actionReturningCollection.java | 48 ---------
.../WrapperCharacterHolder_mixinProperty.java | 45 --------
...acterHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...pperCharacterHolder_updateReadOnlyProperty.java | 50 ---------
...erHolder_updateReadOnlyPropertyWithChoices.java | 58 -----------
.../jdo/JavaMathBigDecimalJdo-description.adoc | 15 +++
.../bigdecimals/jdo/JavaMathBigDecimalJdo.java | 83 +++++++++++++++
.../jdo/JavaMathBigDecimalJdoEntities.java | 26 +++++
.../jdo/JavaMathBigDecimalJdoSeedService.java | 47 +++++++++
.../jdo/WrapperCharacterJdo-description.adoc | 15 ---
.../bigdecimals/jdo/WrapperCharacterJdo.java | 83 ---------------
.../jdo/WrapperCharacterJdoEntities.java | 26 -----
.../jdo/WrapperCharacterJdoSeedService.java | 42 --------
.../vm/JavaMathBigDecimalVm-description.adoc | 13 +++
.../bigdecimals/vm/JavaMathBigDecimalVm.java | 85 +++++++++++++++
.../vm/WrapperCharacterVm-description.adoc | 13 ---
.../bigdecimals/vm/WrapperCharacterVm.java | 85 ---------------
.../JavaMathBigIntegers-description.adoc | 75 ++++++++++++++
.../javamath/bigintegers/JavaMathBigIntegers.java | 81 +++++++++++++++
.../bigintegers/JavaMathBigIntegersSamples.java | 36 +++++++
.../bigintegers/JavaMathBigIntegersStream.java | 36 -------
.../bigintegers/WrapperCharacters-description.adoc | 75 --------------
.../javamath/bigintegers/WrapperCharacters.java | 76 --------------
.../holder/JavaMathBigIntegerHolder.java | 37 +++++++
.../holder/JavaMathBigIntegerHolder2.java | 76 ++++++++++++++
.../JavaMathBigIntegerHolder_actionReturning.java | 39 +++++++
...BigIntegerHolder_actionReturningCollection.java | 53 ++++++++++
.../JavaMathBigIntegerHolder_mixinProperty.java | 45 ++++++++
...tegerHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
...athBigIntegerHolder_updateReadOnlyProperty.java | 50 +++++++++
...erHolder_updateReadOnlyPropertyWithChoices.java | 66 ++++++++++++
.../bigintegers/holder/WrapperCharacterHolder.java | 37 -------
.../holder/WrapperCharacterHolder2.java | 76 --------------
.../WrapperCharacterHolder_actionReturning.java | 39 -------
...rCharacterHolder_actionReturningCollection.java | 48 ---------
.../WrapperCharacterHolder_mixinProperty.java | 45 --------
...acterHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...pperCharacterHolder_updateReadOnlyProperty.java | 50 ---------
...erHolder_updateReadOnlyPropertyWithChoices.java | 58 -----------
.../jdo/JavaMathBigIntegerJdo-description.adoc | 15 +++
.../bigintegers/jdo/JavaMathBigIntegerJdo.java | 83 +++++++++++++++
.../jdo/JavaMathBigIntegerJdoEntities.java | 26 +++++
.../jdo/JavaMathBigIntegerJdoSeedService.java | 47 +++++++++
.../jdo/WrapperCharacterJdo-description.adoc | 15 ---
.../bigintegers/jdo/WrapperCharacterJdo.java | 83 ---------------
.../jdo/WrapperCharacterJdoEntities.java | 26 -----
.../jdo/WrapperCharacterJdoSeedService.java | 42 --------
.../vm/JavaMathBigIntegerVm-description.adoc | 13 +++
.../bigintegers/vm/JavaMathBigIntegerVm.java | 85 +++++++++++++++
.../vm/WrapperCharacterVm-description.adoc | 13 ---
.../bigintegers/vm/WrapperCharacterVm.java | 85 ---------------
.../dom/types/javanet/JavaNetTypesMenu.java | 44 ++++++++
.../javanet/urls/JavaNetUrls-description.adoc | 75 ++++++++++++++
.../dom/types/javanet/urls/JavaNetUrls.java | 81 +++++++++++++++
.../dom/types/javanet/urls/JavaNetUrlsSamples.java | 36 +++++++
.../dom/types/javanet/urls/JavaNetUrlsStream.java | 36 -------
.../urls/WrapperCharacters-description.adoc | 75 --------------
.../dom/types/javanet/urls/WrapperCharacters.java | 76 --------------
.../javanet/urls/holder/JavaNetUrlHolder.java | 37 +++++++
.../javanet/urls/holder/JavaNetUrlHolder2.java | 76 ++++++++++++++
.../holder/JavaNetUrlHolder_actionReturning.java | 39 +++++++
...JavaNetUrlHolder_actionReturningCollection.java | 53 ++++++++++
.../holder/JavaNetUrlHolder_mixinProperty.java | 45 ++++++++
...etUrlHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
.../JavaNetUrlHolder_updateReadOnlyProperty.java | 50 +++++++++
...rlHolder_updateReadOnlyPropertyWithChoices.java | 66 ++++++++++++
.../urls/holder/WrapperCharacterHolder.java | 37 -------
.../urls/holder/WrapperCharacterHolder2.java | 76 --------------
.../WrapperCharacterHolder_actionReturning.java | 39 -------
...rCharacterHolder_actionReturningCollection.java | 48 ---------
.../WrapperCharacterHolder_mixinProperty.java | 45 --------
...acterHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...pperCharacterHolder_updateReadOnlyProperty.java | 50 ---------
...erHolder_updateReadOnlyPropertyWithChoices.java | 58 -----------
.../urls/jdo/JavaNetUrlJdo-description.adoc | 15 +++
.../dom/types/javanet/urls/jdo/JavaNetUrlJdo.java | 83 +++++++++++++++
.../javanet/urls/jdo/JavaNetUrlJdoEntities.java | 26 +++++
.../javanet/urls/jdo/JavaNetUrlJdoSeedService.java | 48 +++++++++
.../urls/jdo/WrapperCharacterJdo-description.adoc | 15 ---
.../javanet/urls/jdo/WrapperCharacterJdo.java | 83 ---------------
.../urls/jdo/WrapperCharacterJdoEntities.java | 26 -----
.../urls/jdo/WrapperCharacterJdoSeedService.java | 42 --------
.../javanet/urls/vm/JavaNetUrlVm-description.adoc | 13 +++
.../dom/types/javanet/urls/vm/JavaNetUrlVm.java | 85 +++++++++++++++
.../urls/vm/WrapperCharacterVm-description.adoc | 13 ---
.../types/javanet/urls/vm/WrapperCharacterVm.java | 85 ---------------
.../dom/types/javasql/JavaSqlTypesMenu.java | 53 ++++++++++
.../javasqldate/JavaSqlDates-description.adoc | 75 ++++++++++++++
.../types/javasql/javasqldate/JavaSqlDates.java | 76 ++++++++++++++
.../javasql/javasqldate/JavaSqlDatesSamples.java | 37 +++++++
.../javasqldate/holder/JavaSqlDateHolder.java | 37 +++++++
.../javasqldate/holder/JavaSqlDateHolder2.java | 75 ++++++++++++++
.../holder/JavaSqlDateHolder_actionReturning.java | 39 +++++++
...avaSqlDateHolder_actionReturningCollection.java | 50 +++++++++
.../holder/JavaSqlDateHolder_mixinProperty.java | 43 ++++++++
...lDateHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
.../JavaSqlDateHolder_updateReadOnlyProperty.java | 50 +++++++++
...teHolder_updateReadOnlyPropertyWithChoices.java | 64 ++++++++++++
.../jdo/JavaSqlDateJdo-description.adoc | 15 +++
.../javasql/javasqldate/jdo/JavaSqlDateJdo.java | 81 +++++++++++++++
.../javasqldate/jdo/JavaSqlDateJdoEntities.java | 26 +++++
.../javasqldate/jdo/JavaSqlDateJdoSeedService.java | 46 +++++++++
.../javasqldate/vm/JavaSqlDateVm-description.adoc | 14 +++
.../javasql/javasqldate/vm/JavaSqlDateVm.java | 89 ++++++++++++++++
.../JavaSqlTimestamps-description.adoc | 75 ++++++++++++++
.../javasqltimestamp/JavaSqlTimestamps.java | 76 ++++++++++++++
.../javasqltimestamp/JavaSqlTimestampsSamples.java | 37 +++++++
.../holder/JavaSqlTimestampHolder.java | 37 +++++++
.../holder/JavaSqlTimestampHolder2.java | 75 ++++++++++++++
.../JavaSqlTimestampHolder_actionReturning.java | 39 +++++++
...lTimestampHolder_actionReturningCollection.java | 50 +++++++++
.../JavaSqlTimestampHolder_mixinProperty.java | 43 ++++++++
...stampHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
...aSqlTimestampHolder_updateReadOnlyProperty.java | 50 +++++++++
...mpHolder_updateReadOnlyPropertyWithChoices.java | 64 ++++++++++++
.../jdo/JavaSqlTimestampJdo-description.adoc | 15 +++
.../javasqltimestamp/jdo/JavaSqlTimestampJdo.java | 81 +++++++++++++++
.../jdo/JavaSqlTimestampJdoEntities.java | 26 +++++
.../jdo/JavaSqlTimestampJdoSeedService.java | 46 +++++++++
.../vm/JavaSqlTimestampVm-description.adoc | 14 +++
.../javasqltimestamp/vm/JavaSqlTimestampVm.java | 89 ++++++++++++++++
.../dom/types/javatime/JavaTimeTypesMenu.java | 59 +++++++++++
.../JavaTimeLocalDates-description.adoc | 75 ++++++++++++++
.../javatimelocaldate/JavaTimeLocalDates.java | 76 ++++++++++++++
.../JavaTimeLocalDatesSamples.java | 37 +++++++
.../holder/JavaTimeLocalDateHolder.java | 37 +++++++
.../holder/JavaTimeLocalDateHolder2.java | 75 ++++++++++++++
.../JavaTimeLocalDateHolder_actionReturning.java | 39 +++++++
...eLocalDateHolder_actionReturningCollection.java | 50 +++++++++
.../JavaTimeLocalDateHolder_mixinProperty.java | 43 ++++++++
...lDateHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
...TimeLocalDateHolder_updateReadOnlyProperty.java | 50 +++++++++
...teHolder_updateReadOnlyPropertyWithChoices.java | 64 ++++++++++++
.../jdo/JavaTimeLocalDateJdo-description.adoc} | 0
.../jdo/JavaTimeLocalDateJdo.java | 81 +++++++++++++++
.../jdo/JavaTimeLocalDateJdoEntities.java | 26 +++++
.../jdo/JavaTimeLocalDateJdoSeedService.java | 46 +++++++++
.../vm/JavaTimeLocalDateVm-description.adoc} | 0
.../javatimelocaldate/vm/JavaTimeLocalDateVm.java | 89 ++++++++++++++++
.../JavaTimeLocalDateTimes-description.adoc | 75 ++++++++++++++
.../JavaTimeLocalDateTimes.java | 76 ++++++++++++++
.../JavaTimeLocalDateTimesSamples.java | 37 +++++++
.../holder/JavaTimeLocalDateTimeHolder.java | 37 +++++++
.../holder/JavaTimeLocalDateTimeHolder2.java | 75 ++++++++++++++
...avaTimeLocalDateTimeHolder_actionReturning.java | 39 +++++++
...alDateTimeHolder_actionReturningCollection.java | 50 +++++++++
.../JavaTimeLocalDateTimeHolder_mixinProperty.java | 43 ++++++++
...eTimeHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
...LocalDateTimeHolder_updateReadOnlyProperty.java | 50 +++++++++
...meHolder_updateReadOnlyPropertyWithChoices.java | 64 ++++++++++++
.../jdo/JavaTimeLocalDateTimeJdo-description.adoc} | 0
.../jdo/JavaTimeLocalDateTimeJdo.java | 81 +++++++++++++++
.../jdo/JavaTimeLocalDateTimeJdoEntities.java | 26 +++++
.../jdo/JavaTimeLocalDateTimeJdoSeedService.java | 46 +++++++++
.../vm/JavaTimeLocalDateTimeVm-description.adoc} | 0
.../vm/JavaTimeLocalDateTimeVm.java | 89 ++++++++++++++++
.../JavaTimeOffsetDateTimes-description.adoc | 75 ++++++++++++++
.../JavaTimeOffsetDateTimes.java | 77 ++++++++++++++
.../JavaTimeOffsetDateTimesSamples.java | 38 +++++++
.../holder/JavaTimeOffsetDateTimeHolder.java | 37 +++++++
.../holder/JavaTimeOffsetDateTimeHolder2.java | 75 ++++++++++++++
...vaTimeOffsetDateTimeHolder_actionReturning.java | 39 +++++++
...etDateTimeHolder_actionReturningCollection.java | 50 +++++++++
...JavaTimeOffsetDateTimeHolder_mixinProperty.java | 43 ++++++++
...eTimeHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
...ffsetDateTimeHolder_updateReadOnlyProperty.java | 50 +++++++++
...meHolder_updateReadOnlyPropertyWithChoices.java | 64 ++++++++++++
.../JavaTimeOffsetDateTimeJdo-description.adoc} | 0
.../jdo/JavaTimeOffsetDateTimeJdo.java | 81 +++++++++++++++
.../jdo/JavaTimeOffsetDateTimeJdoEntities.java | 26 +++++
.../jdo/JavaTimeOffsetDateTimeJdoSeedService.java | 46 +++++++++
.../vm/JavaTimeOffsetDateTimeVm-description.adoc} | 0
.../vm/JavaTimeOffsetDateTimeVm.java | 89 ++++++++++++++++
.../dom/types/javautil/JavaUtilTypesMenu.java | 51 +++++++++
.../javautildate/JavaUtilDates-description.adoc | 75 ++++++++++++++
.../types/javautil/javautildate/JavaUtilDates.java | 76 ++++++++++++++
.../javautildate/JavaUtilDatesSamples.java | 37 +++++++
.../javautildate/holder/JavaUtilDateHolder.java | 37 +++++++
.../javautildate/holder/JavaUtilDateHolder2.java | 75 ++++++++++++++
.../holder/JavaUtilDateHolder_actionReturning.java | 39 +++++++
...vaUtilDateHolder_actionReturningCollection.java | 50 +++++++++
.../holder/JavaUtilDateHolder_mixinProperty.java | 43 ++++++++
...lDateHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
.../JavaUtilDateHolder_updateReadOnlyProperty.java | 50 +++++++++
...teHolder_updateReadOnlyPropertyWithChoices.java | 64 ++++++++++++
.../jdo/JavaUtilDateJdo-description.adoc} | 0
.../javautil/javautildate/jdo/JavaUtilDateJdo.java | 81 +++++++++++++++
.../javautildate/jdo/JavaUtilDateJdoEntities.java | 26 +++++
.../jdo/JavaUtilDateJdoSeedService.java | 46 +++++++++
.../vm/JavaUtilDateVm-description.adoc} | 0
.../javautil/javautildate/vm/JavaUtilDateVm.java | 89 ++++++++++++++++
.../javautil/uuids/JavaUtilUuids-description.adoc | 75 ++++++++++++++
.../dom/types/javautil/uuids/JavaUtilUuids.java | 81 +++++++++++++++
.../types/javautil/uuids/JavaUtilUuidsSamples.java | 36 +++++++
.../types/javautil/uuids/JavaUtilUuidsStream.java | 36 -------
.../uuids/WrapperCharacters-description.adoc | 75 --------------
.../types/javautil/uuids/WrapperCharacters.java | 76 --------------
.../javautil/uuids/holder/JavaUtilUuidHolder.java | 37 +++++++
.../javautil/uuids/holder/JavaUtilUuidHolder2.java | 76 ++++++++++++++
.../holder/JavaUtilUuidHolder_actionReturning.java | 39 +++++++
...vaUtilUuidHolder_actionReturningCollection.java | 54 ++++++++++
.../holder/JavaUtilUuidHolder_mixinProperty.java | 45 ++++++++
...lUuidHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
.../JavaUtilUuidHolder_updateReadOnlyProperty.java | 50 +++++++++
...idHolder_updateReadOnlyPropertyWithChoices.java | 66 ++++++++++++
.../uuids/holder/WrapperCharacterHolder.java | 37 -------
.../uuids/holder/WrapperCharacterHolder2.java | 76 --------------
.../WrapperCharacterHolder_actionReturning.java | 39 -------
...rCharacterHolder_actionReturningCollection.java | 48 ---------
.../WrapperCharacterHolder_mixinProperty.java | 45 --------
...acterHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...pperCharacterHolder_updateReadOnlyProperty.java | 50 ---------
...erHolder_updateReadOnlyPropertyWithChoices.java | 58 -----------
.../uuids/jdo/JavaUtilUuidJdo-description.adoc | 15 +++
.../types/javautil/uuids/jdo/JavaUtilUuidJdo.java | 83 +++++++++++++++
.../uuids/jdo/JavaUtilUuidJdoEntities.java | 26 +++++
.../uuids/jdo/JavaUtilUuidJdoSeedService.java | 49 +++++++++
.../uuids/jdo/WrapperCharacterJdo-description.adoc | 15 ---
.../javautil/uuids/jdo/WrapperCharacterJdo.java | 83 ---------------
.../uuids/jdo/WrapperCharacterJdoEntities.java | 26 -----
.../uuids/jdo/WrapperCharacterJdoSeedService.java | 42 --------
.../uuids/vm/JavaUtilUuidVm-description.adoc | 13 +++
.../types/javautil/uuids/vm/JavaUtilUuidVm.java | 85 +++++++++++++++
.../uuids/vm/WrapperCharacterVm-description.adoc | 13 ---
.../javautil/uuids/vm/WrapperCharacterVm.java | 85 ---------------
.../dom/types/jodatime/JodaTimeTypesMenu.java | 59 +++++++++++
.../jodadatetime/JodaDateTimes-description.adoc | 75 ++++++++++++++
.../types/jodatime/jodadatetime/JodaDateTimes.java | 79 ++++++++++++++
.../jodadatetime/JodaDateTimesSamples.java | 37 +++++++
.../jodadatetime/holder/JodaDateTimeHolder.java | 37 +++++++
.../jodadatetime/holder/JodaDateTimeHolder2.java | 75 ++++++++++++++
.../holder/JodaDateTimeHolder_actionReturning.java | 39 +++++++
...daDateTimeHolder_actionReturningCollection.java | 51 +++++++++
.../holder/JodaDateTimeHolder_mixinProperty.java | 43 ++++++++
...eTimeHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
.../JodaDateTimeHolder_updateReadOnlyProperty.java | 50 +++++++++
...meHolder_updateReadOnlyPropertyWithChoices.java | 65 ++++++++++++
.../jdo/JodaDateTimeJdo-description.adoc | 15 +++
.../jodatime/jodadatetime/jdo/JodaDateTimeJdo.java | 81 +++++++++++++++
.../jodadatetime/jdo/JodaDateTimeJdoEntities.java | 26 +++++
.../jdo/JodaDateTimeJdoSeedService.java | 45 ++++++++
.../vm/JodaDateTimeVm-description.adoc | 14 +++
.../jodatime/jodadatetime/vm/JodaDateTimeVm.java | 89 ++++++++++++++++
.../jodalocaldate/JodaLocalDates-description.adoc | 75 ++++++++++++++
.../jodatime/jodalocaldate/JodaLocalDates.java | 82 +++++++++++++++
.../jodalocaldate/JodaLocalDatesSamples.java | 37 +++++++
.../jodalocaldate/holder/JodaLocalDateHolder.java | 37 +++++++
.../jodalocaldate/holder/JodaLocalDateHolder2.java | 75 ++++++++++++++
.../JodaLocalDateHolder_actionReturning.java | 39 +++++++
...aLocalDateHolder_actionReturningCollection.java | 51 +++++++++
.../holder/JodaLocalDateHolder_mixinProperty.java | 43 ++++++++
...lDateHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
...JodaLocalDateHolder_updateReadOnlyProperty.java | 50 +++++++++
...teHolder_updateReadOnlyPropertyWithChoices.java | 66 ++++++++++++
.../jdo/JodaLocalDateJdo-description.adoc | 15 +++
.../jodalocaldate/jdo/JodaLocalDateJdo.java | 81 +++++++++++++++
.../jdo/JodaLocalDateJdoEntities.java | 26 +++++
.../jdo/JodaLocalDateJdoSeedService.java | 45 ++++++++
.../vm/JodaLocalDateVm-description.adoc | 14 +++
.../jodatime/jodalocaldate/vm/JodaLocalDateVm.java | 89 ++++++++++++++++
.../JodaLocalDateTimes-description.adoc | 75 ++++++++++++++
.../jodalocaldatetime/JodaLocalDateTimes.java | 82 +++++++++++++++
.../JodaLocalDateTimesSamples.java | 38 +++++++
.../holder/JodaLocalDateTimeHolder.java | 37 +++++++
.../holder/JodaLocalDateTimeHolder2.java | 75 ++++++++++++++
.../JodaLocalDateTimeHolder_actionReturning.java | 39 +++++++
...alDateTimeHolder_actionReturningCollection.java | 52 ++++++++++
.../JodaLocalDateTimeHolder_mixinProperty.java | 43 ++++++++
...eTimeHolder_updateReadOnlyOptionalProperty.java | 55 ++++++++++
...LocalDateTimeHolder_updateReadOnlyProperty.java | 50 +++++++++
...meHolder_updateReadOnlyPropertyWithChoices.java | 66 ++++++++++++
.../jdo/JodaLocalDateTimeJdo-description.adoc | 15 +++
.../jdo/JodaLocalDateTimeJdo.java | 81 +++++++++++++++
.../jdo/JodaLocalDateTimeJdoEntities.java | 26 +++++
.../jdo/JodaLocalDateTimeJdoSeedService.java | 46 +++++++++
.../vm/JodaLocalDateTimeVm-description.adoc | 14 +++
.../jodalocaldatetime/vm/JodaLocalDateTimeVm.java | 89 ++++++++++++++++
.../jdo/PrimitiveBooleanJdoSeedService.java | 1 -
...teHolder_updateReadOnlyPropertyWithChoices.java | 1 -
.../bytes/jdo/PrimitiveByteJdoSeedService.java | 1 -
...arHolder_updateReadOnlyPropertyWithChoices.java | 1 -
.../chars/jdo/PrimitiveCharJdoSeedService.java | 1 -
...leHolder_updateReadOnlyPropertyWithChoices.java | 1 -
.../doubles/jdo/PrimitiveDoubleJdoSeedService.java | 1 -
...atHolder_updateReadOnlyPropertyWithChoices.java | 1 -
.../floats/jdo/PrimitiveFloatJdoSeedService.java | 1 -
...ntHolder_updateReadOnlyPropertyWithChoices.java | 1 -
.../ints/jdo/PrimitiveIntJdoSeedService.java | 1 -
...ngHolder_updateReadOnlyPropertyWithChoices.java | 1 -
.../longs/jdo/PrimitiveLongJdoSeedService.java | 1 -
...rtHolder_updateReadOnlyPropertyWithChoices.java | 1 -
.../shorts/jdo/PrimitiveShortJdoSeedService.java | 3 +-
.../dom/types/temporal/TemporalTypesMenu.java | 79 --------------
.../TemporalJavaSqlDates-description.adoc | 75 --------------
.../temporal/javasqldate/TemporalJavaSqlDates.java | 76 --------------
.../javasqldate/TemporalJavaSqlDatesStream.java | 37 -------
.../holder/TemporalJavaSqlDateHolder.java | 37 -------
.../holder/TemporalJavaSqlDateHolder2.java | 76 --------------
.../TemporalJavaSqlDateHolder_actionReturning.java | 39 -------
...avaSqlDateHolder_actionReturningCollection.java | 51 ---------
.../TemporalJavaSqlDateHolder_mixinProperty.java | 45 --------
...lDateHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...alJavaSqlDateHolder_updateReadOnlyProperty.java | 50 ---------
...teHolder_updateReadOnlyPropertyWithChoices.java | 65 ------------
.../jdo/TemporalJavaSqlDateJdo-description.adoc | 15 ---
.../javasqldate/jdo/TemporalJavaSqlDateJdo.java | 83 ---------------
.../jdo/TemporalJavaSqlDateJdoEntities.java | 26 -----
.../jdo/TemporalJavaSqlDateJdoSeedService.java | 47 ---------
.../vm/TemporalJavaSqlDateVm-description.adoc | 14 ---
.../javasqldate/vm/TemporalJavaSqlDateVm.java | 91 ----------------
.../TemporalJavaSqlTimestamps-description.adoc | 75 --------------
.../TemporalJavaSqlTimestamps.java | 76 --------------
.../TemporalJavaSqlTimestampsStream.java | 37 -------
.../holder/TemporalJavaSqlTimestampHolder.java | 37 -------
.../holder/TemporalJavaSqlTimestampHolder2.java | 76 --------------
...oralJavaSqlTimestampHolder_actionReturning.java | 39 -------
...lTimestampHolder_actionReturningCollection.java | 51 ---------
...mporalJavaSqlTimestampHolder_mixinProperty.java | 45 --------
...stampHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...aSqlTimestampHolder_updateReadOnlyProperty.java | 50 ---------
...mpHolder_updateReadOnlyPropertyWithChoices.java | 65 ------------
.../TemporalJavaSqlTimestampJdo-description.adoc | 15 ---
.../jdo/TemporalJavaSqlTimestampJdo.java | 83 ---------------
.../jdo/TemporalJavaSqlTimestampJdoEntities.java | 26 -----
.../TemporalJavaSqlTimestampJdoSeedService.java | 47 ---------
.../vm/TemporalJavaSqlTimestampVm-description.adoc | 14 ---
.../vm/TemporalJavaSqlTimestampVm.java | 91 ----------------
.../TemporalJavaTimeLocalDates-description.adoc | 75 --------------
.../TemporalJavaTimeLocalDates.java | 76 --------------
.../TemporalJavaTimeLocalDatesStream.java | 37 -------
.../holder/TemporalJavaTimeLocalDateHolder.java | 37 -------
.../holder/TemporalJavaTimeLocalDateHolder2.java | 76 --------------
...ralJavaTimeLocalDateHolder_actionReturning.java | 39 -------
...eLocalDateHolder_actionReturningCollection.java | 50 ---------
...poralJavaTimeLocalDateHolder_mixinProperty.java | 45 --------
...lDateHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...TimeLocalDateHolder_updateReadOnlyProperty.java | 50 ---------
...teHolder_updateReadOnlyPropertyWithChoices.java | 65 ------------
.../jdo/TemporalJavaTimeLocalDateJdo.java | 83 ---------------
.../jdo/TemporalJavaTimeLocalDateJdoEntities.java | 26 -----
.../TemporalJavaTimeLocalDateJdoSeedService.java | 47 ---------
.../vm/TemporalJavaTimeLocalDateVm.java | 91 ----------------
...TemporalJavaTimeLocalDateTimes-description.adoc | 75 --------------
.../TemporalJavaTimeLocalDateTimes.java | 76 --------------
.../TemporalJavaTimeLocalDateTimesStream.java | 37 -------
.../TemporalJavaTimeLocalDateTimeHolder.java | 37 -------
.../TemporalJavaTimeLocalDateTimeHolder2.java | 76 --------------
...avaTimeLocalDateTimeHolder_actionReturning.java | 39 -------
...alDateTimeHolder_actionReturningCollection.java | 51 ---------
...lJavaTimeLocalDateTimeHolder_mixinProperty.java | 45 --------
...eTimeHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...LocalDateTimeHolder_updateReadOnlyProperty.java | 50 ---------
...meHolder_updateReadOnlyPropertyWithChoices.java | 65 ------------
.../jdo/TemporalJavaTimeLocalDateTimeJdo.java | 83 ---------------
.../TemporalJavaTimeLocalDateTimeJdoEntities.java | 26 -----
...emporalJavaTimeLocalDateTimeJdoSeedService.java | 47 ---------
.../vm/TemporalJavaTimeLocalDateTimeVm.java | 91 ----------------
...emporalJavaTimeOffsetDateTimes-description.adoc | 75 --------------
.../TemporalJavaTimeOffsetDateTimes.java | 77 --------------
.../TemporalJavaTimeOffsetDateTimesStream.java | 38 -------
.../TemporalJavaTimeOffsetDateTimeHolder.java | 37 -------
.../TemporalJavaTimeOffsetDateTimeHolder2.java | 76 --------------
...vaTimeOffsetDateTimeHolder_actionReturning.java | 39 -------
...etDateTimeHolder_actionReturningCollection.java | 51 ---------
...JavaTimeOffsetDateTimeHolder_mixinProperty.java | 45 --------
...eTimeHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...ffsetDateTimeHolder_updateReadOnlyProperty.java | 50 ---------
...meHolder_updateReadOnlyPropertyWithChoices.java | 65 ------------
.../jdo/TemporalJavaTimeOffsetDateTimeJdo.java | 83 ---------------
.../TemporalJavaTimeOffsetDateTimeJdoEntities.java | 26 -----
...mporalJavaTimeOffsetDateTimeJdoSeedService.java | 47 ---------
.../vm/TemporalJavaTimeOffsetDateTimeVm.java | 91 ----------------
.../TemporalJavaUtilDates-description.adoc | 75 --------------
.../javautildate/TemporalJavaUtilDates.java | 76 --------------
.../javautildate/TemporalJavaUtilDatesStream.java | 37 -------
.../holder/TemporalJavaUtilDateHolder.java | 37 -------
.../holder/TemporalJavaUtilDateHolder2.java | 76 --------------
...TemporalJavaUtilDateHolder_actionReturning.java | 39 -------
...vaUtilDateHolder_actionReturningCollection.java | 51 ---------
.../TemporalJavaUtilDateHolder_mixinProperty.java | 45 --------
...lDateHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...lJavaUtilDateHolder_updateReadOnlyProperty.java | 50 ---------
...teHolder_updateReadOnlyPropertyWithChoices.java | 65 ------------
.../javautildate/jdo/TemporalJavaUtilDateJdo.java | 83 ---------------
.../jdo/TemporalJavaUtilDateJdoEntities.java | 26 -----
.../jdo/TemporalJavaUtilDateJdoSeedService.java | 47 ---------
.../javautildate/vm/TemporalJavaUtilDateVm.java | 91 ----------------
.../TemporalJodaDateTimes-description.adoc | 75 --------------
.../jodadatetime/TemporalJodaDateTimes.java | 79 --------------
.../jodadatetime/TemporalJodaDateTimesStream.java | 37 -------
.../holder/TemporalJodaDateTimeHolder.java | 37 -------
.../holder/TemporalJodaDateTimeHolder2.java | 76 --------------
...TemporalJodaDateTimeHolder_actionReturning.java | 39 -------
...daDateTimeHolder_actionReturningCollection.java | 54 ----------
.../TemporalJodaDateTimeHolder_mixinProperty.java | 45 --------
...eTimeHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...lJodaDateTimeHolder_updateReadOnlyProperty.java | 50 ---------
...meHolder_updateReadOnlyPropertyWithChoices.java | 66 ------------
.../jdo/TemporalJodaDateTimeJdo-description.adoc | 15 ---
.../jodadatetime/jdo/TemporalJodaDateTimeJdo.java | 83 ---------------
.../jdo/TemporalJodaDateTimeJdoEntities.java | 26 -----
.../jdo/TemporalJodaDateTimeJdoSeedService.java | 47 ---------
.../vm/TemporalJodaDateTimeVm-description.adoc | 14 ---
.../jodadatetime/vm/TemporalJodaDateTimeVm.java | 91 ----------------
.../TemporalJavaTimeLocalDates-description.adoc | 75 --------------
.../jodalocaldate/TemporalJavaTimeLocalDates.java | 76 --------------
.../TemporalJodaLocalDatesStream.java | 37 -------
...eLocalDateHolder_actionReturningCollection.java | 49 ---------
...poralJavaTimeLocalDateHolder_mixinProperty.java | 45 --------
...lDateHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...TimeLocalDateHolder_updateReadOnlyProperty.java | 50 ---------
.../holder/TemporalJodaLocalDateHolder.java | 37 -------
.../holder/TemporalJodaLocalDateHolder2.java | 76 --------------
...emporalJodaLocalDateHolder_actionReturning.java | 39 -------
...teHolder_updateReadOnlyPropertyWithChoices.java | 64 ------------
.../TemporalJavaTimeLocalDateJdo-description.adoc | 15 ---
.../jdo/TemporalJavaTimeLocalDateJdo.java | 83 ---------------
.../jdo/TemporalJavaTimeLocalDateJdoEntities.java | 26 -----
.../jdo/TemporalJodaLocalDateJdoSeedService.java | 44 --------
.../TemporalJavaTimeLocalDateVm-description.adoc | 14 ---
.../vm/TemporalJavaTimeLocalDateVm.java | 91 ----------------
.../TemporalJavaTimeLocalDates-description.adoc | 75 --------------
.../TemporalJavaTimeLocalDates.java | 76 --------------
.../TemporalJodaLocalDateTimesStream.java | 38 -------
.../holder/TemporalJavaTimeLocalDateHolder.java | 37 -------
.../holder/TemporalJavaTimeLocalDateHolder2.java | 76 --------------
...ralJavaTimeLocalDateHolder_actionReturning.java | 39 -------
...eLocalDateHolder_actionReturningCollection.java | 49 ---------
...poralJavaTimeLocalDateHolder_mixinProperty.java | 45 --------
...lDateHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...TimeLocalDateHolder_updateReadOnlyProperty.java | 50 ---------
...teHolder_updateReadOnlyPropertyWithChoices.java | 59 -----------
.../TemporalJavaTimeLocalDateJdo-description.adoc | 15 ---
.../jdo/TemporalJavaTimeLocalDateJdo.java | 83 ---------------
.../jdo/TemporalJavaTimeLocalDateJdoEntities.java | 26 -----
.../TemporalJavaTimeLocalDateJdoSeedService.java | 43 --------
.../TemporalJavaTimeLocalDateVm-description.adoc | 14 ---
.../vm/TemporalJavaTimeLocalDateVm.java | 91 ----------------
.../dom/types/wrapper/WrapperTypesMenu.java | 92 -----------------
.../types/wrapper/booleans/WrapperBooleans.java | 114 ---------------------
.../wrapper/booleans/WrapperBooleansStream.java | 35 -------
.../booleans/holder/WrapperBooleanHolder.java | 37 -------
.../booleans/holder/WrapperBooleanHolder2.java | 76 --------------
.../WrapperBooleanHolder_actionReturning.java | 39 -------
...perBooleanHolder_actionReturningCollection.java | 52 ----------
.../holder/WrapperBooleanHolder_mixinProperty.java | 45 --------
...oleanHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...rapperBooleanHolder_updateReadOnlyProperty.java | 50 ---------
...anHolder_updateReadOnlyPropertyWithChoices.java | 64 ------------
.../wrapper/booleans/jdo/WrapperBooleanJdo.java | 83 ---------------
.../booleans/jdo/WrapperBooleanJdoEntities.java | 26 -----
.../booleans/jdo/WrapperBooleanJdoSeedService.java | 45 --------
.../wrapper/booleans/vm/WrapperBooleanVm.java | 85 ---------------
.../dom/types/wrapper/bytes/WrapperBytes.java | 76 --------------
.../types/wrapper/bytes/WrapperBytesStream.java | 36 -------
.../wrapper/bytes/holder/WrapperByteHolder.java | 37 -------
.../wrapper/bytes/holder/WrapperByteHolder2.java | 76 --------------
.../holder/WrapperByteHolder_actionReturning.java | 39 -------
...rapperByteHolder_actionReturningCollection.java | 54 ----------
.../holder/WrapperByteHolder_mixinProperty.java | 45 --------
...rByteHolder_updateReadOnlyOptionalProperty.java | 55 ----------
.../WrapperByteHolder_updateReadOnlyProperty.java | 50 ---------
...teHolder_updateReadOnlyPropertyWithChoices.java | 64 ------------
.../types/wrapper/bytes/jdo/WrapperByteJdo.java | 83 ---------------
.../wrapper/bytes/jdo/WrapperByteJdoEntities.java | 26 -----
.../bytes/jdo/WrapperByteJdoSeedService.java | 45 --------
.../dom/types/wrapper/bytes/vm/WrapperByteVm.java | 85 ---------------
.../wrapper/characters/WrapperCharacters.java | 76 --------------
.../characters/WrapperCharactersStream.java | 35 -------
.../characters/holder/WrapperCharacterHolder.java | 37 -------
.../characters/holder/WrapperCharacterHolder2.java | 76 --------------
.../WrapperCharacterHolder_actionReturning.java | 39 -------
...rCharacterHolder_actionReturningCollection.java | 50 ---------
.../WrapperCharacterHolder_mixinProperty.java | 45 --------
...acterHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...pperCharacterHolder_updateReadOnlyProperty.java | 50 ---------
...erHolder_updateReadOnlyPropertyWithChoices.java | 65 ------------
.../characters/jdo/WrapperCharacterJdo.java | 83 ---------------
.../jdo/WrapperCharacterJdoEntities.java | 26 -----
.../jdo/WrapperCharacterJdoSeedService.java | 45 --------
.../wrapper/characters/vm/WrapperCharacterVm.java | 85 ---------------
.../dom/types/wrapper/doubles/WrapperDoubles.java | 76 --------------
.../wrapper/doubles/WrapperDoublesStream.java | 35 -------
.../doubles/holder/WrapperDoubleHolder.java | 37 -------
.../doubles/holder/WrapperDoubleHolder2.java | 76 --------------
.../WrapperDoubleHolder_actionReturning.java | 39 -------
...pperDoubleHolder_actionReturningCollection.java | 54 ----------
.../holder/WrapperDoubleHolder_mixinProperty.java | 45 --------
...oubleHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...WrapperDoubleHolder_updateReadOnlyProperty.java | 50 ---------
...leHolder_updateReadOnlyPropertyWithChoices.java | 64 ------------
.../wrapper/doubles/jdo/WrapperDoubleJdo.java | 83 ---------------
.../doubles/jdo/WrapperDoubleJdoEntities.java | 26 -----
.../doubles/jdo/WrapperDoubleJdoSeedService.java | 45 --------
.../types/wrapper/doubles/vm/WrapperDoubleVm.java | 85 ---------------
.../dom/types/wrapper/floats/WrapperFloats.java | 76 --------------
.../types/wrapper/floats/WrapperFloatsStream.java | 35 -------
.../wrapper/floats/holder/WrapperFloatHolder.java | 37 -------
.../wrapper/floats/holder/WrapperFloatHolder2.java | 76 --------------
.../holder/WrapperFloatHolder_actionReturning.java | 39 -------
...apperFloatHolder_actionReturningCollection.java | 50 ---------
.../holder/WrapperFloatHolder_mixinProperty.java | 45 --------
...FloatHolder_updateReadOnlyOptionalProperty.java | 55 ----------
.../WrapperFloatHolder_updateReadOnlyProperty.java | 50 ---------
...atHolder_updateReadOnlyPropertyWithChoices.java | 64 ------------
.../types/wrapper/floats/jdo/WrapperFloatJdo.java | 83 ---------------
.../floats/jdo/WrapperFloatJdoEntities.java | 26 -----
.../floats/jdo/WrapperFloatJdoSeedService.java | 45 --------
.../types/wrapper/floats/vm/WrapperFloatVm.java | 85 ---------------
.../types/wrapper/integers/WrapperIntegers.java | 76 --------------
.../wrapper/integers/WrapperIntegersStream.java | 35 -------
.../integers/holder/WrapperIntegerHolder.java | 37 -------
.../integers/holder/WrapperIntegerHolder2.java | 76 --------------
.../WrapperIntegerHolder_actionReturning.java | 39 -------
...perIntegerHolder_actionReturningCollection.java | 50 ---------
.../holder/WrapperIntegerHolder_mixinProperty.java | 45 --------
...tegerHolder_updateReadOnlyOptionalProperty.java | 55 ----------
...rapperIntegerHolder_updateReadOnlyProperty.java | 50 ---------
...erHolder_updateReadOnlyPropertyWithChoices.java | 64 ------------
.../wrapper/integers/jdo/WrapperIntegerJdo.java | 83 ---------------
.../integers/jdo/WrapperIntegerJdoEntities.java | 26 -----
.../integers/jdo/WrapperIntegerJdoSeedService.java | 45 --------
.../wrapper/integers/vm/WrapperIntegerVm.java | 85 ---------------
.../dom/types/wrapper/longs/WrapperLongs.java | 76 --------------
.../types/wrapper/longs/WrapperLongsStream.java | 35 -------
.../wrapper/longs/holder/WrapperLongHolder.java | 37 -------
.../wrapper/longs/holder/WrapperLongHolder2.java | 76 --------------
.../holder/WrapperLongHolder_actionReturning.java | 39 -------
...rapperLongHolder_actionReturningCollection.java | 50 ---------
.../holder/WrapperLongHolder_mixinProperty.java | 45 --------
...rLongHolder_updateReadOnlyOptionalProperty.java | 55 ----------
.../WrapperLongHolder_updateReadOnlyProperty.java | 50 ---------
...ngHolder_updateReadOnlyPropertyWithChoices.java | 64 ------------
.../types/wrapper/longs/jdo/WrapperLongJdo.java | 83 ---------------
.../wrapper/longs/jdo/WrapperLongJdoEntities.java | 26 -----
.../longs/jdo/WrapperLongJdoSeedService.java | 45 --------
.../dom/types/wrapper/longs/vm/WrapperLongVm.java | 85 ---------------
.../dom/types/wrapper/shorts/WrapperShorts.java | 76 --------------
.../types/wrapper/shorts/WrapperShortsStream.java | 36 -------
.../wrapper/shorts/holder/WrapperShortHolder.java | 37 -------
.../wrapper/shorts/holder/WrapperShortHolder2.java | 76 --------------
.../holder/WrapperShortHolder_actionReturning.java | 39 -------
...apperShortHolder_actionReturningCollection.java | 50 ---------
.../holder/WrapperShortHolder_mixinProperty.java | 45 --------
...ShortHolder_updateReadOnlyOptionalProperty.java | 55 ----------
.../WrapperShortHolder_updateReadOnlyProperty.java | 50 ---------
...rtHolder_updateReadOnlyPropertyWithChoices.java | 64 ------------
.../types/wrapper/shorts/jdo/WrapperShortJdo.java | 83 ---------------
.../shorts/jdo/WrapperShortJdoEntities.java | 26 -----
.../shorts/jdo/WrapperShortJdoSeedService.java | 45 --------
.../types/wrapper/shorts/vm/WrapperShortVm.java | 85 ---------------
1082 files changed, 25190 insertions(+), 27255 deletions(-)
diff --git a/examples/demo/domain/pom.xml b/examples/demo/domain/pom.xml
index 2b43bd3..07c6def 100644
--- a/examples/demo/domain/pom.xml
+++ b/examples/demo/domain/pom.xml
@@ -74,6 +74,10 @@
</dependency>
<dependency>
<groupId>org.apache.isis.valuetypes</groupId>
+ <artifactId>isis-valuetypes-markdown-ui</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.isis.valuetypes</groupId>
<artifactId>isis-valuetypes-sse-ui</artifactId>
</dependency>
<dependency>
@@ -133,7 +137,11 @@
<version>3.16.1</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.isis.valuetypes</groupId>
+ <artifactId>isis-valuetypes-markdown-applib</artifactId>
+ </dependency>
- </dependencies>
+ </dependencies>
</project>
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/menubars.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/menubars.layout.xml
index 85ea061..dda7b8c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/menubars.layout.xml
+++ b/examples/demo/domain/src/main/java/demoapp/dom/menubars.layout.xml
@@ -26,24 +26,53 @@
<mb3:serviceAction objectType="demo.PrimitiveTypesMenu" id="booleans"/>
</mb3:section>
<mb3:section>
- <mb3:serviceAction objectType="demo.WrapperTypesMenu" id="bytes"/>
- <mb3:serviceAction objectType="demo.WrapperTypesMenu" id="shorts"/>
- <mb3:serviceAction objectType="demo.WrapperTypesMenu" id="integers"/>
- <mb3:serviceAction objectType="demo.WrapperTypesMenu" id="longs"/>
- <mb3:serviceAction objectType="demo.WrapperTypesMenu" id="floats"/>
- <mb3:serviceAction objectType="demo.WrapperTypesMenu" id="doubles"/>
- <mb3:serviceAction objectType="demo.WrapperTypesMenu" id="characters"/>
- <mb3:serviceAction objectType="demo.WrapperTypesMenu" id="booleans"/>
+ <mb3:serviceAction objectType="demo.JavaLangWrapperTypesMenu" id="bytes"/>
+ <mb3:serviceAction objectType="demo.JavaLangWrapperTypesMenu" id="shorts"/>
+ <mb3:serviceAction objectType="demo.JavaLangWrapperTypesMenu" id="integers"/>
+ <mb3:serviceAction objectType="demo.JavaLangWrapperTypesMenu" id="longs"/>
+ <mb3:serviceAction objectType="demo.JavaLangWrapperTypesMenu" id="floats"/>
+ <mb3:serviceAction objectType="demo.JavaLangWrapperTypesMenu" id="doubles"/>
+ <mb3:serviceAction objectType="demo.JavaLangWrapperTypesMenu" id="characters"/>
+ <mb3:serviceAction objectType="demo.JavaLangWrapperTypesMenu" id="booleans"/>
</mb3:section>
<mb3:section>
- <mb3:serviceAction objectType="demo.TemporalTypesMenu" id="javaUtilDates"/>
- <mb3:serviceAction objectType="demo.TemporalTypesMenu" id="javaSqlDates"/>
- <mb3:serviceAction objectType="demo.TemporalTypesMenu" id="javaSqlTimestamps"/>
- <mb3:serviceAction objectType="demo.TemporalTypesMenu" id="javaTimeLocalDates"/>
- <mb3:serviceAction objectType="demo.TemporalTypesMenu" id="javaTimeLocalDateTimes"/>
- <mb3:serviceAction objectType="demo.TemporalTypesMenu" id="javaTimeOffsetDateTimes"/>
+ <mb3:serviceAction objectType="demo.JavaLangTypesMenu" id="strings"/>
+ <mb3:serviceAction objectType="demo.JavaLangTypesMenu" id="voids"/>
</mb3:section>
<mb3:section>
+ <mb3:serviceAction objectType="demo.JavaUtilTypesMenu" id="javaUtilDates"/>
+ <mb3:serviceAction objectType="demo.JavaUtilTypesMenu" id="javaUtilUuids"/>
+ </mb3:section>
+ <mb3:section>
+ <mb3:serviceAction objectType="demo.JavaSqlTypesMenu" id="javaSqlDates"/>
+ <mb3:serviceAction objectType="demo.JavaSqlTypesMenu" id="javaSqlTimestamps"/>
+ </mb3:section>
+ <mb3:section>
+ <mb3:serviceAction objectType="demo.JavaTimeTypesMenu" id="javaTimeLocalDates"/>
+ <mb3:serviceAction objectType="demo.JavaTimeTypesMenu" id="javaTimeLocalDateTimes"/>
+ <mb3:serviceAction objectType="demo.JavaTimeTypesMenu" id="javaTimeOffsetDateTimes"/>
+ </mb3:section>
+ <mb3:section>
+ <mb3:serviceAction objectType="demo.JodaTimeTypesMenu" id="jodaTimeLocalDates"/>
+ <mb3:serviceAction objectType="demo.JodaTimeTypesMenu" id="jodaTimeLocalDateTimes"/>
+ <mb3:serviceAction objectType="demo.JodaTimeTypesMenu" id="jodaTimeDateTimes"/>
+ </mb3:section>
+ <mb3:section>
+ <mb3:serviceAction objectType="demo.IsisTypesMenu" id="isisBlobs"/>
+ <mb3:serviceAction objectType="demo.IsisTypesMenu" id="isisClobs"/>
+ <mb3:serviceAction objectType="demo.IsisTypesMenu" id="isisImages"/>
+ <mb3:serviceAction objectType="demo.IsisTypesMenu" id="isisLocalResourcePaths"/>
+ <mb3:serviceAction objectType="demo.IsisTypesMenu" id="isisPasswords"/>
+ </mb3:section>
+ <mb3:section>
+ <mb3:serviceAction objectType="demo.IsisExtTypesMenu" id="isisExtAsciiDocs"/>
+ <mb3:serviceAction objectType="demo.IsisExtTypesMenu" id="isisExtMarkdowns"/>
+ </mb3:section>
+ </mb3:menu>
+
+ <mb3:menu>
+ <mb3:named>Data Types (old)</mb3:named>
+ <mb3:section>
<mb3:serviceAction objectType="demo.DataTypesMenu" id="text"/>
<mb3:serviceAction objectType="demo.DataTypesMenu" id="wrappers"/>
<mb3:serviceAction objectType="demo.DataTypesMenu" id="uuid">
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/package.jdo b/examples/demo/domain/src/main/java/demoapp/dom/package.jdo
index 3914f14..f11a7fb 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/package.jdo
+++ b/examples/demo/domain/src/main/java/demoapp/dom/package.jdo
@@ -41,7 +41,7 @@
<package name="demoapp.dom.types.primitive.shorts.jdo">
<class name="PrimitiveShortJdo" />
</package>
- <package name="demoapp.dom.types.wrapper.characters.jdo">
+ <package name="demoapp.dom.types.javalang.characters.jdo">
<class name="WrapperCharacterJdo" />
</package>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/IsisTypesMenu.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/IsisTypesMenu.java
new file mode 100644
index 0000000..6462917
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/IsisTypesMenu.java
@@ -0,0 +1,75 @@
+
+/*
+ * 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;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.DomainObjectLayout;
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.annotation.SemanticsOf;
+
+import lombok.extern.log4j.Log4j2;
+
+import demoapp.dom.types.isis.blobs.IsisBlobs;
+import demoapp.dom.types.isis.clobs.IsisClobs;
+import demoapp.dom.types.isis.images.IsisImages;
+import demoapp.dom.types.isis.localresourcepaths.IsisLocalResourcePaths;
+import demoapp.dom.types.isis.passwords.IsisPasswords;
+import demoapp.dom.types.javamath.bigdecimals.JavaMathBigDecimals;
+import demoapp.dom.types.javamath.bigintegers.JavaMathBigIntegers;
+
+@DomainService(nature=NatureOfService.VIEW, objectType = "demo.JavaMathTypesMenu")
+@DomainObjectLayout(named="JavaMathTypes")
+@Log4j2
+public class IsisTypesMenu {
+
+ @Action(semantics = SemanticsOf.SAFE)
+ @ActionLayout(cssClassFa="fa-clock")
+ public IsisBlobs isisBlobs(){
+ return new IsisBlobs();
+ }
+
+ @Action(semantics = SemanticsOf.SAFE)
+ @ActionLayout(cssClassFa="fa-clock")
+ public IsisClobs isisClobs(){
+ return new IsisClobs();
+ }
+
+ @Action(semantics = SemanticsOf.SAFE)
+ @ActionLayout(cssClassFa="fa-clock")
+ public IsisImages isisImages(){
+ return new IsisImages();
+ }
+
+ @Action(semantics = SemanticsOf.SAFE)
+ @ActionLayout(cssClassFa="fa-clock")
+ public IsisLocalResourcePaths isisLocalResourcePaths(){
+ return new IsisLocalResourcePaths();
+ }
+
+ @Action(semantics = SemanticsOf.SAFE)
+ @ActionLayout(cssClassFa="fa-clock")
+ public IsisPasswords isisPasswords(){
+ return new IsisPasswords();
+ }
+
+
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/IsisAsciiDocsStream.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/IsisAsciiDocsStream.java
deleted file mode 100644
index 75c6a5c..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/IsisAsciiDocsStream.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.asciidocs;
-
-import java.util.stream.Stream;
-
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc;
-
-import demoapp.dom.types.Samples;
-
-@Service
-public class IsisAsciiDocsStream implements Samples<AsciiDoc> {
-
- @Override
- public Stream<AsciiDoc> stream() {
- return Stream.of(null);
- }
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/WrapperCharacters-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/WrapperCharacters-description.adoc
deleted file mode 100644
index cde7fa9..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/WrapperCharacters-description.adoc
+++ /dev/null
@@ -1,75 +0,0 @@
-The framework has built-in support for all of the Wrapper data types, including `Character`.
-
-From here you can:
-
-* navigate to an entity that uses the `Character` datatype
-* open a view model that uses the `Character` datatype
-
-Some properties on these domain objects are mandatory, some optional.
-
-== Common interface
-
-These objects both implement a common interface, `IsisAsciiDocHolder`:
-
-[source,java]
-----
-include::holder/IsisAsciiDocHolder.java[tags=class]
-----
-
-There is also an extension of this interface, `IsisAsciiDocHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/IsisAsciiDocHolder2.java[tags=class]
-----
-
-<.> The default methods have annotations that are automatically inherited.
-<.> Using `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-
-
-== 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/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]
-----
-
-
-* 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]
-----
-
-
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/WrapperCharacters.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/WrapperCharacters.java
deleted file mode 100644
index 26d88fc..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/WrapperCharacters.java
+++ /dev/null
@@ -1,76 +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.asciidoc;
-
-import java.util.List;
-
-import javax.inject.Inject;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Collection;
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.Nature;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.extern.log4j.Log4j2;
-
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.types.isis.asciidoc.jdo.IsisAsciiDocJdoEntities;
-import demoapp.dom.types.isis.asciidoc.jdo.IsisAsciiDocJdo;
-import demoapp.dom.types.isis.asciidoc.vm.IsisAsciiDocVm;
-
-@XmlRootElement(name = "Demo")
-@XmlType
-@XmlAccessorType(XmlAccessType.FIELD)
-@DomainObject(nature=Nature.VIEW_MODEL, objectType = "demo.IsisAsciiDocs", editing=Editing.ENABLED)
-@Log4j2
-public class IsisAsciiDocs implements HasAsciiDocDescription {
-
- public String title() {
- return "Character (wrapper) data type";
- }
-
- @Action(semantics = SemanticsOf.SAFE)
- @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
- public IsisAsciiDocVm openViewModel(Character initialValue) {
- return new IsisAsciiDocVm(initialValue);
- }
- public Character default0OpenViewModel() {
- return 'a';
- }
-
- @Collection
- public List<IsisAsciiDocJdo> getEntities() {
- return entities.all();
- }
-
- @Inject
- @XmlTransient
- IsisAsciiDocJdoEntities entities;
-
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/WrapperCharacters.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/WrapperCharacters.layout.xml
deleted file mode 100644
index 55c5b87..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/WrapperCharacters.layout.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<bs3:grid
- xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
- xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
- xmlns:cpt="http://isis.apache.org/applib/layout/component"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
- <bs3:row>
- <bs3:col span="10" unreferencedActions="true">
- <cpt:domainObject />
- <cpt:action id="rebuildMetamodel"/>
- </bs3:col>
- <bs3:col span="2">
- <cpt:fieldSet name="" id="sources" />
- </bs3:col>
- </bs3:row>
-
- <bs3:row>
- <bs3:col span="6">
- <bs3:row>
- <bs3:col span="12">
- <cpt:collection id="entities"/>
- </bs3:col>
- <bs3:col span="12">
- <cpt:action id="openViewModel"/>
- </bs3:col>
- </bs3:row>
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
- </bs3:col>
- <bs3:col span="6">
- <cpt:fieldSet name="Description" id="description" >
- <cpt:action id="clearHints" position="PANEL" />
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="rebuildMetamodel" position="PANEL"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
- <cpt:property id="description"/>
- </cpt:fieldSet>
- </bs3:col>
- </bs3:row>
- <bs3:row>
- <bs3:col span="12" unreferencedCollections="true"/>
- </bs3:row>
-
-</bs3:grid>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder.java
deleted file mode 100644
index 0f398e3..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder.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.asciidoc.holder;
-
-//tag::class[]
-public interface IsisAsciiDocHolder {
-
- Character getReadOnlyProperty();
- void setReadOnlyProperty(Character c);
-
- Character getReadWriteProperty();
- void setReadWriteProperty(Character c);
-
- Character getReadOnlyOptionalProperty();
- void setReadOnlyOptionalProperty(Character c);
-
- Character getReadWriteOptionalProperty();
- void setReadWriteOptionalProperty(Character c);
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder2.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder2.java
deleted file mode 100644
index facb48d..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder2.java
+++ /dev/null
@@ -1,76 +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.asciidoc.holder;
-
-import org.apache.isis.applib.annotation.LabelPosition;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Where;
-
-//tag::class[]
-public interface IsisAsciiDocHolder2 extends IsisAsciiDocHolder {
-
- @Property
- @PropertyLayout( // <.>
- labelPosition = LabelPosition.LEFT,
- describedAs = "labelPosition=LEFT",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "1") // <.>
- default Character getReadOnlyPropertyDerivedLabelPositionLeft() {
- return getReadOnlyProperty();
- }
-
- @Property
- @PropertyLayout(
- labelPosition = LabelPosition.TOP,
- describedAs = "labelPosition=TOP",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "2")
- default Character getReadOnlyPropertyDerivedLabelPositionTop() {
- return getReadOnlyProperty();
- }
-
- @Property
- @PropertyLayout(
- labelPosition = LabelPosition.RIGHT, // TODO: not honoured
- describedAs = "labelPosition=RIGHT",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "3")
- default Character getReadOnlyPropertyDerivedLabelPositionRight() {
- return getReadOnlyProperty();
- }
-
- @Property
- @PropertyLayout(
- labelPosition = LabelPosition.NONE,
- describedAs = "labelPosition=NONE",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "4")
- default Character getReadOnlyPropertyDerivedLabelPositionNone() {
- return getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_actionReturning.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_actionReturning.java
deleted file mode 100644
index 96b4420..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_actionReturning.java
+++ /dev/null
@@ -1,39 +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.asciidoc.holder;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(semantics = SemanticsOf.SAFE)
-@RequiredArgsConstructor
-public class IsisAsciiDocHolder_actionReturning {
-
- private final IsisAsciiDocHolder holder;
-
- public Character act() {
- return holder.getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_actionReturningCollection.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_actionReturningCollection.java
deleted file mode 100644
index 70f0e00..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_actionReturningCollection.java
+++ /dev/null
@@ -1,48 +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.asciidoc.holder;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.stream.Stream;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-import lombok.val;
-
-
-//tag::class[]
-@Action(semantics = SemanticsOf.SAFE)
-@RequiredArgsConstructor
-public class IsisAsciiDocHolder_actionReturningCollection {
-
- private final IsisAsciiDocHolder holder;
-
- public Collection<Character> act() {
- final Collection<Character> characters = new ArrayList<>();
- val initial = holder.getReadOnlyProperty();
- Stream.of(0, 1, 2, 3).forEach(x ->
- characters.add((char) (initial + x))
- );
- return characters;
- }
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_mixinProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_mixinProperty.java
deleted file mode 100644
index 49fba06..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_mixinProperty.java
+++ /dev/null
@@ -1,45 +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.asciidoc.holder;
-
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Where;
-
-import lombok.RequiredArgsConstructor;
-
-import demoapp.dom.types.primitive.chars.holder.PrimitiveCharHolder;
-
-
-//tag::class[]
-@Property()
-@PropertyLayout(hidden = Where.ALL_TABLES)
-@RequiredArgsConstructor
-public class IsisAsciiDocHolder_mixinProperty {
-
- private final IsisAsciiDocHolder holder;
-
- @MemberOrder(name = "contributed", sequence = "1")
- public Character prop() {
- return holder.getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_updateReadOnlyOptionalProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_updateReadOnlyOptionalProperty.java
deleted file mode 100644
index 34c3914..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_updateReadOnlyOptionalProperty.java
+++ /dev/null
@@ -1,55 +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.asciidoc.holder;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Parameter;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(
- semantics = SemanticsOf.IDEMPOTENT,
- associateWith = "readOnlyOptionalProperty",
- associateWithSequence = "1"
-)
-@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update")
-@RequiredArgsConstructor
-public class IsisAsciiDocHolder_updateReadOnlyOptionalProperty {
-
- private final IsisAsciiDocHolder holder;
-
- public IsisAsciiDocHolder act(
- @Parameter(optionality = Optionality.OPTIONAL) // <.>
- Character newValue
- ) {
- holder.setReadOnlyOptionalProperty(newValue);
- return holder;
- }
- public Character default0Act() {
- return holder.getReadOnlyOptionalProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_updateReadOnlyProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_updateReadOnlyProperty.java
deleted file mode 100644
index 883394e..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_updateReadOnlyProperty.java
+++ /dev/null
@@ -1,50 +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.asciidoc.holder;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(
- semantics = SemanticsOf.IDEMPOTENT,
- associateWith = "readOnlyProperty",
- associateWithSequence = "1"
-)
-@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update")
-@RequiredArgsConstructor
-public class IsisAsciiDocHolder_updateReadOnlyProperty {
-
- private final IsisAsciiDocHolder holder;
-
- public IsisAsciiDocHolder act(Character newValue) {
- holder.setReadOnlyProperty(newValue);
- return holder;
- }
- public Character default0Act() {
- return holder.getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_updateReadOnlyPropertyWithChoices.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_updateReadOnlyPropertyWithChoices.java
deleted file mode 100644
index 9782b10..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/holder/WrapperCharacterHolder_updateReadOnlyPropertyWithChoices.java
+++ /dev/null
@@ -1,58 +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.asciidoc.holder;
-
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(
- semantics = SemanticsOf.IDEMPOTENT,
- associateWith = "readOnlyProperty",
- associateWithSequence = "2"
-)
-@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update with choices")
-@RequiredArgsConstructor
-public class IsisAsciiDocHolder_updateReadOnlyPropertyWithChoices {
-
- private final IsisAsciiDocHolder holder;
-
- public IsisAsciiDocHolder act(Character newValue) {
- holder.setReadOnlyProperty(newValue);
- return holder;
- }
- public Character default0Act() {
- return holder.getReadOnlyProperty();
- }
- public List<Character> choices0Act() {
- return Stream.of('a', 'b', 'c')
- .collect(Collectors.toList());
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/jdo/WrapperCharacterJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/jdo/WrapperCharacterJdo-description.adoc
deleted file mode 100644
index f8b4b0a..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/jdo/WrapperCharacterJdo-description.adoc
+++ /dev/null
@@ -1,15 +0,0 @@
-JDO supports `Character` out-of-the-box, so no special annotations are required.
-
-[source,java]
-----
-include::IsisAsciiDocJdo.java[tags=class]
-----
-<.> a no-arg constructor is introduced by JDO enhancer
-<.> required property as defined to JDO/DataNucleus.
-+
-Apache Isis assumes properties are mandatory, so no additional annotation is required.
-<.> directly editable property as defined to Apache Isis
-<.> optional property as defined to Apache Isis
-<.> optional property as defined to JDO/DataNucleus
-
-
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/jdo/WrapperCharacterJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/jdo/WrapperCharacterJdo.java
deleted file mode 100644
index 12dee6f..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/jdo/WrapperCharacterJdo.java
+++ /dev/null
@@ -1,83 +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.asciidoc.jdo;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.DatastoreIdentity;
-import javax.jdo.annotations.IdGeneratorStrategy;
-import javax.jdo.annotations.IdentityType;
-import javax.jdo.annotations.PersistenceCapable;
-
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Title;
-import org.apache.isis.applib.annotation.Where;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.types.isis.asciidoc.holder.IsisAsciiDocHolder;
-
-//tag::class[]
-@PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
-@DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
-@DomainObject(
- objectType = "demo.IsisAsciiDocJdo"
-)
-public class IsisAsciiDocJdo // <.>
- implements HasAsciiDocDescription, IsisAsciiDocHolder {
-
-//end::class[]
- public IsisAsciiDocJdo(Character initialValue) {
- this.readOnlyProperty = initialValue;
- this.readWriteProperty = initialValue;
- }
-
-//tag::class[]
- @Title(prepend = "Character (wrapper) JDO entity: ")
- @MemberOrder(name = "read-only-properties", sequence = "1")
- @Column(allowsNull = "false") // <.>
- @Getter @Setter
- private Character readOnlyProperty;
-
- @Property(editing = Editing.ENABLED) // <.>
- @MemberOrder(name = "editable-properties", sequence = "1")
- @Column(allowsNull = "false")
- @Getter @Setter
- private Character readWriteProperty;
-
- @Property(optionality = Optionality.OPTIONAL) // <.>
- @MemberOrder(name = "optional-properties", sequence = "1")
- @Column(allowsNull = "true") // <.>
- @Getter @Setter
- private Character readOnlyOptionalProperty;
-
- @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
- @MemberOrder(name = "optional-properties", sequence = "2")
- @Column(allowsNull = "true")
- @Getter @Setter
- private Character readWriteOptionalProperty;
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/jdo/WrapperCharacterJdo.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/jdo/WrapperCharacterJdo.layout.xml
deleted file mode 100644
index 777ee39..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/jdo/WrapperCharacterJdo.layout.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<bs3:grid
- xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
- xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
- xmlns:cpt="http://isis.apache.org/applib/layout/component"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
- <bs3:row>
- <bs3:col span="10" unreferencedActions="true">
- <cpt:domainObject />
- <cpt:action id="actionReturning"/>
- <cpt:action id="actionReturningCollection"/>
- <cpt:action id="rebuildMetamodel"/>
- </bs3:col>
- <bs3:col span="2">
- <cpt:fieldSet name="" id="sources" />
- </bs3:col>
- </bs3:row>
-
- <bs3:row>
- <bs3:col span="6">
- <cpt:fieldSet name="Read Only Properties" id="read-only-properties"/>
- <cpt:fieldSet name="Editable Properties" id="editable-properties"/>
- <cpt:fieldSet name="Optional Properties" id="optional-properties"/>
- <cpt:fieldSet name="Label Positions" id="label-positions"/>
- <cpt:fieldSet name="Contributed by Mixins" id="contributed"/>
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
- </bs3:col>
- <bs3:col span="6">
- <cpt:fieldSet name="Description" id="description" >
- <cpt:action id="clearHints" position="PANEL" />
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="rebuildMetamodel" position="PANEL"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadJdoMetadata" position="PANEL_DROPDOWN"/>
- <cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
- <cpt:property id="description"/>
- </cpt:fieldSet>
- </bs3:col>
- </bs3:row>
- <bs3:row>
- <bs3:col span="12" unreferencedCollections="true"/>
- </bs3:row>
-
-</bs3:grid>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/jdo/WrapperCharacterJdoEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/jdo/WrapperCharacterJdoEntities.java
deleted file mode 100644
index ef29c50..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/jdo/WrapperCharacterJdoEntities.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package demoapp.dom.types.isis.asciidoc.jdo;
-
-import java.util.List;
-import java.util.Optional;
-
-import javax.inject.Inject;
-
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.services.repository.RepositoryService;
-
-@Service
-public class IsisAsciiDocJdoEntities {
-
- public Optional<IsisAsciiDocJdo> find(final Character readOnlyProperty) {
- return repositoryService.firstMatch(IsisAsciiDocJdo.class, x -> x.getReadOnlyProperty() == readOnlyProperty);
- }
-
- public List<IsisAsciiDocJdo> all() {
- return repositoryService.allInstances(IsisAsciiDocJdo.class);
- }
-
- @Inject
- RepositoryService repositoryService;
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/jdo/WrapperCharacterJdoSeedService.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/jdo/WrapperCharacterJdoSeedService.java
deleted file mode 100644
index 5e92bf4..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/jdo/WrapperCharacterJdoSeedService.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package demoapp.dom.types.isis.asciidoc.jdo;
-
-import java.util.stream.Stream;
-
-import javax.inject.Inject;
-
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.services.repository.RepositoryService;
-import org.apache.isis.core.runtime.events.app.AppLifecycleEvent;
-import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScript;
-import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
-
-@Service
-public class IsisAsciiDocJdoSeedService {
-
- @EventListener(AppLifecycleEvent.class)
- public void onAppLifecycleEvent(AppLifecycleEvent event) {
-
- if (event.getEventType() == AppLifecycleEvent.EventType.appPostMetamodel) {
- fixtureScripts.run(new IsisAsciiDocJdoEntityFixture());
- }
- }
-
- @Inject
- FixtureScripts fixtureScripts;
-
- static class IsisAsciiDocJdoEntityFixture extends FixtureScript {
-
- @Override
- protected void execute(ExecutionContext executionContext) {
- Stream.of('a', 'b', 'c')
- .map(IsisAsciiDocJdo::new)
- .forEach(repositoryService::persist);
- }
-
- @Inject
- RepositoryService repositoryService;
-
- }
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/vm/WrapperCharacterVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/vm/WrapperCharacterVm-description.adoc
deleted file mode 100644
index de82f6a..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/vm/WrapperCharacterVm-description.adoc
+++ /dev/null
@@ -1,13 +0,0 @@
-JAXB supports `Character` out-of-the-box, so no special annotations are required.
-
-[source,java]
-----
-include::IsisAsciiDocVm.java[tags=class]
-----
-<.> a no-arg constructor is required by JAXB
-<.> required property as defined to JAXB
-<.> directly editable property as defined to Apache Isis
-<.> optional property as defined to Apache Isis.
-+
-This is the default for JAXB so no additional annotation required.
-
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/vm/WrapperCharacterVm.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/vm/WrapperCharacterVm.java
deleted file mode 100644
index 2814ca0..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/vm/WrapperCharacterVm.java
+++ /dev/null
@@ -1,85 +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.asciidoc.vm;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Nature;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Title;
-import org.apache.isis.applib.annotation.Where;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.types.isis.asciidoc.holder.IsisAsciiDocHolder;
-
-//tag::class[]
-@XmlRootElement(name = "root")
-@XmlType
-@XmlAccessorType(XmlAccessType.FIELD)
-@DomainObject(
- nature=Nature.VIEW_MODEL,
- objectType = "demo.IsisAsciiDocVm"
-)
-@lombok.NoArgsConstructor // <.>
-public class IsisAsciiDocVm
- implements HasAsciiDocDescription, IsisAsciiDocHolder {
-
-//end::class[]
- public IsisAsciiDocVm(Character initialValue) {
- this.readOnlyProperty = initialValue;
- this.readWriteProperty = initialValue;
- }
-
-//tag::class[]
- @Title(prepend = "Character (wrapper) view model: ")
- @MemberOrder(name = "read-only-properties", sequence = "1")
- @XmlElement(required = true) // <.>
- @Getter @Setter
- private Character readOnlyProperty;
-
- @Property(editing = Editing.ENABLED) // <.>
- @MemberOrder(name = "editable-properties", sequence = "1")
- @XmlElement(required = true)
- @Getter @Setter
- private Character readWriteProperty;
-
- @Property(optionality = Optionality.OPTIONAL) // <.>
- @MemberOrder(name = "optional-properties", sequence = "1")
- @Getter @Setter
- private Character readOnlyOptionalProperty;
-
- @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
- @MemberOrder(name = "optional-properties", sequence = "2")
- @Getter @Setter
- private Character readWriteOptionalProperty;
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/vm/WrapperCharacterVm.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/vm/WrapperCharacterVm.layout.xml
deleted file mode 100644
index 777ee39..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/asciidocs/vm/WrapperCharacterVm.layout.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<bs3:grid
- xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
- xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
- xmlns:cpt="http://isis.apache.org/applib/layout/component"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
- <bs3:row>
- <bs3:col span="10" unreferencedActions="true">
- <cpt:domainObject />
- <cpt:action id="actionReturning"/>
- <cpt:action id="actionReturningCollection"/>
- <cpt:action id="rebuildMetamodel"/>
- </bs3:col>
- <bs3:col span="2">
- <cpt:fieldSet name="" id="sources" />
- </bs3:col>
- </bs3:row>
-
- <bs3:row>
- <bs3:col span="6">
- <cpt:fieldSet name="Read Only Properties" id="read-only-properties"/>
- <cpt:fieldSet name="Editable Properties" id="editable-properties"/>
- <cpt:fieldSet name="Optional Properties" id="optional-properties"/>
- <cpt:fieldSet name="Label Positions" id="label-positions"/>
- <cpt:fieldSet name="Contributed by Mixins" id="contributed"/>
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
- </bs3:col>
- <bs3:col span="6">
- <cpt:fieldSet name="Description" id="description" >
- <cpt:action id="clearHints" position="PANEL" />
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="rebuildMetamodel" position="PANEL"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadJdoMetadata" position="PANEL_DROPDOWN"/>
- <cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
- <cpt:property id="description"/>
- </cpt:fieldSet>
- </bs3:col>
- </bs3:row>
- <bs3:row>
- <bs3:col span="12" unreferencedCollections="true"/>
- </bs3:row>
-
-</bs3:grid>
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
new file mode 100644
index 0000000..67972a4
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/IsisBlobs-description.adoc
@@ -0,0 +1,75 @@
+The framework has built-in support for all of the Wrapper data types, including `Blob`.
+
+From here you can:
+
+* navigate to an entity that uses the `Blob` datatype
+* open a view model that uses the `Blob` datatype
+
+Some properties on these domain objects are mandatory, some optional.
+
+== Common interface
+
+These objects both implement a common interface, `IsisBlobHolder`:
+
+[source,java]
+----
+include::holder/IsisBlobHolder.java[tags=class]
+----
+
+There is also an extension of this interface, `IsisBlobHolder2`, with default methods demonstrating the use of label positions:
+
+[source,java]
+----
+include::holder/IsisBlobHolder2.java[tags=class]
+----
+
+<.> The default methods have annotations that are automatically inherited.
+<.> Using `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
+
+
+== 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]
+----
+
+* the `updateReadOnlyOptionalProperty` action is:
++
+[source,java]
+----
+include::holder/IsisBlobHolder_updateReadOnlyOptionalProperty.java[tags=class]
+----
+
+* 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]
+----
+
+
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/IsisBlobs.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/IsisBlobs.java
new file mode 100644
index 0000000..3174f08
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/IsisBlobs.java
@@ -0,0 +1,81 @@
+/*
+ * 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.blobs;
+
+import java.util.List;
+
+import javax.inject.Inject;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Collection;
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.applib.annotation.Nature;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Blob;
+
+import lombok.extern.log4j.Log4j2;
+
+import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import demoapp.dom.types.Samples;
+import demoapp.dom.types.isis.blobs.jdo.IsisBlobJdoEntities;
+import demoapp.dom.types.isis.blobs.jdo.IsisBlobJdo;
+import demoapp.dom.types.isis.blobs.vm.IsisBlobVm;
+
+@XmlRootElement(name = "Demo")
+@XmlType
+@XmlAccessorType(XmlAccessType.FIELD)
+@DomainObject(nature=Nature.VIEW_MODEL, objectType = "demo.IsisBlobs", editing=Editing.ENABLED)
+@Log4j2
+public class IsisBlobs implements HasAsciiDocDescription {
+
+ public String title() {
+ return "Blob data type";
+ }
+
+ @Action(semantics = SemanticsOf.SAFE)
+ @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
+ public IsisBlobVm openViewModel(Blob initialValue) {
+ return new IsisBlobVm(initialValue);
+ }
+ public Blob default0OpenViewModel() {
+ return samples.single();
+ }
+
+ @Collection
+ public List<IsisBlobJdo> getEntities() {
+ return entities.all();
+ }
+
+ @Inject
+ @XmlTransient
+ IsisBlobJdoEntities entities;
+
+ @Inject
+ @XmlTransient
+ Samples<Blob> samples;
+
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/shorts/WrapperShorts.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/IsisBlobs.layout.xml
similarity index 100%
copy from examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/shorts/WrapperShorts.layout.xml
copy to examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/IsisBlobs.layout.xml
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/IsisBlobsSamples.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/IsisBlobsSamples.java
new file mode 100644
index 0000000..bbc97ff
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/IsisBlobsSamples.java
@@ -0,0 +1,37 @@
+/*
+ * 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.blobs;
+
+import java.util.stream.Stream;
+
+import org.springframework.stereotype.Service;
+
+import org.apache.isis.applib.value.Blob;
+
+import demoapp.dom.types.Samples;
+
+@Service
+public class IsisBlobsSamples implements Samples<Blob> {
+
+ @Override
+ public Stream<Blob> stream() {
+ return Stream.of();
+ }
+
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/IsisBlobsStream.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/IsisBlobsStream.java
deleted file mode 100644
index 5b93fad..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/IsisBlobsStream.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.blobs;
-
-import java.util.stream.Stream;
-
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.value.Blob;
-
-import demoapp.dom.types.Samples;
-
-@Service
-public class IsisBlobsStream implements Samples<Blob> {
-
- @Override
- public Stream<Blob> stream() {
- return Stream.of(null);
- }
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/WrapperCharacters-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/WrapperCharacters-description.adoc
deleted file mode 100644
index 34367a5..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/WrapperCharacters-description.adoc
+++ /dev/null
@@ -1,75 +0,0 @@
-The framework has built-in support for all of the Wrapper data types, including `Character`.
-
-From here you can:
-
-* navigate to an entity that uses the `Character` datatype
-* open a view model that uses the `Character` datatype
-
-Some properties on these domain objects are mandatory, some optional.
-
-== Common interface
-
-These objects both implement a common interface, `IsisBlobHolder`:
-
-[source,java]
-----
-include::holder/IsisBlobHolder.java[tags=class]
-----
-
-There is also an extension of this interface, `IsisBlobHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/IsisBlobHolder2.java[tags=class]
-----
-
-<.> The default methods have annotations that are automatically inherited.
-<.> Using `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-
-
-== 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/IsisBlobHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisBlobHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* 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]
-----
-
-
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/WrapperCharacters.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/WrapperCharacters.java
deleted file mode 100644
index 227cbf0..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/WrapperCharacters.java
+++ /dev/null
@@ -1,76 +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.blobs;
-
-import java.util.List;
-
-import javax.inject.Inject;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Collection;
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.Nature;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.extern.log4j.Log4j2;
-
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.types.isis.blobs.jdo.IsisBlobJdoEntities;
-import demoapp.dom.types.isis.blobs.jdo.IsisBlobJdo;
-import demoapp.dom.types.isis.blobs.vm.IsisBlobVm;
-
-@XmlRootElement(name = "Demo")
-@XmlType
-@XmlAccessorType(XmlAccessType.FIELD)
-@DomainObject(nature=Nature.VIEW_MODEL, objectType = "demo.IsisBlobs", editing=Editing.ENABLED)
-@Log4j2
-public class IsisBlobs implements HasAsciiDocDescription {
-
- public String title() {
- return "Character (wrapper) data type";
- }
-
- @Action(semantics = SemanticsOf.SAFE)
- @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
- public IsisBlobVm openViewModel(Character initialValue) {
- return new IsisBlobVm(initialValue);
- }
- public Character default0OpenViewModel() {
- return 'a';
- }
-
- @Collection
- public List<IsisBlobJdo> getEntities() {
- return entities.all();
- }
-
- @Inject
- @XmlTransient
- IsisBlobJdoEntities entities;
-
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/WrapperCharacters.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/WrapperCharacters.layout.xml
deleted file mode 100644
index 55c5b87..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/WrapperCharacters.layout.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<bs3:grid
- xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
- xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
- xmlns:cpt="http://isis.apache.org/applib/layout/component"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
- <bs3:row>
- <bs3:col span="10" unreferencedActions="true">
- <cpt:domainObject />
- <cpt:action id="rebuildMetamodel"/>
- </bs3:col>
- <bs3:col span="2">
- <cpt:fieldSet name="" id="sources" />
- </bs3:col>
- </bs3:row>
-
- <bs3:row>
- <bs3:col span="6">
- <bs3:row>
- <bs3:col span="12">
- <cpt:collection id="entities"/>
- </bs3:col>
- <bs3:col span="12">
- <cpt:action id="openViewModel"/>
- </bs3:col>
- </bs3:row>
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
- </bs3:col>
- <bs3:col span="6">
- <cpt:fieldSet name="Description" id="description" >
- <cpt:action id="clearHints" position="PANEL" />
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="rebuildMetamodel" position="PANEL"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
- <cpt:property id="description"/>
- </cpt:fieldSet>
- </bs3:col>
- </bs3:row>
- <bs3:row>
- <bs3:col span="12" unreferencedCollections="true"/>
- </bs3:row>
-
-</bs3:grid>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder.java
new file mode 100644
index 0000000..cc4fae9
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder.java
@@ -0,0 +1,39 @@
+/*
+ * 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.blobs.holder;
+
+import org.apache.isis.applib.value.Blob;
+
+//tag::class[]
+public interface IsisBlobHolder {
+
+ Blob getReadOnlyProperty();
+ void setReadOnlyProperty(Blob c);
+
+ Blob getReadWriteProperty();
+ void setReadWriteProperty(Blob c);
+
+ Blob getReadOnlyOptionalProperty();
+ void setReadOnlyOptionalProperty(Blob c);
+
+ Blob getReadWriteOptionalProperty();
+ void setReadWriteOptionalProperty(Blob c);
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder2.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder2.java
new file mode 100644
index 0000000..43e8645
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder2.java
@@ -0,0 +1,77 @@
+/*
+ * 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.blobs.holder;
+
+import org.apache.isis.applib.annotation.LabelPosition;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.value.Blob;
+
+//tag::class[]
+public interface IsisBlobHolder2 extends IsisBlobHolder {
+
+ @Property
+ @PropertyLayout( // <.>
+ labelPosition = LabelPosition.LEFT,
+ describedAs = "labelPosition=LEFT",
+ hidden = Where.ALL_TABLES
+ )
+ @MemberOrder(name = "label-positions", sequence = "1") // <.>
+ default Blob getReadOnlyPropertyDerivedLabelPositionLeft() {
+ return getReadOnlyProperty();
+ }
+
+ @Property
+ @PropertyLayout(
+ labelPosition = LabelPosition.TOP,
+ describedAs = "labelPosition=TOP",
+ hidden = Where.ALL_TABLES
+ )
+ @MemberOrder(name = "label-positions", sequence = "2")
+ default Blob getReadOnlyPropertyDerivedLabelPositionTop() {
+ return getReadOnlyProperty();
+ }
+
+ @Property
+ @PropertyLayout(
+ labelPosition = LabelPosition.RIGHT, // TODO: not honoured
+ describedAs = "labelPosition=RIGHT",
+ hidden = Where.ALL_TABLES
+ )
+ @MemberOrder(name = "label-positions", sequence = "3")
+ default Blob getReadOnlyPropertyDerivedLabelPositionRight() {
+ return getReadOnlyProperty();
+ }
+
+ @Property
+ @PropertyLayout(
+ labelPosition = LabelPosition.NONE,
+ describedAs = "labelPosition=NONE",
+ hidden = Where.ALL_TABLES
+ )
+ @MemberOrder(name = "label-positions", sequence = "4")
+ default Blob getReadOnlyPropertyDerivedLabelPositionNone() {
+ return getReadOnlyProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_actionReturning.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_actionReturning.java
new file mode 100644
index 0000000..2ea911e
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_actionReturning.java
@@ -0,0 +1,40 @@
+/*
+ * 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.blobs.holder;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Blob;
+
+import lombok.RequiredArgsConstructor;
+
+
+//tag::class[]
+@Action(semantics = SemanticsOf.SAFE)
+@RequiredArgsConstructor
+public class IsisBlobHolder_actionReturning {
+
+ private final IsisBlobHolder holder;
+
+ public Blob act() {
+ return holder.getReadOnlyProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_actionReturningCollection.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_actionReturningCollection.java
new file mode 100644
index 0000000..392a67a
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_actionReturningCollection.java
@@ -0,0 +1,53 @@
+/*
+ * 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.blobs.holder;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import javax.inject.Inject;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Blob;
+
+import lombok.RequiredArgsConstructor;
+import lombok.val;
+
+import demoapp.dom.types.Samples;
+
+
+//tag::class[]
+@Action(semantics = SemanticsOf.SAFE)
+@RequiredArgsConstructor
+public class IsisBlobHolder_actionReturningCollection {
+
+ private final IsisBlobHolder holder;
+
+ public Collection<Blob> act() {
+ return samples.stream()
+ .collect(Collectors.toList());
+ }
+
+ @Inject
+ Samples<Blob> samples;
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_mixinProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_mixinProperty.java
new file mode 100644
index 0000000..abc4a11
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_mixinProperty.java
@@ -0,0 +1,46 @@
+/*
+ * 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.blobs.holder;
+
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.value.Blob;
+
+import lombok.RequiredArgsConstructor;
+
+import demoapp.dom.types.primitive.chars.holder.PrimitiveCharHolder;
+
+
+//tag::class[]
+@Property()
+@PropertyLayout(hidden = Where.ALL_TABLES)
+@RequiredArgsConstructor
+public class IsisBlobHolder_mixinProperty {
+
+ private final IsisBlobHolder holder;
+
+ @MemberOrder(name = "contributed", sequence = "1")
+ public Blob prop() {
+ return holder.getReadOnlyProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_updateReadOnlyOptionalProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_updateReadOnlyOptionalProperty.java
new file mode 100644
index 0000000..d1d29ff
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_updateReadOnlyOptionalProperty.java
@@ -0,0 +1,56 @@
+/*
+ * 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.blobs.holder;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Blob;
+
+import lombok.RequiredArgsConstructor;
+
+
+//tag::class[]
+@Action(
+ semantics = SemanticsOf.IDEMPOTENT,
+ associateWith = "readOnlyOptionalProperty",
+ associateWithSequence = "1"
+)
+@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update")
+@RequiredArgsConstructor
+public class IsisBlobHolder_updateReadOnlyOptionalProperty {
+
+ private final IsisBlobHolder holder;
+
+ public IsisBlobHolder act(
+ @Parameter(optionality = Optionality.OPTIONAL) // <.>
+ Blob newValue
+ ) {
+ holder.setReadOnlyOptionalProperty(newValue);
+ return holder;
+ }
+ public Blob default0Act() {
+ return holder.getReadOnlyOptionalProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_updateReadOnlyProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_updateReadOnlyProperty.java
new file mode 100644
index 0000000..489b97d
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_updateReadOnlyProperty.java
@@ -0,0 +1,51 @@
+/*
+ * 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.blobs.holder;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Blob;
+
+import lombok.RequiredArgsConstructor;
+
+
+//tag::class[]
+@Action(
+ semantics = SemanticsOf.IDEMPOTENT,
+ associateWith = "readOnlyProperty",
+ associateWithSequence = "1"
+)
+@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update")
+@RequiredArgsConstructor
+public class IsisBlobHolder_updateReadOnlyProperty {
+
+ private final IsisBlobHolder holder;
+
+ public IsisBlobHolder act(Blob newValue) {
+ holder.setReadOnlyProperty(newValue);
+ return holder;
+ }
+ public Blob default0Act() {
+ return holder.getReadOnlyProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_updateReadOnlyPropertyWithChoices.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_updateReadOnlyPropertyWithChoices.java
new file mode 100644
index 0000000..f5c8d2d
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder_updateReadOnlyPropertyWithChoices.java
@@ -0,0 +1,65 @@
+/*
+ * 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.blobs.holder;
+
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import javax.inject.Inject;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Blob;
+
+import lombok.RequiredArgsConstructor;
+
+import demoapp.dom.types.Samples;
+
+
+//tag::class[]
+@Action(
+ semantics = SemanticsOf.IDEMPOTENT,
+ associateWith = "readOnlyProperty",
+ associateWithSequence = "2"
+)
+@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update with choices")
+@RequiredArgsConstructor
+public class IsisBlobHolder_updateReadOnlyPropertyWithChoices {
+
+ private final IsisBlobHolder holder;
+
+ public IsisBlobHolder act(Blob newValue) {
+ holder.setReadOnlyProperty(newValue);
+ return holder;
+ }
+ public Blob default0Act() {
+ return holder.getReadOnlyProperty();
+ }
+ public List<Blob> choices0Act() {
+ return samples.stream()
+ .collect(Collectors.toList());
+ }
+
+ @Inject
+ Samples<Blob> samples;
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder.java
deleted file mode 100644
index 56574ae..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder.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.blobs.holder;
-
-//tag::class[]
-public interface IsisBlobHolder {
-
- Character getReadOnlyProperty();
- void setReadOnlyProperty(Character c);
-
- Character getReadWriteProperty();
- void setReadWriteProperty(Character c);
-
- Character getReadOnlyOptionalProperty();
- void setReadOnlyOptionalProperty(Character c);
-
- Character getReadWriteOptionalProperty();
- void setReadWriteOptionalProperty(Character c);
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder2.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder2.java
deleted file mode 100644
index 50b936c..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder2.java
+++ /dev/null
@@ -1,76 +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.blobs.holder;
-
-import org.apache.isis.applib.annotation.LabelPosition;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Where;
-
-//tag::class[]
-public interface IsisBlobHolder2 extends IsisBlobHolder {
-
- @Property
- @PropertyLayout( // <.>
- labelPosition = LabelPosition.LEFT,
- describedAs = "labelPosition=LEFT",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "1") // <.>
- default Character getReadOnlyPropertyDerivedLabelPositionLeft() {
- return getReadOnlyProperty();
- }
-
- @Property
- @PropertyLayout(
- labelPosition = LabelPosition.TOP,
- describedAs = "labelPosition=TOP",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "2")
- default Character getReadOnlyPropertyDerivedLabelPositionTop() {
- return getReadOnlyProperty();
- }
-
- @Property
- @PropertyLayout(
- labelPosition = LabelPosition.RIGHT, // TODO: not honoured
- describedAs = "labelPosition=RIGHT",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "3")
- default Character getReadOnlyPropertyDerivedLabelPositionRight() {
- return getReadOnlyProperty();
- }
-
- @Property
- @PropertyLayout(
- labelPosition = LabelPosition.NONE,
- describedAs = "labelPosition=NONE",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "4")
- default Character getReadOnlyPropertyDerivedLabelPositionNone() {
- return getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_actionReturning.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_actionReturning.java
deleted file mode 100644
index 8510a26..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_actionReturning.java
+++ /dev/null
@@ -1,39 +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.blobs.holder;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(semantics = SemanticsOf.SAFE)
-@RequiredArgsConstructor
-public class IsisBlobHolder_actionReturning {
-
- private final IsisBlobHolder holder;
-
- public Character act() {
- return holder.getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_actionReturningCollection.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_actionReturningCollection.java
deleted file mode 100644
index 011d977..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_actionReturningCollection.java
+++ /dev/null
@@ -1,48 +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.blobs.holder;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.stream.Stream;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-import lombok.val;
-
-
-//tag::class[]
-@Action(semantics = SemanticsOf.SAFE)
-@RequiredArgsConstructor
-public class IsisBlobHolder_actionReturningCollection {
-
- private final IsisBlobHolder holder;
-
- public Collection<Character> act() {
- final Collection<Character> characters = new ArrayList<>();
- val initial = holder.getReadOnlyProperty();
- Stream.of(0, 1, 2, 3).forEach(x ->
- characters.add((char) (initial + x))
- );
- return characters;
- }
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_mixinProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_mixinProperty.java
deleted file mode 100644
index ec71d5e..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_mixinProperty.java
+++ /dev/null
@@ -1,45 +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.blobs.holder;
-
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Where;
-
-import lombok.RequiredArgsConstructor;
-
-import demoapp.dom.types.primitive.chars.holder.PrimitiveCharHolder;
-
-
-//tag::class[]
-@Property()
-@PropertyLayout(hidden = Where.ALL_TABLES)
-@RequiredArgsConstructor
-public class IsisBlobHolder_mixinProperty {
-
- private final IsisBlobHolder holder;
-
- @MemberOrder(name = "contributed", sequence = "1")
- public Character prop() {
- return holder.getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_updateReadOnlyOptionalProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_updateReadOnlyOptionalProperty.java
deleted file mode 100644
index 26fad1e..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_updateReadOnlyOptionalProperty.java
+++ /dev/null
@@ -1,55 +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.blobs.holder;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Parameter;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(
- semantics = SemanticsOf.IDEMPOTENT,
- associateWith = "readOnlyOptionalProperty",
- associateWithSequence = "1"
-)
-@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update")
-@RequiredArgsConstructor
-public class IsisBlobHolder_updateReadOnlyOptionalProperty {
-
- private final IsisBlobHolder holder;
-
- public IsisBlobHolder act(
- @Parameter(optionality = Optionality.OPTIONAL) // <.>
- Character newValue
- ) {
- holder.setReadOnlyOptionalProperty(newValue);
- return holder;
- }
- public Character default0Act() {
- return holder.getReadOnlyOptionalProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_updateReadOnlyProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_updateReadOnlyProperty.java
deleted file mode 100644
index 8930bf4..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_updateReadOnlyProperty.java
+++ /dev/null
@@ -1,50 +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.blobs.holder;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(
- semantics = SemanticsOf.IDEMPOTENT,
- associateWith = "readOnlyProperty",
- associateWithSequence = "1"
-)
-@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update")
-@RequiredArgsConstructor
-public class IsisBlobHolder_updateReadOnlyProperty {
-
- private final IsisBlobHolder holder;
-
- public IsisBlobHolder act(Character newValue) {
- holder.setReadOnlyProperty(newValue);
- return holder;
- }
- public Character default0Act() {
- return holder.getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_updateReadOnlyPropertyWithChoices.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_updateReadOnlyPropertyWithChoices.java
deleted file mode 100644
index b4056de..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/WrapperCharacterHolder_updateReadOnlyPropertyWithChoices.java
+++ /dev/null
@@ -1,58 +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.blobs.holder;
-
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(
- semantics = SemanticsOf.IDEMPOTENT,
- associateWith = "readOnlyProperty",
- associateWithSequence = "2"
-)
-@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update with choices")
-@RequiredArgsConstructor
-public class IsisBlobHolder_updateReadOnlyPropertyWithChoices {
-
- private final IsisBlobHolder holder;
-
- public IsisBlobHolder act(Character newValue) {
- holder.setReadOnlyProperty(newValue);
- return holder;
- }
- public Character default0Act() {
- return holder.getReadOnlyProperty();
- }
- public List<Character> choices0Act() {
- return Stream.of('a', 'b', 'c')
- .collect(Collectors.toList());
- }
-
-}
-//end::class[]
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
new file mode 100644
index 0000000..c130947
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdo-description.adoc
@@ -0,0 +1,15 @@
+JDO supports `Blob` out-of-the-box, so no special annotations are required.
+
+[source,java]
+----
+include::IsisBlobJdo.java[tags=class]
+----
+<.> a no-arg constructor is introduced by JDO enhancer
+<.> required property as defined to JDO/DataNucleus.
++
+Apache Isis assumes properties are mandatory, so no additional annotation is required.
+<.> directly editable property as defined to Apache Isis
+<.> optional property as defined to Apache Isis
+<.> optional property as defined to JDO/DataNucleus
+
+
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdo.java
new file mode 100644
index 0000000..4414c1b
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdo.java
@@ -0,0 +1,84 @@
+/*
+ * 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.blobs.jdo;
+
+import javax.jdo.annotations.Column;
+import javax.jdo.annotations.DatastoreIdentity;
+import javax.jdo.annotations.IdGeneratorStrategy;
+import javax.jdo.annotations.IdentityType;
+import javax.jdo.annotations.PersistenceCapable;
+
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.value.Blob;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import demoapp.dom.types.isis.blobs.holder.IsisBlobHolder;
+
+//tag::class[]
+@PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
+@DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
+@DomainObject(
+ objectType = "demo.IsisBlobJdo"
+)
+public class IsisBlobJdo // <.>
+ implements HasAsciiDocDescription, IsisBlobHolder {
+
+//end::class[]
+ public IsisBlobJdo(Blob initialValue) {
+ this.readOnlyProperty = initialValue;
+ this.readWriteProperty = initialValue;
+ }
+
+//tag::class[]
+ @Title(prepend = "Blob JDO entity: ")
+ @MemberOrder(name = "read-only-properties", sequence = "1")
+ @Column(allowsNull = "false") // <.>
+ @Getter @Setter
+ private Blob readOnlyProperty;
+
+ @Property(editing = Editing.ENABLED) // <.>
+ @MemberOrder(name = "editable-properties", sequence = "1")
+ @Column(allowsNull = "false")
+ @Getter @Setter
+ private Blob readWriteProperty;
+
+ @Property(optionality = Optionality.OPTIONAL) // <.>
+ @MemberOrder(name = "optional-properties", sequence = "1")
+ @Column(allowsNull = "true") // <.>
+ @Getter @Setter
+ private Blob readOnlyOptionalProperty;
+
+ @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
+ @MemberOrder(name = "optional-properties", sequence = "2")
+ @Column(allowsNull = "true")
+ @Getter @Setter
+ private Blob readWriteOptionalProperty;
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/shorts/vm/WrapperShortVm.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdo.layout.xml
similarity index 100%
copy from examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/shorts/vm/WrapperShortVm.layout.xml
copy to examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdo.layout.xml
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdoEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdoEntities.java
new file mode 100644
index 0000000..0afdd80
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdoEntities.java
@@ -0,0 +1,27 @@
+package demoapp.dom.types.isis.blobs.jdo;
+
+import java.util.List;
+import java.util.Optional;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Service;
+
+import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.applib.value.Blob;
+
+@Service
+public class IsisBlobJdoEntities {
+
+ public Optional<IsisBlobJdo> find(final Blob readOnlyProperty) {
+ return repositoryService.firstMatch(IsisBlobJdo.class, x -> x.getReadOnlyProperty() == readOnlyProperty);
+ }
+
+ public List<IsisBlobJdo> all() {
+ return repositoryService.allInstances(IsisBlobJdo.class);
+ }
+
+ @Inject
+ RepositoryService repositoryService;
+
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdoSeedService.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdoSeedService.java
new file mode 100644
index 0000000..81e98ab
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdoSeedService.java
@@ -0,0 +1,47 @@
+package demoapp.dom.types.isis.blobs.jdo;
+
+import java.util.stream.Stream;
+
+import javax.inject.Inject;
+
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
+
+import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.applib.value.Blob;
+import org.apache.isis.core.runtime.events.app.AppLifecycleEvent;
+import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScript;
+import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
+
+import demoapp.dom.types.Samples;
+
+@Service
+public class IsisBlobJdoSeedService {
+
+ @EventListener(AppLifecycleEvent.class)
+ public void onAppLifecycleEvent(AppLifecycleEvent event) {
+
+ if (event.getEventType() == AppLifecycleEvent.EventType.appPostMetamodel) {
+ fixtureScripts.run(new IsisBlobJdoEntityFixture());
+ }
+ }
+
+ @Inject
+ FixtureScripts fixtureScripts;
+
+ static class IsisBlobJdoEntityFixture extends FixtureScript {
+
+ @Override
+ protected void execute(ExecutionContext executionContext) {
+ samples.stream()
+ .map(IsisBlobJdo::new)
+ .forEach(repositoryService::persist);
+ }
+
+ @Inject
+ RepositoryService repositoryService;
+
+ @Inject
+ Samples<Blob> samples;
+ }
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/WrapperCharacterJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/WrapperCharacterJdo-description.adoc
deleted file mode 100644
index 78683ad..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/WrapperCharacterJdo-description.adoc
+++ /dev/null
@@ -1,15 +0,0 @@
-JDO supports `Character` out-of-the-box, so no special annotations are required.
-
-[source,java]
-----
-include::IsisBlobJdo.java[tags=class]
-----
-<.> a no-arg constructor is introduced by JDO enhancer
-<.> required property as defined to JDO/DataNucleus.
-+
-Apache Isis assumes properties are mandatory, so no additional annotation is required.
-<.> directly editable property as defined to Apache Isis
-<.> optional property as defined to Apache Isis
-<.> optional property as defined to JDO/DataNucleus
-
-
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/WrapperCharacterJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/WrapperCharacterJdo.java
deleted file mode 100644
index 50014d2..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/WrapperCharacterJdo.java
+++ /dev/null
@@ -1,83 +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.blobs.jdo;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.DatastoreIdentity;
-import javax.jdo.annotations.IdGeneratorStrategy;
-import javax.jdo.annotations.IdentityType;
-import javax.jdo.annotations.PersistenceCapable;
-
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Title;
-import org.apache.isis.applib.annotation.Where;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.types.isis.blobs.holder.IsisBlobHolder;
-
-//tag::class[]
-@PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
-@DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
-@DomainObject(
- objectType = "demo.IsisBlobJdo"
-)
-public class IsisBlobJdo // <.>
- implements HasAsciiDocDescription, IsisBlobHolder {
-
-//end::class[]
- public IsisBlobJdo(Character initialValue) {
- this.readOnlyProperty = initialValue;
- this.readWriteProperty = initialValue;
- }
-
-//tag::class[]
- @Title(prepend = "Character (wrapper) JDO entity: ")
- @MemberOrder(name = "read-only-properties", sequence = "1")
- @Column(allowsNull = "false") // <.>
- @Getter @Setter
- private Character readOnlyProperty;
-
- @Property(editing = Editing.ENABLED) // <.>
- @MemberOrder(name = "editable-properties", sequence = "1")
- @Column(allowsNull = "false")
- @Getter @Setter
- private Character readWriteProperty;
-
- @Property(optionality = Optionality.OPTIONAL) // <.>
- @MemberOrder(name = "optional-properties", sequence = "1")
- @Column(allowsNull = "true") // <.>
- @Getter @Setter
- private Character readOnlyOptionalProperty;
-
- @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
- @MemberOrder(name = "optional-properties", sequence = "2")
- @Column(allowsNull = "true")
- @Getter @Setter
- private Character readWriteOptionalProperty;
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/WrapperCharacterJdo.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/WrapperCharacterJdo.layout.xml
deleted file mode 100644
index 777ee39..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/WrapperCharacterJdo.layout.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<bs3:grid
- xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
- xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
- xmlns:cpt="http://isis.apache.org/applib/layout/component"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
- <bs3:row>
- <bs3:col span="10" unreferencedActions="true">
- <cpt:domainObject />
- <cpt:action id="actionReturning"/>
- <cpt:action id="actionReturningCollection"/>
- <cpt:action id="rebuildMetamodel"/>
- </bs3:col>
- <bs3:col span="2">
- <cpt:fieldSet name="" id="sources" />
- </bs3:col>
- </bs3:row>
-
- <bs3:row>
- <bs3:col span="6">
- <cpt:fieldSet name="Read Only Properties" id="read-only-properties"/>
- <cpt:fieldSet name="Editable Properties" id="editable-properties"/>
- <cpt:fieldSet name="Optional Properties" id="optional-properties"/>
- <cpt:fieldSet name="Label Positions" id="label-positions"/>
- <cpt:fieldSet name="Contributed by Mixins" id="contributed"/>
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
- </bs3:col>
- <bs3:col span="6">
- <cpt:fieldSet name="Description" id="description" >
- <cpt:action id="clearHints" position="PANEL" />
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="rebuildMetamodel" position="PANEL"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadJdoMetadata" position="PANEL_DROPDOWN"/>
- <cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
- <cpt:property id="description"/>
- </cpt:fieldSet>
- </bs3:col>
- </bs3:row>
- <bs3:row>
- <bs3:col span="12" unreferencedCollections="true"/>
- </bs3:row>
-
-</bs3:grid>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/WrapperCharacterJdoEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/WrapperCharacterJdoEntities.java
deleted file mode 100644
index ddb7c01..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/WrapperCharacterJdoEntities.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package demoapp.dom.types.isis.blobs.jdo;
-
-import java.util.List;
-import java.util.Optional;
-
-import javax.inject.Inject;
-
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.services.repository.RepositoryService;
-
-@Service
-public class IsisBlobJdoEntities {
-
- public Optional<IsisBlobJdo> find(final Character readOnlyProperty) {
- return repositoryService.firstMatch(IsisBlobJdo.class, x -> x.getReadOnlyProperty() == readOnlyProperty);
- }
-
- public List<IsisBlobJdo> all() {
- return repositoryService.allInstances(IsisBlobJdo.class);
- }
-
- @Inject
- RepositoryService repositoryService;
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/WrapperCharacterJdoSeedService.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/WrapperCharacterJdoSeedService.java
deleted file mode 100644
index cdd0cb3..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/WrapperCharacterJdoSeedService.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package demoapp.dom.types.isis.blobs.jdo;
-
-import java.util.stream.Stream;
-
-import javax.inject.Inject;
-
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.services.repository.RepositoryService;
-import org.apache.isis.core.runtime.events.app.AppLifecycleEvent;
-import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScript;
-import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
-
-@Service
-public class IsisBlobJdoSeedService {
-
- @EventListener(AppLifecycleEvent.class)
- public void onAppLifecycleEvent(AppLifecycleEvent event) {
-
- if (event.getEventType() == AppLifecycleEvent.EventType.appPostMetamodel) {
- fixtureScripts.run(new IsisBlobJdoEntityFixture());
- }
- }
-
- @Inject
- FixtureScripts fixtureScripts;
-
- static class IsisBlobJdoEntityFixture extends FixtureScript {
-
- @Override
- protected void execute(ExecutionContext executionContext) {
- Stream.of('a', 'b', 'c')
- .map(IsisBlobJdo::new)
- .forEach(repositoryService::persist);
- }
-
- @Inject
- RepositoryService repositoryService;
-
- }
-}
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
new file mode 100644
index 0000000..e986270
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/IsisBlobVm-description.adoc
@@ -0,0 +1,13 @@
+JAXB supports `Blob` out-of-the-box, so no special annotations are required.
+
+[source,java]
+----
+include::IsisBlobVm.java[tags=class]
+----
+<.> a no-arg constructor is required by JAXB
+<.> required property as defined to JAXB
+<.> directly editable property as defined to Apache Isis
+<.> optional property as defined to Apache Isis.
++
+This is the default for JAXB so no additional annotation required.
+
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/IsisBlobVm.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/IsisBlobVm.java
new file mode 100644
index 0000000..d7b3439
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/IsisBlobVm.java
@@ -0,0 +1,86 @@
+/*
+ * 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.blobs.vm;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Nature;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.value.Blob;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import demoapp.dom.types.isis.blobs.holder.IsisBlobHolder;
+
+//tag::class[]
+@XmlRootElement(name = "root")
+@XmlType
+@XmlAccessorType(XmlAccessType.FIELD)
+@DomainObject(
+ nature=Nature.VIEW_MODEL,
+ objectType = "demo.IsisBlobVm"
+)
+@lombok.NoArgsConstructor // <.>
+public class IsisBlobVm
+ implements HasAsciiDocDescription, IsisBlobHolder {
+
+//end::class[]
+ public IsisBlobVm(Blob initialValue) {
+ this.readOnlyProperty = initialValue;
+ this.readWriteProperty = initialValue;
+ }
+
+//tag::class[]
+ @Title(prepend = "Blob view model: ")
+ @MemberOrder(name = "read-only-properties", sequence = "1")
+ @XmlElement(required = true) // <.>
+ @Getter @Setter
+ private Blob readOnlyProperty;
+
+ @Property(editing = Editing.ENABLED) // <.>
+ @MemberOrder(name = "editable-properties", sequence = "1")
+ @XmlElement(required = true)
+ @Getter @Setter
+ private Blob readWriteProperty;
+
+ @Property(optionality = Optionality.OPTIONAL) // <.>
+ @MemberOrder(name = "optional-properties", sequence = "1")
+ @Getter @Setter
+ private Blob readOnlyOptionalProperty;
+
+ @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
+ @MemberOrder(name = "optional-properties", sequence = "2")
+ @Getter @Setter
+ private Blob readWriteOptionalProperty;
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/shorts/jdo/WrapperShortJdo.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/IsisBlobVm.layout.xml
similarity index 100%
copy from examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/shorts/jdo/WrapperShortJdo.layout.xml
copy to examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/IsisBlobVm.layout.xml
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/WrapperCharacterVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/WrapperCharacterVm-description.adoc
deleted file mode 100644
index e31cdb5..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/WrapperCharacterVm-description.adoc
+++ /dev/null
@@ -1,13 +0,0 @@
-JAXB supports `Character` out-of-the-box, so no special annotations are required.
-
-[source,java]
-----
-include::IsisBlobVm.java[tags=class]
-----
-<.> a no-arg constructor is required by JAXB
-<.> required property as defined to JAXB
-<.> directly editable property as defined to Apache Isis
-<.> optional property as defined to Apache Isis.
-+
-This is the default for JAXB so no additional annotation required.
-
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/WrapperCharacterVm.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/WrapperCharacterVm.java
deleted file mode 100644
index 98538fa..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/WrapperCharacterVm.java
+++ /dev/null
@@ -1,85 +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.blobs.vm;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Nature;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Title;
-import org.apache.isis.applib.annotation.Where;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.types.isis.blobs.holder.IsisBlobHolder;
-
-//tag::class[]
-@XmlRootElement(name = "root")
-@XmlType
-@XmlAccessorType(XmlAccessType.FIELD)
-@DomainObject(
- nature=Nature.VIEW_MODEL,
- objectType = "demo.IsisBlobVm"
-)
-@lombok.NoArgsConstructor // <.>
-public class IsisBlobVm
- implements HasAsciiDocDescription, IsisBlobHolder {
-
-//end::class[]
- public IsisBlobVm(Character initialValue) {
- this.readOnlyProperty = initialValue;
- this.readWriteProperty = initialValue;
- }
-
-//tag::class[]
- @Title(prepend = "Character (wrapper) view model: ")
- @MemberOrder(name = "read-only-properties", sequence = "1")
- @XmlElement(required = true) // <.>
- @Getter @Setter
- private Character readOnlyProperty;
-
- @Property(editing = Editing.ENABLED) // <.>
- @MemberOrder(name = "editable-properties", sequence = "1")
- @XmlElement(required = true)
- @Getter @Setter
- private Character readWriteProperty;
-
- @Property(optionality = Optionality.OPTIONAL) // <.>
- @MemberOrder(name = "optional-properties", sequence = "1")
- @Getter @Setter
- private Character readOnlyOptionalProperty;
-
- @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
- @MemberOrder(name = "optional-properties", sequence = "2")
- @Getter @Setter
- private Character readWriteOptionalProperty;
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/WrapperCharacterVm.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/WrapperCharacterVm.layout.xml
deleted file mode 100644
index 777ee39..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/vm/WrapperCharacterVm.layout.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<bs3:grid
- xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
- xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
- xmlns:cpt="http://isis.apache.org/applib/layout/component"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
- <bs3:row>
- <bs3:col span="10" unreferencedActions="true">
- <cpt:domainObject />
- <cpt:action id="actionReturning"/>
- <cpt:action id="actionReturningCollection"/>
- <cpt:action id="rebuildMetamodel"/>
- </bs3:col>
- <bs3:col span="2">
- <cpt:fieldSet name="" id="sources" />
- </bs3:col>
- </bs3:row>
-
- <bs3:row>
- <bs3:col span="6">
- <cpt:fieldSet name="Read Only Properties" id="read-only-properties"/>
- <cpt:fieldSet name="Editable Properties" id="editable-properties"/>
- <cpt:fieldSet name="Optional Properties" id="optional-properties"/>
- <cpt:fieldSet name="Label Positions" id="label-positions"/>
- <cpt:fieldSet name="Contributed by Mixins" id="contributed"/>
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
- </bs3:col>
- <bs3:col span="6">
- <cpt:fieldSet name="Description" id="description" >
- <cpt:action id="clearHints" position="PANEL" />
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="rebuildMetamodel" position="PANEL"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadJdoMetadata" position="PANEL_DROPDOWN"/>
- <cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
- <cpt:property id="description"/>
- </cpt:fieldSet>
- </bs3:col>
- </bs3:row>
- <bs3:row>
- <bs3:col span="12" unreferencedCollections="true"/>
- </bs3:row>
-
-</bs3:grid>
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
new file mode 100644
index 0000000..98c76b2
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/IsisClobs-description.adoc
@@ -0,0 +1,75 @@
+The framework has built-in support for all of the Wrapper data types, including `Clob`.
+
+From here you can:
+
+* navigate to an entity that uses the `Clob` datatype
+* open a view model that uses the `Clob` datatype
+
+Some properties on these domain objects are mandatory, some optional.
+
+== Common interface
+
+These objects both implement a common interface, `IsisClobHolder`:
+
+[source,java]
+----
+include::holder/IsisClobHolder.java[tags=class]
+----
+
+There is also an extension of this interface, `IsisClobHolder2`, with default methods demonstrating the use of label positions:
+
+[source,java]
+----
+include::holder/IsisClobHolder2.java[tags=class]
+----
+
+<.> The default methods have annotations that are automatically inherited.
+<.> Using `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
+
+
+== 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]
+----
+
+* 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]
+----
+
+== Mixin properties
+
+We also use the interface to contribute a mixin property:
+
+* the `mixinProperty` property:
++
+[source,java]
+----
+include::holder/IsisClobHolder_mixinProperty.java[tags=class]
+----
+
+
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/IsisClobs.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/IsisClobs.java
new file mode 100644
index 0000000..529bd23
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/IsisClobs.java
@@ -0,0 +1,81 @@
+/*
+ * 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.clobs;
+
+import java.util.List;
+
+import javax.inject.Inject;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Collection;
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.applib.annotation.Nature;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Clob;
+
+import lombok.extern.log4j.Log4j2;
+
+import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import demoapp.dom.types.Samples;
+import demoapp.dom.types.isis.clobs.jdo.IsisClobJdoEntities;
+import demoapp.dom.types.isis.clobs.jdo.IsisClobJdo;
+import demoapp.dom.types.isis.clobs.vm.IsisClobVm;
+
+@XmlRootElement(name = "Demo")
+@XmlType
+@XmlAccessorType(XmlAccessType.FIELD)
+@DomainObject(nature=Nature.VIEW_MODEL, objectType = "demo.IsisClobs", editing=Editing.ENABLED)
+@Log4j2
+public class IsisClobs implements HasAsciiDocDescription {
+
+ public String title() {
+ return "Clob data type";
+ }
+
+ @Action(semantics = SemanticsOf.SAFE)
+ @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
+ public IsisClobVm openViewModel(Clob initialValue) {
+ return new IsisClobVm(initialValue);
+ }
+ public Clob default0OpenViewModel() {
+ return samples.single();
+ }
+
+ @Collection
+ public List<IsisClobJdo> getEntities() {
+ return entities.all();
+ }
+
+ @Inject
+ @XmlTransient
+ IsisClobJdoEntities entities;
+
+ @Inject
+ @XmlTransient
+ Samples<Clob> samples;
+
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/longs/WrapperLongs.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/IsisClobs.layout.xml
similarity index 100%
copy from examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/longs/WrapperLongs.layout.xml
copy to examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/IsisClobs.layout.xml
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/IsisClobsSamples.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/IsisClobsSamples.java
new file mode 100644
index 0000000..fce73a6
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/IsisClobsSamples.java
@@ -0,0 +1,37 @@
+/*
+ * 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.clobs;
+
+import java.util.stream.Stream;
+
+import org.springframework.stereotype.Service;
+
+import org.apache.isis.applib.value.Clob;
+
+import demoapp.dom.types.Samples;
+
+@Service
+public class IsisClobsSamples implements Samples<Clob> {
+
+ @Override
+ public Stream<Clob> stream() {
+ return Stream.of();
+ }
+
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/IsisClobsStream.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/IsisClobsStream.java
deleted file mode 100644
index 3b1ef63..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/IsisClobsStream.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.clobs;
-
-import java.util.stream.Stream;
-
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.value.Clob;
-
-import demoapp.dom.types.Samples;
-
-@Service
-public class IsisClobsStream implements Samples<Clob> {
-
- @Override
- public Stream<Clob> stream() {
- return Stream.of(null);
- }
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/WrapperCharacters-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/WrapperCharacters-description.adoc
deleted file mode 100644
index 1e59b8d..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/WrapperCharacters-description.adoc
+++ /dev/null
@@ -1,75 +0,0 @@
-The framework has built-in support for all of the Wrapper data types, including `Character`.
-
-From here you can:
-
-* navigate to an entity that uses the `Character` datatype
-* open a view model that uses the `Character` datatype
-
-Some properties on these domain objects are mandatory, some optional.
-
-== Common interface
-
-These objects both implement a common interface, `IsisClobHolder`:
-
-[source,java]
-----
-include::holder/IsisClobHolder.java[tags=class]
-----
-
-There is also an extension of this interface, `IsisClobHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/IsisClobHolder2.java[tags=class]
-----
-
-<.> The default methods have annotations that are automatically inherited.
-<.> Using `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-
-
-== 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/IsisClobHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisClobHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* 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]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/IsisClobHolder_mixinProperty.java[tags=class]
-----
-
-
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/WrapperCharacters.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/WrapperCharacters.java
deleted file mode 100644
index 65a17a2..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/WrapperCharacters.java
+++ /dev/null
@@ -1,76 +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.clobs;
-
-import java.util.List;
-
-import javax.inject.Inject;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Collection;
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.Nature;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.extern.log4j.Log4j2;
-
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.types.isis.clobs.jdo.IsisClobJdoEntities;
-import demoapp.dom.types.isis.clobs.jdo.IsisClobJdo;
-import demoapp.dom.types.isis.clobs.vm.IsisClobVm;
-
-@XmlRootElement(name = "Demo")
-@XmlType
-@XmlAccessorType(XmlAccessType.FIELD)
-@DomainObject(nature=Nature.VIEW_MODEL, objectType = "demo.IsisClobs", editing=Editing.ENABLED)
-@Log4j2
-public class IsisClobs implements HasAsciiDocDescription {
-
- public String title() {
- return "Character (wrapper) data type";
- }
-
- @Action(semantics = SemanticsOf.SAFE)
- @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
- public IsisClobVm openViewModel(Character initialValue) {
- return new IsisClobVm(initialValue);
- }
- public Character default0OpenViewModel() {
- return 'a';
- }
-
- @Collection
- public List<IsisClobJdo> getEntities() {
- return entities.all();
- }
-
- @Inject
- @XmlTransient
- IsisClobJdoEntities entities;
-
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/WrapperCharacters.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/WrapperCharacters.layout.xml
deleted file mode 100644
index 55c5b87..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/WrapperCharacters.layout.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<bs3:grid
- xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
- xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
- xmlns:cpt="http://isis.apache.org/applib/layout/component"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
- <bs3:row>
- <bs3:col span="10" unreferencedActions="true">
- <cpt:domainObject />
- <cpt:action id="rebuildMetamodel"/>
- </bs3:col>
- <bs3:col span="2">
- <cpt:fieldSet name="" id="sources" />
- </bs3:col>
- </bs3:row>
-
- <bs3:row>
- <bs3:col span="6">
- <bs3:row>
- <bs3:col span="12">
- <cpt:collection id="entities"/>
- </bs3:col>
- <bs3:col span="12">
- <cpt:action id="openViewModel"/>
- </bs3:col>
- </bs3:row>
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
- </bs3:col>
- <bs3:col span="6">
- <cpt:fieldSet name="Description" id="description" >
- <cpt:action id="clearHints" position="PANEL" />
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="rebuildMetamodel" position="PANEL"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
- <cpt:property id="description"/>
- </cpt:fieldSet>
- </bs3:col>
- </bs3:row>
- <bs3:row>
- <bs3:col span="12" unreferencedCollections="true"/>
- </bs3:row>
-
-</bs3:grid>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder.java
new file mode 100644
index 0000000..a08709a
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder.java
@@ -0,0 +1,39 @@
+/*
+ * 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.clobs.holder;
+
+import org.apache.isis.applib.value.Clob;
+
+//tag::class[]
+public interface IsisClobHolder {
+
+ Clob getReadOnlyProperty();
+ void setReadOnlyProperty(Clob c);
+
+ Clob getReadWriteProperty();
+ void setReadWriteProperty(Clob c);
+
+ Clob getReadOnlyOptionalProperty();
+ void setReadOnlyOptionalProperty(Clob c);
+
+ Clob getReadWriteOptionalProperty();
+ void setReadWriteOptionalProperty(Clob c);
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder2.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder2.java
new file mode 100644
index 0000000..f9f7a95
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder2.java
@@ -0,0 +1,77 @@
+/*
+ * 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.clobs.holder;
+
+import org.apache.isis.applib.annotation.LabelPosition;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.value.Clob;
+
+//tag::class[]
+public interface IsisClobHolder2 extends IsisClobHolder {
+
+ @Property
+ @PropertyLayout( // <.>
+ labelPosition = LabelPosition.LEFT,
+ describedAs = "labelPosition=LEFT",
+ hidden = Where.ALL_TABLES
+ )
+ @MemberOrder(name = "label-positions", sequence = "1") // <.>
+ default Clob getReadOnlyPropertyDerivedLabelPositionLeft() {
+ return getReadOnlyProperty();
+ }
+
+ @Property
+ @PropertyLayout(
+ labelPosition = LabelPosition.TOP,
+ describedAs = "labelPosition=TOP",
+ hidden = Where.ALL_TABLES
+ )
+ @MemberOrder(name = "label-positions", sequence = "2")
+ default Clob getReadOnlyPropertyDerivedLabelPositionTop() {
+ return getReadOnlyProperty();
+ }
+
+ @Property
+ @PropertyLayout(
+ labelPosition = LabelPosition.RIGHT, // TODO: not honoured
+ describedAs = "labelPosition=RIGHT",
+ hidden = Where.ALL_TABLES
+ )
+ @MemberOrder(name = "label-positions", sequence = "3")
+ default Clob getReadOnlyPropertyDerivedLabelPositionRight() {
+ return getReadOnlyProperty();
+ }
+
+ @Property
+ @PropertyLayout(
+ labelPosition = LabelPosition.NONE,
+ describedAs = "labelPosition=NONE",
+ hidden = Where.ALL_TABLES
+ )
+ @MemberOrder(name = "label-positions", sequence = "4")
+ default Clob getReadOnlyPropertyDerivedLabelPositionNone() {
+ return getReadOnlyProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_actionReturning.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_actionReturning.java
new file mode 100644
index 0000000..5069007
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_actionReturning.java
@@ -0,0 +1,40 @@
+/*
+ * 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.clobs.holder;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Clob;
+
+import lombok.RequiredArgsConstructor;
+
+
+//tag::class[]
+@Action(semantics = SemanticsOf.SAFE)
+@RequiredArgsConstructor
+public class IsisClobHolder_actionReturning {
+
+ private final IsisClobHolder holder;
+
+ public Clob act() {
+ return holder.getReadOnlyProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_actionReturningCollection.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_actionReturningCollection.java
new file mode 100644
index 0000000..7e91427
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_actionReturningCollection.java
@@ -0,0 +1,53 @@
+/*
+ * 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.clobs.holder;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import javax.inject.Inject;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Clob;
+
+import lombok.RequiredArgsConstructor;
+import lombok.val;
+
+import demoapp.dom.types.Samples;
+
+
+//tag::class[]
+@Action(semantics = SemanticsOf.SAFE)
+@RequiredArgsConstructor
+public class IsisClobHolder_actionReturningCollection {
+
+ private final IsisClobHolder holder;
+
+ public Collection<Clob> act() {
+ return samples.stream()
+ .collect(Collectors.toList());
+ }
+
+ @Inject
+ Samples<Clob> samples;
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_mixinProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_mixinProperty.java
new file mode 100644
index 0000000..b2b746c
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_mixinProperty.java
@@ -0,0 +1,46 @@
+/*
+ * 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.clobs.holder;
+
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.value.Clob;
+
+import lombok.RequiredArgsConstructor;
+
+import demoapp.dom.types.primitive.chars.holder.PrimitiveCharHolder;
+
+
+//tag::class[]
+@Property()
+@PropertyLayout(hidden = Where.ALL_TABLES)
+@RequiredArgsConstructor
+public class IsisClobHolder_mixinProperty {
+
+ private final IsisClobHolder holder;
+
+ @MemberOrder(name = "contributed", sequence = "1")
+ public Clob prop() {
+ return holder.getReadOnlyProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_updateReadOnlyOptionalProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_updateReadOnlyOptionalProperty.java
new file mode 100644
index 0000000..fe7bfd4
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_updateReadOnlyOptionalProperty.java
@@ -0,0 +1,56 @@
+/*
+ * 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.clobs.holder;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Clob;
+
+import lombok.RequiredArgsConstructor;
+
+
+//tag::class[]
+@Action(
+ semantics = SemanticsOf.IDEMPOTENT,
+ associateWith = "readOnlyOptionalProperty",
+ associateWithSequence = "1"
+)
+@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update")
+@RequiredArgsConstructor
+public class IsisClobHolder_updateReadOnlyOptionalProperty {
+
+ private final IsisClobHolder holder;
+
+ public IsisClobHolder act(
+ @Parameter(optionality = Optionality.OPTIONAL) // <.>
+ Clob newValue
+ ) {
+ holder.setReadOnlyOptionalProperty(newValue);
+ return holder;
+ }
+ public Clob default0Act() {
+ return holder.getReadOnlyOptionalProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_updateReadOnlyProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_updateReadOnlyProperty.java
new file mode 100644
index 0000000..58e1b52
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_updateReadOnlyProperty.java
@@ -0,0 +1,51 @@
+/*
+ * 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.clobs.holder;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Clob;
+
+import lombok.RequiredArgsConstructor;
+
+
+//tag::class[]
+@Action(
+ semantics = SemanticsOf.IDEMPOTENT,
+ associateWith = "readOnlyProperty",
+ associateWithSequence = "1"
+)
+@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update")
+@RequiredArgsConstructor
+public class IsisClobHolder_updateReadOnlyProperty {
+
+ private final IsisClobHolder holder;
+
+ public IsisClobHolder act(Clob newValue) {
+ holder.setReadOnlyProperty(newValue);
+ return holder;
+ }
+ public Clob default0Act() {
+ return holder.getReadOnlyProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_updateReadOnlyPropertyWithChoices.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_updateReadOnlyPropertyWithChoices.java
new file mode 100644
index 0000000..01a42bd
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder_updateReadOnlyPropertyWithChoices.java
@@ -0,0 +1,65 @@
+/*
+ * 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.clobs.holder;
+
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import javax.inject.Inject;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Clob;
+
+import lombok.RequiredArgsConstructor;
+
+import demoapp.dom.types.Samples;
+
+
+//tag::class[]
+@Action(
+ semantics = SemanticsOf.IDEMPOTENT,
+ associateWith = "readOnlyProperty",
+ associateWithSequence = "2"
+)
+@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update with choices")
+@RequiredArgsConstructor
+public class IsisClobHolder_updateReadOnlyPropertyWithChoices {
+
+ private final IsisClobHolder holder;
+
+ public IsisClobHolder act(Clob newValue) {
+ holder.setReadOnlyProperty(newValue);
+ return holder;
+ }
+ public Clob default0Act() {
+ return holder.getReadOnlyProperty();
+ }
+ public List<Clob> choices0Act() {
+ return samples.stream()
+ .collect(Collectors.toList());
+ }
+
+ @Inject
+ Samples<Clob> samples;
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder.java
deleted file mode 100644
index db7eb1d..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder.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.clobs.holder;
-
-//tag::class[]
-public interface IsisClobHolder {
-
- Character getReadOnlyProperty();
- void setReadOnlyProperty(Character c);
-
- Character getReadWriteProperty();
- void setReadWriteProperty(Character c);
-
- Character getReadOnlyOptionalProperty();
- void setReadOnlyOptionalProperty(Character c);
-
- Character getReadWriteOptionalProperty();
- void setReadWriteOptionalProperty(Character c);
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder2.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder2.java
deleted file mode 100644
index 025760c..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder2.java
+++ /dev/null
@@ -1,76 +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.clobs.holder;
-
-import org.apache.isis.applib.annotation.LabelPosition;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Where;
-
-//tag::class[]
-public interface IsisClobHolder2 extends IsisClobHolder {
-
- @Property
- @PropertyLayout( // <.>
- labelPosition = LabelPosition.LEFT,
- describedAs = "labelPosition=LEFT",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "1") // <.>
- default Character getReadOnlyPropertyDerivedLabelPositionLeft() {
- return getReadOnlyProperty();
- }
-
- @Property
- @PropertyLayout(
- labelPosition = LabelPosition.TOP,
- describedAs = "labelPosition=TOP",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "2")
- default Character getReadOnlyPropertyDerivedLabelPositionTop() {
- return getReadOnlyProperty();
- }
-
- @Property
- @PropertyLayout(
- labelPosition = LabelPosition.RIGHT, // TODO: not honoured
- describedAs = "labelPosition=RIGHT",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "3")
- default Character getReadOnlyPropertyDerivedLabelPositionRight() {
- return getReadOnlyProperty();
- }
-
- @Property
- @PropertyLayout(
- labelPosition = LabelPosition.NONE,
- describedAs = "labelPosition=NONE",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "4")
- default Character getReadOnlyPropertyDerivedLabelPositionNone() {
- return getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_actionReturning.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_actionReturning.java
deleted file mode 100644
index 93d1a10..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_actionReturning.java
+++ /dev/null
@@ -1,39 +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.clobs.holder;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(semantics = SemanticsOf.SAFE)
-@RequiredArgsConstructor
-public class IsisClobHolder_actionReturning {
-
- private final IsisClobHolder holder;
-
- public Character act() {
- return holder.getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_actionReturningCollection.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_actionReturningCollection.java
deleted file mode 100644
index ea6789d..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_actionReturningCollection.java
+++ /dev/null
@@ -1,48 +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.clobs.holder;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.stream.Stream;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-import lombok.val;
-
-
-//tag::class[]
-@Action(semantics = SemanticsOf.SAFE)
-@RequiredArgsConstructor
-public class IsisClobHolder_actionReturningCollection {
-
- private final IsisClobHolder holder;
-
- public Collection<Character> act() {
- final Collection<Character> characters = new ArrayList<>();
- val initial = holder.getReadOnlyProperty();
- Stream.of(0, 1, 2, 3).forEach(x ->
- characters.add((char) (initial + x))
- );
- return characters;
- }
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_mixinProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_mixinProperty.java
deleted file mode 100644
index f67b89f..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_mixinProperty.java
+++ /dev/null
@@ -1,45 +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.clobs.holder;
-
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Where;
-
-import lombok.RequiredArgsConstructor;
-
-import demoapp.dom.types.primitive.chars.holder.PrimitiveCharHolder;
-
-
-//tag::class[]
-@Property()
-@PropertyLayout(hidden = Where.ALL_TABLES)
-@RequiredArgsConstructor
-public class IsisClobHolder_mixinProperty {
-
- private final IsisClobHolder holder;
-
- @MemberOrder(name = "contributed", sequence = "1")
- public Character prop() {
- return holder.getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_updateReadOnlyOptionalProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_updateReadOnlyOptionalProperty.java
deleted file mode 100644
index a3753ec..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_updateReadOnlyOptionalProperty.java
+++ /dev/null
@@ -1,55 +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.clobs.holder;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Parameter;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(
- semantics = SemanticsOf.IDEMPOTENT,
- associateWith = "readOnlyOptionalProperty",
- associateWithSequence = "1"
-)
-@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update")
-@RequiredArgsConstructor
-public class IsisClobHolder_updateReadOnlyOptionalProperty {
-
- private final IsisClobHolder holder;
-
- public IsisClobHolder act(
- @Parameter(optionality = Optionality.OPTIONAL) // <.>
- Character newValue
- ) {
- holder.setReadOnlyOptionalProperty(newValue);
- return holder;
- }
- public Character default0Act() {
- return holder.getReadOnlyOptionalProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_updateReadOnlyProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_updateReadOnlyProperty.java
deleted file mode 100644
index e31d2a3..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_updateReadOnlyProperty.java
+++ /dev/null
@@ -1,50 +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.clobs.holder;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(
- semantics = SemanticsOf.IDEMPOTENT,
- associateWith = "readOnlyProperty",
- associateWithSequence = "1"
-)
-@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update")
-@RequiredArgsConstructor
-public class IsisClobHolder_updateReadOnlyProperty {
-
- private final IsisClobHolder holder;
-
- public IsisClobHolder act(Character newValue) {
- holder.setReadOnlyProperty(newValue);
- return holder;
- }
- public Character default0Act() {
- return holder.getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_updateReadOnlyPropertyWithChoices.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_updateReadOnlyPropertyWithChoices.java
deleted file mode 100644
index 35103fa..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/WrapperCharacterHolder_updateReadOnlyPropertyWithChoices.java
+++ /dev/null
@@ -1,58 +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.clobs.holder;
-
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(
- semantics = SemanticsOf.IDEMPOTENT,
- associateWith = "readOnlyProperty",
- associateWithSequence = "2"
-)
-@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update with choices")
-@RequiredArgsConstructor
-public class IsisClobHolder_updateReadOnlyPropertyWithChoices {
-
- private final IsisClobHolder holder;
-
- public IsisClobHolder act(Character newValue) {
- holder.setReadOnlyProperty(newValue);
- return holder;
- }
- public Character default0Act() {
- return holder.getReadOnlyProperty();
- }
- public List<Character> choices0Act() {
- return Stream.of('a', 'b', 'c')
- .collect(Collectors.toList());
- }
-
-}
-//end::class[]
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
new file mode 100644
index 0000000..1bb415f
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdo-description.adoc
@@ -0,0 +1,15 @@
+JDO supports `Clob` out-of-the-box, so no special annotations are required.
+
+[source,java]
+----
+include::IsisClobJdo.java[tags=class]
+----
+<.> a no-arg constructor is introduced by JDO enhancer
+<.> required property as defined to JDO/DataNucleus.
++
+Apache Isis assumes properties are mandatory, so no additional annotation is required.
+<.> directly editable property as defined to Apache Isis
+<.> optional property as defined to Apache Isis
+<.> optional property as defined to JDO/DataNucleus
+
+
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdo.java
new file mode 100644
index 0000000..e34fc87
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdo.java
@@ -0,0 +1,84 @@
+/*
+ * 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.clobs.jdo;
+
+import javax.jdo.annotations.Column;
+import javax.jdo.annotations.DatastoreIdentity;
+import javax.jdo.annotations.IdGeneratorStrategy;
+import javax.jdo.annotations.IdentityType;
+import javax.jdo.annotations.PersistenceCapable;
+
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.value.Clob;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import demoapp.dom.types.isis.clobs.holder.IsisClobHolder;
+
+//tag::class[]
+@PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
+@DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
+@DomainObject(
+ objectType = "demo.IsisClobJdo"
+)
+public class IsisClobJdo // <.>
+ implements HasAsciiDocDescription, IsisClobHolder {
+
+//end::class[]
+ public IsisClobJdo(Clob initialValue) {
+ this.readOnlyProperty = initialValue;
+ this.readWriteProperty = initialValue;
+ }
+
+//tag::class[]
+ @Title(prepend = "Clob JDO entity: ")
+ @MemberOrder(name = "read-only-properties", sequence = "1")
+ @Column(allowsNull = "false") // <.>
+ @Getter @Setter
+ private Clob readOnlyProperty;
+
+ @Property(editing = Editing.ENABLED) // <.>
+ @MemberOrder(name = "editable-properties", sequence = "1")
+ @Column(allowsNull = "false")
+ @Getter @Setter
+ private Clob readWriteProperty;
+
+ @Property(optionality = Optionality.OPTIONAL) // <.>
+ @MemberOrder(name = "optional-properties", sequence = "1")
+ @Column(allowsNull = "true") // <.>
+ @Getter @Setter
+ private Clob readOnlyOptionalProperty;
+
+ @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
+ @MemberOrder(name = "optional-properties", sequence = "2")
+ @Column(allowsNull = "true")
+ @Getter @Setter
+ private Clob readWriteOptionalProperty;
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/longs/vm/WrapperLongVm.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdo.layout.xml
similarity index 100%
copy from examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/longs/vm/WrapperLongVm.layout.xml
copy to examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdo.layout.xml
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdoEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdoEntities.java
new file mode 100644
index 0000000..d970bda
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdoEntities.java
@@ -0,0 +1,27 @@
+package demoapp.dom.types.isis.clobs.jdo;
+
+import java.util.List;
+import java.util.Optional;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Service;
+
+import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.applib.value.Clob;
+
+@Service
+public class IsisClobJdoEntities {
+
+ public Optional<IsisClobJdo> find(final Clob readOnlyProperty) {
+ return repositoryService.firstMatch(IsisClobJdo.class, x -> x.getReadOnlyProperty() == readOnlyProperty);
+ }
+
+ public List<IsisClobJdo> all() {
+ return repositoryService.allInstances(IsisClobJdo.class);
+ }
+
+ @Inject
+ RepositoryService repositoryService;
+
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdoSeedService.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdoSeedService.java
new file mode 100644
index 0000000..b3b643e
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdoSeedService.java
@@ -0,0 +1,47 @@
+package demoapp.dom.types.isis.clobs.jdo;
+
+import java.util.stream.Stream;
+
+import javax.inject.Inject;
+
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
+
+import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.applib.value.Clob;
+import org.apache.isis.core.runtime.events.app.AppLifecycleEvent;
+import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScript;
+import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
+
+import demoapp.dom.types.Samples;
+
+@Service
+public class IsisClobJdoSeedService {
+
+ @EventListener(AppLifecycleEvent.class)
+ public void onAppLifecycleEvent(AppLifecycleEvent event) {
+
+ if (event.getEventType() == AppLifecycleEvent.EventType.appPostMetamodel) {
+ fixtureScripts.run(new IsisClobJdoEntityFixture());
+ }
+ }
+
+ @Inject
+ FixtureScripts fixtureScripts;
+
+ static class IsisClobJdoEntityFixture extends FixtureScript {
+
+ @Override
+ protected void execute(ExecutionContext executionContext) {
+ samples.stream()
+ .map(IsisClobJdo::new)
+ .forEach(repositoryService::persist);
+ }
+
+ @Inject
+ RepositoryService repositoryService;
+
+ @Inject
+ Samples<Clob> samples;
+ }
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/WrapperCharacterJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/WrapperCharacterJdo-description.adoc
deleted file mode 100644
index 3ca7700..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/WrapperCharacterJdo-description.adoc
+++ /dev/null
@@ -1,15 +0,0 @@
-JDO supports `Character` out-of-the-box, so no special annotations are required.
-
-[source,java]
-----
-include::IsisClobJdo.java[tags=class]
-----
-<.> a no-arg constructor is introduced by JDO enhancer
-<.> required property as defined to JDO/DataNucleus.
-+
-Apache Isis assumes properties are mandatory, so no additional annotation is required.
-<.> directly editable property as defined to Apache Isis
-<.> optional property as defined to Apache Isis
-<.> optional property as defined to JDO/DataNucleus
-
-
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/WrapperCharacterJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/WrapperCharacterJdo.java
deleted file mode 100644
index 975e06c..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/WrapperCharacterJdo.java
+++ /dev/null
@@ -1,83 +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.clobs.jdo;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.DatastoreIdentity;
-import javax.jdo.annotations.IdGeneratorStrategy;
-import javax.jdo.annotations.IdentityType;
-import javax.jdo.annotations.PersistenceCapable;
-
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Title;
-import org.apache.isis.applib.annotation.Where;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.types.isis.clobs.holder.IsisClobHolder;
-
-//tag::class[]
-@PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
-@DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
-@DomainObject(
- objectType = "demo.IsisClobJdo"
-)
-public class IsisClobJdo // <.>
- implements HasAsciiDocDescription, IsisClobHolder {
-
-//end::class[]
- public IsisClobJdo(Character initialValue) {
- this.readOnlyProperty = initialValue;
- this.readWriteProperty = initialValue;
- }
-
-//tag::class[]
- @Title(prepend = "Character (wrapper) JDO entity: ")
- @MemberOrder(name = "read-only-properties", sequence = "1")
- @Column(allowsNull = "false") // <.>
- @Getter @Setter
- private Character readOnlyProperty;
-
- @Property(editing = Editing.ENABLED) // <.>
- @MemberOrder(name = "editable-properties", sequence = "1")
- @Column(allowsNull = "false")
- @Getter @Setter
- private Character readWriteProperty;
-
- @Property(optionality = Optionality.OPTIONAL) // <.>
- @MemberOrder(name = "optional-properties", sequence = "1")
- @Column(allowsNull = "true") // <.>
- @Getter @Setter
- private Character readOnlyOptionalProperty;
-
- @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
- @MemberOrder(name = "optional-properties", sequence = "2")
- @Column(allowsNull = "true")
- @Getter @Setter
- private Character readWriteOptionalProperty;
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/WrapperCharacterJdo.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/WrapperCharacterJdo.layout.xml
deleted file mode 100644
index 777ee39..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/WrapperCharacterJdo.layout.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<bs3:grid
- xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
- xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
- xmlns:cpt="http://isis.apache.org/applib/layout/component"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
- <bs3:row>
- <bs3:col span="10" unreferencedActions="true">
- <cpt:domainObject />
- <cpt:action id="actionReturning"/>
- <cpt:action id="actionReturningCollection"/>
- <cpt:action id="rebuildMetamodel"/>
- </bs3:col>
- <bs3:col span="2">
- <cpt:fieldSet name="" id="sources" />
- </bs3:col>
- </bs3:row>
-
- <bs3:row>
- <bs3:col span="6">
- <cpt:fieldSet name="Read Only Properties" id="read-only-properties"/>
- <cpt:fieldSet name="Editable Properties" id="editable-properties"/>
- <cpt:fieldSet name="Optional Properties" id="optional-properties"/>
- <cpt:fieldSet name="Label Positions" id="label-positions"/>
- <cpt:fieldSet name="Contributed by Mixins" id="contributed"/>
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
- </bs3:col>
- <bs3:col span="6">
- <cpt:fieldSet name="Description" id="description" >
- <cpt:action id="clearHints" position="PANEL" />
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="rebuildMetamodel" position="PANEL"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadJdoMetadata" position="PANEL_DROPDOWN"/>
- <cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
- <cpt:property id="description"/>
- </cpt:fieldSet>
- </bs3:col>
- </bs3:row>
- <bs3:row>
- <bs3:col span="12" unreferencedCollections="true"/>
- </bs3:row>
-
-</bs3:grid>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/WrapperCharacterJdoEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/WrapperCharacterJdoEntities.java
deleted file mode 100644
index ca5a605..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/WrapperCharacterJdoEntities.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package demoapp.dom.types.isis.clobs.jdo;
-
-import java.util.List;
-import java.util.Optional;
-
-import javax.inject.Inject;
-
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.services.repository.RepositoryService;
-
-@Service
-public class IsisClobJdoEntities {
-
- public Optional<IsisClobJdo> find(final Character readOnlyProperty) {
- return repositoryService.firstMatch(IsisClobJdo.class, x -> x.getReadOnlyProperty() == readOnlyProperty);
- }
-
- public List<IsisClobJdo> all() {
- return repositoryService.allInstances(IsisClobJdo.class);
- }
-
- @Inject
- RepositoryService repositoryService;
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/WrapperCharacterJdoSeedService.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/WrapperCharacterJdoSeedService.java
deleted file mode 100644
index afbdf70..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/WrapperCharacterJdoSeedService.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package demoapp.dom.types.isis.clobs.jdo;
-
-import java.util.stream.Stream;
-
-import javax.inject.Inject;
-
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.services.repository.RepositoryService;
-import org.apache.isis.core.runtime.events.app.AppLifecycleEvent;
-import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScript;
-import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
-
-@Service
-public class IsisClobJdoSeedService {
-
- @EventListener(AppLifecycleEvent.class)
- public void onAppLifecycleEvent(AppLifecycleEvent event) {
-
- if (event.getEventType() == AppLifecycleEvent.EventType.appPostMetamodel) {
- fixtureScripts.run(new IsisClobJdoEntityFixture());
- }
- }
-
- @Inject
- FixtureScripts fixtureScripts;
-
- static class IsisClobJdoEntityFixture extends FixtureScript {
-
- @Override
- protected void execute(ExecutionContext executionContext) {
- Stream.of('a', 'b', 'c')
- .map(IsisClobJdo::new)
- .forEach(repositoryService::persist);
- }
-
- @Inject
- RepositoryService repositoryService;
-
- }
-}
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
new file mode 100644
index 0000000..2e0aca0
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/IsisClobVm-description.adoc
@@ -0,0 +1,13 @@
+JAXB supports `Clob` out-of-the-box, so no special annotations are required.
+
+[source,java]
+----
+include::IsisClobVm.java[tags=class]
+----
+<.> a no-arg constructor is required by JAXB
+<.> required property as defined to JAXB
+<.> directly editable property as defined to Apache Isis
+<.> optional property as defined to Apache Isis.
++
+This is the default for JAXB so no additional annotation required.
+
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/IsisClobVm.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/IsisClobVm.java
new file mode 100644
index 0000000..b17d9c7
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/IsisClobVm.java
@@ -0,0 +1,86 @@
+/*
+ * 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.clobs.vm;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Nature;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.value.Clob;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import demoapp.dom.types.isis.clobs.holder.IsisClobHolder;
+
+//tag::class[]
+@XmlRootElement(name = "root")
+@XmlType
+@XmlAccessorType(XmlAccessType.FIELD)
+@DomainObject(
+ nature=Nature.VIEW_MODEL,
+ objectType = "demo.IsisClobVm"
+)
+@lombok.NoArgsConstructor // <.>
+public class IsisClobVm
+ implements HasAsciiDocDescription, IsisClobHolder {
+
+//end::class[]
+ public IsisClobVm(Clob initialValue) {
+ this.readOnlyProperty = initialValue;
+ this.readWriteProperty = initialValue;
+ }
+
+//tag::class[]
+ @Title(prepend = "Clob view model: ")
+ @MemberOrder(name = "read-only-properties", sequence = "1")
+ @XmlElement(required = true) // <.>
+ @Getter @Setter
+ private Clob readOnlyProperty;
+
+ @Property(editing = Editing.ENABLED) // <.>
+ @MemberOrder(name = "editable-properties", sequence = "1")
+ @XmlElement(required = true)
+ @Getter @Setter
+ private Clob readWriteProperty;
+
+ @Property(optionality = Optionality.OPTIONAL) // <.>
+ @MemberOrder(name = "optional-properties", sequence = "1")
+ @Getter @Setter
+ private Clob readOnlyOptionalProperty;
+
+ @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
+ @MemberOrder(name = "optional-properties", sequence = "2")
+ @Getter @Setter
+ private Clob readWriteOptionalProperty;
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/longs/jdo/WrapperLongJdo.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/IsisClobVm.layout.xml
similarity index 100%
copy from examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/longs/jdo/WrapperLongJdo.layout.xml
copy to examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/IsisClobVm.layout.xml
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/WrapperCharacterVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/WrapperCharacterVm-description.adoc
deleted file mode 100644
index 64bdddc..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/WrapperCharacterVm-description.adoc
+++ /dev/null
@@ -1,13 +0,0 @@
-JAXB supports `Character` out-of-the-box, so no special annotations are required.
-
-[source,java]
-----
-include::IsisClobVm.java[tags=class]
-----
-<.> a no-arg constructor is required by JAXB
-<.> required property as defined to JAXB
-<.> directly editable property as defined to Apache Isis
-<.> optional property as defined to Apache Isis.
-+
-This is the default for JAXB so no additional annotation required.
-
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/WrapperCharacterVm.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/WrapperCharacterVm.java
deleted file mode 100644
index e710c47..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/WrapperCharacterVm.java
+++ /dev/null
@@ -1,85 +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.clobs.vm;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Nature;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Title;
-import org.apache.isis.applib.annotation.Where;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.types.isis.clobs.holder.IsisClobHolder;
-
-//tag::class[]
-@XmlRootElement(name = "root")
-@XmlType
-@XmlAccessorType(XmlAccessType.FIELD)
-@DomainObject(
- nature=Nature.VIEW_MODEL,
- objectType = "demo.IsisClobVm"
-)
-@lombok.NoArgsConstructor // <.>
-public class IsisClobVm
- implements HasAsciiDocDescription, IsisClobHolder {
-
-//end::class[]
- public IsisClobVm(Character initialValue) {
- this.readOnlyProperty = initialValue;
- this.readWriteProperty = initialValue;
- }
-
-//tag::class[]
- @Title(prepend = "Character (wrapper) view model: ")
- @MemberOrder(name = "read-only-properties", sequence = "1")
- @XmlElement(required = true) // <.>
- @Getter @Setter
- private Character readOnlyProperty;
-
- @Property(editing = Editing.ENABLED) // <.>
- @MemberOrder(name = "editable-properties", sequence = "1")
- @XmlElement(required = true)
- @Getter @Setter
- private Character readWriteProperty;
-
- @Property(optionality = Optionality.OPTIONAL) // <.>
- @MemberOrder(name = "optional-properties", sequence = "1")
- @Getter @Setter
- private Character readOnlyOptionalProperty;
-
- @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
- @MemberOrder(name = "optional-properties", sequence = "2")
- @Getter @Setter
- private Character readWriteOptionalProperty;
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/WrapperCharacterVm.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/WrapperCharacterVm.layout.xml
deleted file mode 100644
index 777ee39..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/vm/WrapperCharacterVm.layout.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<bs3:grid
- xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
- xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
- xmlns:cpt="http://isis.apache.org/applib/layout/component"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
- <bs3:row>
- <bs3:col span="10" unreferencedActions="true">
- <cpt:domainObject />
- <cpt:action id="actionReturning"/>
- <cpt:action id="actionReturningCollection"/>
- <cpt:action id="rebuildMetamodel"/>
- </bs3:col>
- <bs3:col span="2">
- <cpt:fieldSet name="" id="sources" />
- </bs3:col>
- </bs3:row>
-
- <bs3:row>
- <bs3:col span="6">
- <cpt:fieldSet name="Read Only Properties" id="read-only-properties"/>
- <cpt:fieldSet name="Editable Properties" id="editable-properties"/>
- <cpt:fieldSet name="Optional Properties" id="optional-properties"/>
- <cpt:fieldSet name="Label Positions" id="label-positions"/>
- <cpt:fieldSet name="Contributed by Mixins" id="contributed"/>
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
- </bs3:col>
- <bs3:col span="6">
- <cpt:fieldSet name="Description" id="description" >
- <cpt:action id="clearHints" position="PANEL" />
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="rebuildMetamodel" position="PANEL"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadJdoMetadata" position="PANEL_DROPDOWN"/>
- <cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
- <cpt:property id="description"/>
- </cpt:fieldSet>
- </bs3:col>
- </bs3:row>
- <bs3:row>
- <bs3:col span="12" unreferencedCollections="true"/>
- </bs3:row>
-
-</bs3:grid>
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
new file mode 100644
index 0000000..ab5f54f
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/IsisImages-description.adoc
@@ -0,0 +1,75 @@
+The framework has built-in support for all of the Wrapper data types, including `Image`.
+
+From here you can:
+
+* navigate to an entity that uses the `Image` datatype
+* open a view model that uses the `Image` datatype
+
+Some properties on these domain objects are mandatory, some optional.
+
+== Common interface
+
+These objects both implement a common interface, `IsisImageHolder`:
+
+[source,java]
+----
+include::holder/IsisImageHolder.java[tags=class]
+----
+
+There is also an extension of this interface, `IsisImageHolder2`, with default methods demonstrating the use of label positions:
+
+[source,java]
+----
+include::holder/IsisImageHolder2.java[tags=class]
+----
+
+<.> The default methods have annotations that are automatically inherited.
+<.> Using `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
+
+
+== 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]
+----
+
+* 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]
+----
+
+== Mixin properties
+
+We also use the interface to contribute a mixin property:
+
+* the `mixinProperty` property:
++
+[source,java]
+----
+include::holder/IsisImageHolder_mixinProperty.java[tags=class]
+----
+
+
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/IsisImages.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/IsisImages.java
new file mode 100644
index 0000000..d227605
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/IsisImages.java
@@ -0,0 +1,81 @@
+/*
+ * 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.images;
+
+import java.util.List;
+
+import javax.inject.Inject;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Collection;
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.applib.annotation.Nature;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Image;
+
+import lombok.extern.log4j.Log4j2;
+
+import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import demoapp.dom.types.Samples;
+import demoapp.dom.types.isis.images.jdo.IsisImageJdoEntities;
+import demoapp.dom.types.isis.images.jdo.IsisImageJdo;
+import demoapp.dom.types.isis.images.vm.IsisImageVm;
+
+@XmlRootElement(name = "Demo")
+@XmlType
+@XmlAccessorType(XmlAccessType.FIELD)
+@DomainObject(nature=Nature.VIEW_MODEL, objectType = "demo.IsisImages", editing=Editing.ENABLED)
+@Log4j2
+public class IsisImages implements HasAsciiDocDescription {
+
+ public String title() {
+ return "Image data type";
+ }
+
+ @Action(semantics = SemanticsOf.SAFE)
+ @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
+ public IsisImageVm openViewModel(Image initialValue) {
+ return new IsisImageVm(initialValue);
+ }
+ public Image default0OpenViewModel() {
+ return samples.single();
+ }
+
+ @Collection
+ public List<IsisImageJdo> getEntities() {
+ return entities.all();
+ }
+
+ @Inject
+ @XmlTransient
+ IsisImageJdoEntities entities;
+
+ @Inject
+ @XmlTransient
+ Samples<Image> samples;
+
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/integers/WrapperIntegers.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/IsisImages.layout.xml
similarity index 100%
copy from examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/integers/WrapperIntegers.layout.xml
copy to examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/IsisImages.layout.xml
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/IsisImagesSamples.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/IsisImagesSamples.java
new file mode 100644
index 0000000..3fe6665
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/IsisImagesSamples.java
@@ -0,0 +1,37 @@
+/*
+ * 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.images;
+
+import java.util.stream.Stream;
+
+import org.springframework.stereotype.Service;
+
+import org.apache.isis.applib.value.Image;
+
+import demoapp.dom.types.Samples;
+
+@Service
+public class IsisImagesSamples implements Samples<Image> {
+
+ @Override
+ public Stream<Image> stream() {
+ return Stream.of();
+ }
+
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/IsisImagesStream.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/IsisImagesStream.java
deleted file mode 100644
index 04e071c..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/IsisImagesStream.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.images;
-
-import java.util.stream.Stream;
-
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.value.Image;
-
-import demoapp.dom.types.Samples;
-
-@Service
-public class IsisImagesStream implements Samples<Image> {
-
- @Override
- public Stream<Image> stream() {
- return Stream.of(null);
- }
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/WrapperCharacters-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/WrapperCharacters-description.adoc
deleted file mode 100644
index aaa93e8..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/WrapperCharacters-description.adoc
+++ /dev/null
@@ -1,75 +0,0 @@
-The framework has built-in support for all of the Wrapper data types, including `Character`.
-
-From here you can:
-
-* navigate to an entity that uses the `Character` datatype
-* open a view model that uses the `Character` datatype
-
-Some properties on these domain objects are mandatory, some optional.
-
-== Common interface
-
-These objects both implement a common interface, `IsisImageHolder`:
-
-[source,java]
-----
-include::holder/IsisImageHolder.java[tags=class]
-----
-
-There is also an extension of this interface, `IsisImageHolder2`, with default methods demonstrating the use of label positions:
-
-[source,java]
-----
-include::holder/IsisImageHolder2.java[tags=class]
-----
-
-<.> The default methods have annotations that are automatically inherited.
-<.> Using `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-
-
-== 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/IsisImageHolder_updateReadOnlyProperty.java[tags=class]
-----
-
-* the `updateReadOnlyOptionalProperty` action is:
-+
-[source,java]
-----
-include::holder/IsisImageHolder_updateReadOnlyOptionalProperty.java[tags=class]
-----
-
-* 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]
-----
-
-== Mixin properties
-
-We also use the interface to contribute a mixin property:
-
-* the `mixinProperty` property:
-+
-[source,java]
-----
-include::holder/IsisImageHolder_mixinProperty.java[tags=class]
-----
-
-
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/WrapperCharacters.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/WrapperCharacters.java
deleted file mode 100644
index ca4633e..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/WrapperCharacters.java
+++ /dev/null
@@ -1,76 +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.images;
-
-import java.util.List;
-
-import javax.inject.Inject;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Collection;
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.Nature;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.extern.log4j.Log4j2;
-
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.types.isis.images.jdo.IsisImageJdoEntities;
-import demoapp.dom.types.isis.images.jdo.IsisImageJdo;
-import demoapp.dom.types.isis.images.vm.IsisImageVm;
-
-@XmlRootElement(name = "Demo")
-@XmlType
-@XmlAccessorType(XmlAccessType.FIELD)
-@DomainObject(nature=Nature.VIEW_MODEL, objectType = "demo.IsisImages", editing=Editing.ENABLED)
-@Log4j2
-public class IsisImages implements HasAsciiDocDescription {
-
- public String title() {
- return "Character (wrapper) data type";
- }
-
- @Action(semantics = SemanticsOf.SAFE)
- @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
- public IsisImageVm openViewModel(Character initialValue) {
- return new IsisImageVm(initialValue);
- }
- public Character default0OpenViewModel() {
- return 'a';
- }
-
- @Collection
- public List<IsisImageJdo> getEntities() {
- return entities.all();
- }
-
- @Inject
- @XmlTransient
- IsisImageJdoEntities entities;
-
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/WrapperCharacters.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/WrapperCharacters.layout.xml
deleted file mode 100644
index 55c5b87..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/WrapperCharacters.layout.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<bs3:grid
- xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
- xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
- xmlns:cpt="http://isis.apache.org/applib/layout/component"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
- <bs3:row>
- <bs3:col span="10" unreferencedActions="true">
- <cpt:domainObject />
- <cpt:action id="rebuildMetamodel"/>
- </bs3:col>
- <bs3:col span="2">
- <cpt:fieldSet name="" id="sources" />
- </bs3:col>
- </bs3:row>
-
- <bs3:row>
- <bs3:col span="6">
- <bs3:row>
- <bs3:col span="12">
- <cpt:collection id="entities"/>
- </bs3:col>
- <bs3:col span="12">
- <cpt:action id="openViewModel"/>
- </bs3:col>
- </bs3:row>
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
- </bs3:col>
- <bs3:col span="6">
- <cpt:fieldSet name="Description" id="description" >
- <cpt:action id="clearHints" position="PANEL" />
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="rebuildMetamodel" position="PANEL"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
- <cpt:property id="description"/>
- </cpt:fieldSet>
- </bs3:col>
- </bs3:row>
- <bs3:row>
- <bs3:col span="12" unreferencedCollections="true"/>
- </bs3:row>
-
-</bs3:grid>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder.java
new file mode 100644
index 0000000..666a1d1
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder.java
@@ -0,0 +1,39 @@
+/*
+ * 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.images.holder;
+
+import org.apache.isis.applib.value.Image;
+
+//tag::class[]
+public interface IsisImageHolder {
+
+ Image getReadOnlyProperty();
+ void setReadOnlyProperty(Image c);
+
+ Image getReadWriteProperty();
+ void setReadWriteProperty(Image c);
+
+ Image getReadOnlyOptionalProperty();
+ void setReadOnlyOptionalProperty(Image c);
+
+ Image getReadWriteOptionalProperty();
+ void setReadWriteOptionalProperty(Image c);
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder2.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder2.java
new file mode 100644
index 0000000..ac90385
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder2.java
@@ -0,0 +1,77 @@
+/*
+ * 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.images.holder;
+
+import org.apache.isis.applib.annotation.LabelPosition;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.value.Image;
+
+//tag::class[]
+public interface IsisImageHolder2 extends IsisImageHolder {
+
+ @Property
+ @PropertyLayout( // <.>
+ labelPosition = LabelPosition.LEFT,
+ describedAs = "labelPosition=LEFT",
+ hidden = Where.ALL_TABLES
+ )
+ @MemberOrder(name = "label-positions", sequence = "1") // <.>
+ default Image getReadOnlyPropertyDerivedLabelPositionLeft() {
+ return getReadOnlyProperty();
+ }
+
+ @Property
+ @PropertyLayout(
+ labelPosition = LabelPosition.TOP,
+ describedAs = "labelPosition=TOP",
+ hidden = Where.ALL_TABLES
+ )
+ @MemberOrder(name = "label-positions", sequence = "2")
+ default Image getReadOnlyPropertyDerivedLabelPositionTop() {
+ return getReadOnlyProperty();
+ }
+
+ @Property
+ @PropertyLayout(
+ labelPosition = LabelPosition.RIGHT, // TODO: not honoured
+ describedAs = "labelPosition=RIGHT",
+ hidden = Where.ALL_TABLES
+ )
+ @MemberOrder(name = "label-positions", sequence = "3")
+ default Image getReadOnlyPropertyDerivedLabelPositionRight() {
+ return getReadOnlyProperty();
+ }
+
+ @Property
+ @PropertyLayout(
+ labelPosition = LabelPosition.NONE,
+ describedAs = "labelPosition=NONE",
+ hidden = Where.ALL_TABLES
+ )
+ @MemberOrder(name = "label-positions", sequence = "4")
+ default Image getReadOnlyPropertyDerivedLabelPositionNone() {
+ return getReadOnlyProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_actionReturning.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_actionReturning.java
new file mode 100644
index 0000000..302a174
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_actionReturning.java
@@ -0,0 +1,40 @@
+/*
+ * 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.images.holder;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Image;
+
+import lombok.RequiredArgsConstructor;
+
+
+//tag::class[]
+@Action(semantics = SemanticsOf.SAFE)
+@RequiredArgsConstructor
+public class IsisImageHolder_actionReturning {
+
+ private final IsisImageHolder holder;
+
+ public Image act() {
+ return holder.getReadOnlyProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_actionReturningCollection.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_actionReturningCollection.java
new file mode 100644
index 0000000..d58dfea
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_actionReturningCollection.java
@@ -0,0 +1,53 @@
+/*
+ * 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.images.holder;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import javax.inject.Inject;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Image;
+
+import lombok.RequiredArgsConstructor;
+import lombok.val;
+
+import demoapp.dom.types.Samples;
+
+
+//tag::class[]
+@Action(semantics = SemanticsOf.SAFE)
+@RequiredArgsConstructor
+public class IsisImageHolder_actionReturningCollection {
+
+ private final IsisImageHolder holder;
+
+ public Collection<Image> act() {
+ return samples.stream()
+ .collect(Collectors.toList());
+ }
+
+ @Inject
+ Samples<Image> samples;
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_mixinProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_mixinProperty.java
new file mode 100644
index 0000000..c4daac8
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_mixinProperty.java
@@ -0,0 +1,46 @@
+/*
+ * 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.images.holder;
+
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.value.Image;
+
+import lombok.RequiredArgsConstructor;
+
+import demoapp.dom.types.primitive.chars.holder.PrimitiveCharHolder;
+
+
+//tag::class[]
+@Property()
+@PropertyLayout(hidden = Where.ALL_TABLES)
+@RequiredArgsConstructor
+public class IsisImageHolder_mixinProperty {
+
+ private final IsisImageHolder holder;
+
+ @MemberOrder(name = "contributed", sequence = "1")
+ public Image prop() {
+ return holder.getReadOnlyProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_updateReadOnlyOptionalProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_updateReadOnlyOptionalProperty.java
new file mode 100644
index 0000000..fb94a6d
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_updateReadOnlyOptionalProperty.java
@@ -0,0 +1,56 @@
+/*
+ * 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.images.holder;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Image;
+
+import lombok.RequiredArgsConstructor;
+
+
+//tag::class[]
+@Action(
+ semantics = SemanticsOf.IDEMPOTENT,
+ associateWith = "readOnlyOptionalProperty",
+ associateWithSequence = "1"
+)
+@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update")
+@RequiredArgsConstructor
+public class IsisImageHolder_updateReadOnlyOptionalProperty {
+
+ private final IsisImageHolder holder;
+
+ public IsisImageHolder act(
+ @Parameter(optionality = Optionality.OPTIONAL) // <.>
+ Image newValue
+ ) {
+ holder.setReadOnlyOptionalProperty(newValue);
+ return holder;
+ }
+ public Image default0Act() {
+ return holder.getReadOnlyOptionalProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_updateReadOnlyProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_updateReadOnlyProperty.java
new file mode 100644
index 0000000..5b72cf0
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_updateReadOnlyProperty.java
@@ -0,0 +1,51 @@
+/*
+ * 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.images.holder;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Image;
+
+import lombok.RequiredArgsConstructor;
+
+
+//tag::class[]
+@Action(
+ semantics = SemanticsOf.IDEMPOTENT,
+ associateWith = "readOnlyProperty",
+ associateWithSequence = "1"
+)
+@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update")
+@RequiredArgsConstructor
+public class IsisImageHolder_updateReadOnlyProperty {
+
+ private final IsisImageHolder holder;
+
+ public IsisImageHolder act(Image newValue) {
+ holder.setReadOnlyProperty(newValue);
+ return holder;
+ }
+ public Image default0Act() {
+ return holder.getReadOnlyProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_updateReadOnlyPropertyWithChoices.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_updateReadOnlyPropertyWithChoices.java
new file mode 100644
index 0000000..32ac417
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/IsisImageHolder_updateReadOnlyPropertyWithChoices.java
@@ -0,0 +1,65 @@
+/*
+ * 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.images.holder;
+
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import javax.inject.Inject;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.Image;
+
+import lombok.RequiredArgsConstructor;
+
+import demoapp.dom.types.Samples;
+
+
+//tag::class[]
+@Action(
+ semantics = SemanticsOf.IDEMPOTENT,
+ associateWith = "readOnlyProperty",
+ associateWithSequence = "2"
+)
+@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update with choices")
+@RequiredArgsConstructor
+public class IsisImageHolder_updateReadOnlyPropertyWithChoices {
+
+ private final IsisImageHolder holder;
+
+ public IsisImageHolder act(Image newValue) {
+ holder.setReadOnlyProperty(newValue);
+ return holder;
+ }
+ public Image default0Act() {
+ return holder.getReadOnlyProperty();
+ }
+ public List<Image> choices0Act() {
+ return samples.stream()
+ .collect(Collectors.toList());
+ }
+
+ @Inject
+ Samples<Image> samples;
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder.java
deleted file mode 100644
index 0ac6ef3..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder.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.images.holder;
-
-//tag::class[]
-public interface IsisImageHolder {
-
- Character getReadOnlyProperty();
- void setReadOnlyProperty(Character c);
-
- Character getReadWriteProperty();
- void setReadWriteProperty(Character c);
-
- Character getReadOnlyOptionalProperty();
- void setReadOnlyOptionalProperty(Character c);
-
- Character getReadWriteOptionalProperty();
- void setReadWriteOptionalProperty(Character c);
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder2.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder2.java
deleted file mode 100644
index 32782ac..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder2.java
+++ /dev/null
@@ -1,76 +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.images.holder;
-
-import org.apache.isis.applib.annotation.LabelPosition;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Where;
-
-//tag::class[]
-public interface IsisImageHolder2 extends IsisImageHolder {
-
- @Property
- @PropertyLayout( // <.>
- labelPosition = LabelPosition.LEFT,
- describedAs = "labelPosition=LEFT",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "1") // <.>
- default Character getReadOnlyPropertyDerivedLabelPositionLeft() {
- return getReadOnlyProperty();
- }
-
- @Property
- @PropertyLayout(
- labelPosition = LabelPosition.TOP,
- describedAs = "labelPosition=TOP",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "2")
- default Character getReadOnlyPropertyDerivedLabelPositionTop() {
- return getReadOnlyProperty();
- }
-
- @Property
- @PropertyLayout(
- labelPosition = LabelPosition.RIGHT, // TODO: not honoured
- describedAs = "labelPosition=RIGHT",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "3")
- default Character getReadOnlyPropertyDerivedLabelPositionRight() {
- return getReadOnlyProperty();
- }
-
- @Property
- @PropertyLayout(
- labelPosition = LabelPosition.NONE,
- describedAs = "labelPosition=NONE",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "4")
- default Character getReadOnlyPropertyDerivedLabelPositionNone() {
- return getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_actionReturning.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_actionReturning.java
deleted file mode 100644
index 61739bd..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_actionReturning.java
+++ /dev/null
@@ -1,39 +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.images.holder;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(semantics = SemanticsOf.SAFE)
-@RequiredArgsConstructor
-public class IsisImageHolder_actionReturning {
-
- private final IsisImageHolder holder;
-
- public Character act() {
- return holder.getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_actionReturningCollection.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_actionReturningCollection.java
deleted file mode 100644
index c5ae051..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_actionReturningCollection.java
+++ /dev/null
@@ -1,48 +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.images.holder;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.stream.Stream;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-import lombok.val;
-
-
-//tag::class[]
-@Action(semantics = SemanticsOf.SAFE)
-@RequiredArgsConstructor
-public class IsisImageHolder_actionReturningCollection {
-
- private final IsisImageHolder holder;
-
- public Collection<Character> act() {
- final Collection<Character> characters = new ArrayList<>();
- val initial = holder.getReadOnlyProperty();
- Stream.of(0, 1, 2, 3).forEach(x ->
- characters.add((char) (initial + x))
- );
- return characters;
- }
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_mixinProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_mixinProperty.java
deleted file mode 100644
index 8342b4c..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_mixinProperty.java
+++ /dev/null
@@ -1,45 +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.images.holder;
-
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Where;
-
-import lombok.RequiredArgsConstructor;
-
-import demoapp.dom.types.primitive.chars.holder.PrimitiveCharHolder;
-
-
-//tag::class[]
-@Property()
-@PropertyLayout(hidden = Where.ALL_TABLES)
-@RequiredArgsConstructor
-public class IsisImageHolder_mixinProperty {
-
- private final IsisImageHolder holder;
-
- @MemberOrder(name = "contributed", sequence = "1")
- public Character prop() {
- return holder.getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_updateReadOnlyOptionalProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_updateReadOnlyOptionalProperty.java
deleted file mode 100644
index 38541c1..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_updateReadOnlyOptionalProperty.java
+++ /dev/null
@@ -1,55 +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.images.holder;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Parameter;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(
- semantics = SemanticsOf.IDEMPOTENT,
- associateWith = "readOnlyOptionalProperty",
- associateWithSequence = "1"
-)
-@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update")
-@RequiredArgsConstructor
-public class IsisImageHolder_updateReadOnlyOptionalProperty {
-
- private final IsisImageHolder holder;
-
- public IsisImageHolder act(
- @Parameter(optionality = Optionality.OPTIONAL) // <.>
- Character newValue
- ) {
- holder.setReadOnlyOptionalProperty(newValue);
- return holder;
- }
- public Character default0Act() {
- return holder.getReadOnlyOptionalProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_updateReadOnlyProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_updateReadOnlyProperty.java
deleted file mode 100644
index 30b46ef..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_updateReadOnlyProperty.java
+++ /dev/null
@@ -1,50 +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.images.holder;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(
- semantics = SemanticsOf.IDEMPOTENT,
- associateWith = "readOnlyProperty",
- associateWithSequence = "1"
-)
-@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update")
-@RequiredArgsConstructor
-public class IsisImageHolder_updateReadOnlyProperty {
-
- private final IsisImageHolder holder;
-
- public IsisImageHolder act(Character newValue) {
- holder.setReadOnlyProperty(newValue);
- return holder;
- }
- public Character default0Act() {
- return holder.getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_updateReadOnlyPropertyWithChoices.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_updateReadOnlyPropertyWithChoices.java
deleted file mode 100644
index d26e601..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/holder/WrapperCharacterHolder_updateReadOnlyPropertyWithChoices.java
+++ /dev/null
@@ -1,58 +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.images.holder;
-
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(
- semantics = SemanticsOf.IDEMPOTENT,
- associateWith = "readOnlyProperty",
- associateWithSequence = "2"
-)
-@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update with choices")
-@RequiredArgsConstructor
-public class IsisImageHolder_updateReadOnlyPropertyWithChoices {
-
- private final IsisImageHolder holder;
-
- public IsisImageHolder act(Character newValue) {
- holder.setReadOnlyProperty(newValue);
- return holder;
- }
- public Character default0Act() {
- return holder.getReadOnlyProperty();
- }
- public List<Character> choices0Act() {
- return Stream.of('a', 'b', 'c')
- .collect(Collectors.toList());
- }
-
-}
-//end::class[]
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
new file mode 100644
index 0000000..8a398b4
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/IsisImageJdo-description.adoc
@@ -0,0 +1,15 @@
+JDO supports `Image` out-of-the-box, so no special annotations are required.
+
+[source,java]
+----
+include::IsisImageJdo.java[tags=class]
+----
+<.> a no-arg constructor is introduced by JDO enhancer
+<.> required property as defined to JDO/DataNucleus.
++
+Apache Isis assumes properties are mandatory, so no additional annotation is required.
+<.> directly editable property as defined to Apache Isis
+<.> optional property as defined to Apache Isis
+<.> optional property as defined to JDO/DataNucleus
+
+
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/IsisImageJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/IsisImageJdo.java
new file mode 100644
index 0000000..a2ff031
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/IsisImageJdo.java
@@ -0,0 +1,84 @@
+/*
+ * 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.images.jdo;
+
+import javax.jdo.annotations.Column;
+import javax.jdo.annotations.DatastoreIdentity;
+import javax.jdo.annotations.IdGeneratorStrategy;
+import javax.jdo.annotations.IdentityType;
+import javax.jdo.annotations.PersistenceCapable;
+
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.value.Image;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import demoapp.dom.types.isis.images.holder.IsisImageHolder;
+
+//tag::class[]
+@PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
+@DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
+@DomainObject(
+ objectType = "demo.IsisImageJdo"
+)
+public class IsisImageJdo // <.>
+ implements HasAsciiDocDescription, IsisImageHolder {
+
+//end::class[]
+ public IsisImageJdo(Image initialValue) {
+ this.readOnlyProperty = initialValue;
+ this.readWriteProperty = initialValue;
+ }
+
+//tag::class[]
+ @Title(prepend = "Image JDO entity: ")
+ @MemberOrder(name = "read-only-properties", sequence = "1")
+ @Column(allowsNull = "false") // <.>
+ @Getter @Setter
+ private Image readOnlyProperty;
+
+ @Property(editing = Editing.ENABLED) // <.>
+ @MemberOrder(name = "editable-properties", sequence = "1")
+ @Column(allowsNull = "false")
+ @Getter @Setter
+ private Image readWriteProperty;
+
+ @Property(optionality = Optionality.OPTIONAL) // <.>
+ @MemberOrder(name = "optional-properties", sequence = "1")
+ @Column(allowsNull = "true") // <.>
+ @Getter @Setter
+ private Image readOnlyOptionalProperty;
+
+ @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
+ @MemberOrder(name = "optional-properties", sequence = "2")
+ @Column(allowsNull = "true")
+ @Getter @Setter
+ private Image readWriteOptionalProperty;
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/integers/vm/WrapperIntegerVm.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/IsisImageJdo.layout.xml
similarity index 100%
copy from examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/integers/vm/WrapperIntegerVm.layout.xml
copy to examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/IsisImageJdo.layout.xml
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/IsisImageJdoEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/IsisImageJdoEntities.java
new file mode 100644
index 0000000..143a771
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/IsisImageJdoEntities.java
@@ -0,0 +1,27 @@
+package demoapp.dom.types.isis.images.jdo;
+
+import java.util.List;
+import java.util.Optional;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Service;
+
+import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.applib.value.Image;
+
+@Service
+public class IsisImageJdoEntities {
+
+ public Optional<IsisImageJdo> find(final Image readOnlyProperty) {
+ return repositoryService.firstMatch(IsisImageJdo.class, x -> x.getReadOnlyProperty() == readOnlyProperty);
+ }
+
+ public List<IsisImageJdo> all() {
+ return repositoryService.allInstances(IsisImageJdo.class);
+ }
+
+ @Inject
+ RepositoryService repositoryService;
+
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/IsisImageJdoSeedService.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/IsisImageJdoSeedService.java
new file mode 100644
index 0000000..a07eb32
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/IsisImageJdoSeedService.java
@@ -0,0 +1,47 @@
+package demoapp.dom.types.isis.images.jdo;
+
+import java.util.stream.Stream;
+
+import javax.inject.Inject;
+
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
+
+import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.applib.value.Image;
+import org.apache.isis.core.runtime.events.app.AppLifecycleEvent;
+import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScript;
+import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
+
+import demoapp.dom.types.Samples;
+
+@Service
+public class IsisImageJdoSeedService {
+
+ @EventListener(AppLifecycleEvent.class)
+ public void onAppLifecycleEvent(AppLifecycleEvent event) {
+
+ if (event.getEventType() == AppLifecycleEvent.EventType.appPostMetamodel) {
+ fixtureScripts.run(new IsisImageJdoEntityFixture());
+ }
+ }
+
+ @Inject
+ FixtureScripts fixtureScripts;
+
+ static class IsisImageJdoEntityFixture extends FixtureScript {
+
+ @Override
+ protected void execute(ExecutionContext executionContext) {
+ samples.stream()
+ .map(IsisImageJdo::new)
+ .forEach(repositoryService::persist);
+ }
+
+ @Inject
+ RepositoryService repositoryService;
+
+ @Inject
+ Samples<Image> samples;
+ }
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/WrapperCharacterJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/WrapperCharacterJdo-description.adoc
deleted file mode 100644
index 7d84c6c..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/WrapperCharacterJdo-description.adoc
+++ /dev/null
@@ -1,15 +0,0 @@
-JDO supports `Character` out-of-the-box, so no special annotations are required.
-
-[source,java]
-----
-include::IsisImageJdo.java[tags=class]
-----
-<.> a no-arg constructor is introduced by JDO enhancer
-<.> required property as defined to JDO/DataNucleus.
-+
-Apache Isis assumes properties are mandatory, so no additional annotation is required.
-<.> directly editable property as defined to Apache Isis
-<.> optional property as defined to Apache Isis
-<.> optional property as defined to JDO/DataNucleus
-
-
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/WrapperCharacterJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/WrapperCharacterJdo.java
deleted file mode 100644
index 08fb538..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/WrapperCharacterJdo.java
+++ /dev/null
@@ -1,83 +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.images.jdo;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.DatastoreIdentity;
-import javax.jdo.annotations.IdGeneratorStrategy;
-import javax.jdo.annotations.IdentityType;
-import javax.jdo.annotations.PersistenceCapable;
-
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Title;
-import org.apache.isis.applib.annotation.Where;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.types.isis.images.holder.IsisImageHolder;
-
-//tag::class[]
-@PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
-@DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
-@DomainObject(
- objectType = "demo.IsisImageJdo"
-)
-public class IsisImageJdo // <.>
- implements HasAsciiDocDescription, IsisImageHolder {
-
-//end::class[]
- public IsisImageJdo(Character initialValue) {
- this.readOnlyProperty = initialValue;
- this.readWriteProperty = initialValue;
- }
-
-//tag::class[]
- @Title(prepend = "Character (wrapper) JDO entity: ")
- @MemberOrder(name = "read-only-properties", sequence = "1")
- @Column(allowsNull = "false") // <.>
- @Getter @Setter
- private Character readOnlyProperty;
-
- @Property(editing = Editing.ENABLED) // <.>
- @MemberOrder(name = "editable-properties", sequence = "1")
- @Column(allowsNull = "false")
- @Getter @Setter
- private Character readWriteProperty;
-
- @Property(optionality = Optionality.OPTIONAL) // <.>
- @MemberOrder(name = "optional-properties", sequence = "1")
- @Column(allowsNull = "true") // <.>
- @Getter @Setter
- private Character readOnlyOptionalProperty;
-
- @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
- @MemberOrder(name = "optional-properties", sequence = "2")
- @Column(allowsNull = "true")
- @Getter @Setter
- private Character readWriteOptionalProperty;
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/WrapperCharacterJdo.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/WrapperCharacterJdo.layout.xml
deleted file mode 100644
index 777ee39..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/WrapperCharacterJdo.layout.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<bs3:grid
- xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
- xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
- xmlns:cpt="http://isis.apache.org/applib/layout/component"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
- <bs3:row>
- <bs3:col span="10" unreferencedActions="true">
- <cpt:domainObject />
- <cpt:action id="actionReturning"/>
- <cpt:action id="actionReturningCollection"/>
- <cpt:action id="rebuildMetamodel"/>
- </bs3:col>
- <bs3:col span="2">
- <cpt:fieldSet name="" id="sources" />
- </bs3:col>
- </bs3:row>
-
- <bs3:row>
- <bs3:col span="6">
- <cpt:fieldSet name="Read Only Properties" id="read-only-properties"/>
- <cpt:fieldSet name="Editable Properties" id="editable-properties"/>
- <cpt:fieldSet name="Optional Properties" id="optional-properties"/>
- <cpt:fieldSet name="Label Positions" id="label-positions"/>
- <cpt:fieldSet name="Contributed by Mixins" id="contributed"/>
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
- </bs3:col>
- <bs3:col span="6">
- <cpt:fieldSet name="Description" id="description" >
- <cpt:action id="clearHints" position="PANEL" />
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="rebuildMetamodel" position="PANEL"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadJdoMetadata" position="PANEL_DROPDOWN"/>
- <cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
- <cpt:property id="description"/>
- </cpt:fieldSet>
- </bs3:col>
- </bs3:row>
- <bs3:row>
- <bs3:col span="12" unreferencedCollections="true"/>
- </bs3:row>
-
-</bs3:grid>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/WrapperCharacterJdoEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/WrapperCharacterJdoEntities.java
deleted file mode 100644
index b7fb9e6..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/WrapperCharacterJdoEntities.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package demoapp.dom.types.isis.images.jdo;
-
-import java.util.List;
-import java.util.Optional;
-
-import javax.inject.Inject;
-
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.services.repository.RepositoryService;
-
-@Service
-public class IsisImageJdoEntities {
-
- public Optional<IsisImageJdo> find(final Character readOnlyProperty) {
- return repositoryService.firstMatch(IsisImageJdo.class, x -> x.getReadOnlyProperty() == readOnlyProperty);
- }
-
- public List<IsisImageJdo> all() {
- return repositoryService.allInstances(IsisImageJdo.class);
- }
-
- @Inject
- RepositoryService repositoryService;
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/WrapperCharacterJdoSeedService.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/WrapperCharacterJdoSeedService.java
deleted file mode 100644
index 40cd5a1..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/jdo/WrapperCharacterJdoSeedService.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package demoapp.dom.types.isis.images.jdo;
-
-import java.util.stream.Stream;
-
-import javax.inject.Inject;
-
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.services.repository.RepositoryService;
-import org.apache.isis.core.runtime.events.app.AppLifecycleEvent;
-import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScript;
-import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
-
-@Service
-public class IsisImageJdoSeedService {
-
- @EventListener(AppLifecycleEvent.class)
- public void onAppLifecycleEvent(AppLifecycleEvent event) {
-
- if (event.getEventType() == AppLifecycleEvent.EventType.appPostMetamodel) {
- fixtureScripts.run(new IsisImageJdoEntityFixture());
- }
- }
-
- @Inject
- FixtureScripts fixtureScripts;
-
- static class IsisImageJdoEntityFixture extends FixtureScript {
-
- @Override
- protected void execute(ExecutionContext executionContext) {
- Stream.of('a', 'b', 'c')
- .map(IsisImageJdo::new)
- .forEach(repositoryService::persist);
- }
-
- @Inject
- RepositoryService repositoryService;
-
- }
-}
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
new file mode 100644
index 0000000..304d6c9
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/IsisImageVm-description.adoc
@@ -0,0 +1,13 @@
+JAXB supports `Image` out-of-the-box, so no special annotations are required.
+
+[source,java]
+----
+include::IsisImageVm.java[tags=class]
+----
+<.> a no-arg constructor is required by JAXB
+<.> required property as defined to JAXB
+<.> directly editable property as defined to Apache Isis
+<.> optional property as defined to Apache Isis.
++
+This is the default for JAXB so no additional annotation required.
+
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/IsisImageVm.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/IsisImageVm.java
new file mode 100644
index 0000000..e9b5135
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/IsisImageVm.java
@@ -0,0 +1,86 @@
+/*
+ * 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.images.vm;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Nature;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.value.Image;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import demoapp.dom.types.isis.images.holder.IsisImageHolder;
+
+//tag::class[]
+@XmlRootElement(name = "root")
+@XmlType
+@XmlAccessorType(XmlAccessType.FIELD)
+@DomainObject(
+ nature=Nature.VIEW_MODEL,
+ objectType = "demo.IsisImageVm"
+)
+@lombok.NoArgsConstructor // <.>
+public class IsisImageVm
+ implements HasAsciiDocDescription, IsisImageHolder {
+
+//end::class[]
+ public IsisImageVm(Image initialValue) {
+ this.readOnlyProperty = initialValue;
+ this.readWriteProperty = initialValue;
+ }
+
+//tag::class[]
+ @Title(prepend = "Image view model: ")
+ @MemberOrder(name = "read-only-properties", sequence = "1")
+ @XmlElement(required = true) // <.>
+ @Getter @Setter
+ private Image readOnlyProperty;
+
+ @Property(editing = Editing.ENABLED) // <.>
+ @MemberOrder(name = "editable-properties", sequence = "1")
+ @XmlElement(required = true)
+ @Getter @Setter
+ private Image readWriteProperty;
+
+ @Property(optionality = Optionality.OPTIONAL) // <.>
+ @MemberOrder(name = "optional-properties", sequence = "1")
+ @Getter @Setter
+ private Image readOnlyOptionalProperty;
+
+ @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
+ @MemberOrder(name = "optional-properties", sequence = "2")
+ @Getter @Setter
+ private Image readWriteOptionalProperty;
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/integers/jdo/WrapperIntegerJdo.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/IsisImageVm.layout.xml
similarity index 100%
copy from examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/integers/jdo/WrapperIntegerJdo.layout.xml
copy to examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/IsisImageVm.layout.xml
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/WrapperCharacterVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/WrapperCharacterVm-description.adoc
deleted file mode 100644
index 7a026be..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/WrapperCharacterVm-description.adoc
+++ /dev/null
@@ -1,13 +0,0 @@
-JAXB supports `Character` out-of-the-box, so no special annotations are required.
-
-[source,java]
-----
-include::IsisImageVm.java[tags=class]
-----
-<.> a no-arg constructor is required by JAXB
-<.> required property as defined to JAXB
-<.> directly editable property as defined to Apache Isis
-<.> optional property as defined to Apache Isis.
-+
-This is the default for JAXB so no additional annotation required.
-
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/WrapperCharacterVm.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/WrapperCharacterVm.java
deleted file mode 100644
index d1c7451..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/WrapperCharacterVm.java
+++ /dev/null
@@ -1,85 +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.images.vm;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Nature;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Title;
-import org.apache.isis.applib.annotation.Where;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.types.isis.images.holder.IsisImageHolder;
-
-//tag::class[]
-@XmlRootElement(name = "root")
-@XmlType
-@XmlAccessorType(XmlAccessType.FIELD)
-@DomainObject(
- nature=Nature.VIEW_MODEL,
- objectType = "demo.IsisImageVm"
-)
-@lombok.NoArgsConstructor // <.>
-public class IsisImageVm
- implements HasAsciiDocDescription, IsisImageHolder {
-
-//end::class[]
- public IsisImageVm(Character initialValue) {
- this.readOnlyProperty = initialValue;
- this.readWriteProperty = initialValue;
- }
-
-//tag::class[]
- @Title(prepend = "Character (wrapper) view model: ")
- @MemberOrder(name = "read-only-properties", sequence = "1")
- @XmlElement(required = true) // <.>
- @Getter @Setter
- private Character readOnlyProperty;
-
- @Property(editing = Editing.ENABLED) // <.>
- @MemberOrder(name = "editable-properties", sequence = "1")
- @XmlElement(required = true)
- @Getter @Setter
- private Character readWriteProperty;
-
- @Property(optionality = Optionality.OPTIONAL) // <.>
- @MemberOrder(name = "optional-properties", sequence = "1")
- @Getter @Setter
- private Character readOnlyOptionalProperty;
-
- @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
- @MemberOrder(name = "optional-properties", sequence = "2")
- @Getter @Setter
- private Character readWriteOptionalProperty;
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/WrapperCharacterVm.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/WrapperCharacterVm.layout.xml
deleted file mode 100644
index 777ee39..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/images/vm/WrapperCharacterVm.layout.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<bs3:grid
- xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
- xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
- xmlns:cpt="http://isis.apache.org/applib/layout/component"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
- <bs3:row>
- <bs3:col span="10" unreferencedActions="true">
- <cpt:domainObject />
- <cpt:action id="actionReturning"/>
- <cpt:action id="actionReturningCollection"/>
- <cpt:action id="rebuildMetamodel"/>
- </bs3:col>
- <bs3:col span="2">
- <cpt:fieldSet name="" id="sources" />
- </bs3:col>
- </bs3:row>
-
- <bs3:row>
- <bs3:col span="6">
- <cpt:fieldSet name="Read Only Properties" id="read-only-properties"/>
- <cpt:fieldSet name="Editable Properties" id="editable-properties"/>
- <cpt:fieldSet name="Optional Properties" id="optional-properties"/>
- <cpt:fieldSet name="Label Positions" id="label-positions"/>
- <cpt:fieldSet name="Contributed by Mixins" id="contributed"/>
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
- </bs3:col>
- <bs3:col span="6">
- <cpt:fieldSet name="Description" id="description" >
- <cpt:action id="clearHints" position="PANEL" />
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="rebuildMetamodel" position="PANEL"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadJdoMetadata" position="PANEL_DROPDOWN"/>
- <cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
- <cpt:property id="description"/>
- </cpt:fieldSet>
- </bs3:col>
- </bs3:row>
- <bs3:row>
- <bs3:col span="12" unreferencedCollections="true"/>
- </bs3:row>
-
-</bs3:grid>
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
new file mode 100644
index 0000000..c9673b7
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePaths-description.adoc
@@ -0,0 +1,75 @@
+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]
+----
+
+There is also an extension of this 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.
+<.> Using `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
+
+
+== 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]
+----
+
+
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePaths.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePaths.java
new file mode 100644
index 0000000..0250e64
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePaths.java
@@ -0,0 +1,81 @@
+/*
+ * 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.List;
+
+import javax.inject.Inject;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Collection;
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.applib.annotation.Nature;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.LocalResourcePath;
+
+import lombok.extern.log4j.Log4j2;
+
+import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import demoapp.dom.types.Samples;
+import demoapp.dom.types.isis.localresourcepaths.jdo.IsisLocalResourcePathJdoEntities;
+import demoapp.dom.types.isis.localresourcepaths.jdo.IsisLocalResourcePathJdo;
+import demoapp.dom.types.isis.localresourcepaths.vm.IsisLocalResourcePathVm;
+
+@XmlRootElement(name = "Demo")
+@XmlType
+@XmlAccessorType(XmlAccessType.FIELD)
+@DomainObject(nature=Nature.VIEW_MODEL, objectType = "demo.IsisLocalResourcePaths", editing=Editing.ENABLED)
+@Log4j2
+public class IsisLocalResourcePaths implements HasAsciiDocDescription {
+
+ public String title() {
+ return "LocalResourcePath data type";
+ }
+
+ @Action(semantics = SemanticsOf.SAFE)
+ @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
+ public IsisLocalResourcePathVm openViewModel(LocalResourcePath initialValue) {
+ return new IsisLocalResourcePathVm(initialValue);
+ }
+ public LocalResourcePath default0OpenViewModel() {
+ return samples.single();
+ }
+
+ @Collection
+ public List<IsisLocalResourcePathJdo> getEntities() {
+ return entities.all();
+ }
+
+ @Inject
+ @XmlTransient
+ IsisLocalResourcePathJdoEntities entities;
+
+ @Inject
+ @XmlTransient
+ Samples<LocalResourcePath> samples;
+
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/floats/WrapperFloats.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePaths.layout.xml
similarity index 100%
copy from examples/demo/domain/src/main/java/demoapp/dom/types/wrapper/floats/WrapperFloats.layout.xml
copy to examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePaths.layout.xml
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
new file mode 100644
index 0000000..dd61c92
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePathsSamples.java
@@ -0,0 +1,37 @@
+/*
+ * 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();
+ }
+
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePathsStream.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePathsStream.java
deleted file mode 100644
index 0503164..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/IsisLocalResourcePathsStream.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.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 IsisLocalResourcePathsStream implements Samples<LocalResourcePath> {
-
- @Override
- public Stream<LocalResourcePath> stream() {
- return Stream.of(null);
- }
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/WrapperCharacters-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/WrapperCharacters-description.adoc
deleted file mode 100644
index 571c860..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/WrapperCharacters-description.adoc
+++ /dev/null
@@ -1,75 +0,0 @@
-The framework has built-in support for all of the Wrapper data types, including `Character`.
-
-From here you can:
-
-* navigate to an entity that uses the `Character` datatype
-* open a view model that uses the `Character` 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]
-----
-
-There is also an extension of this 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.
-<.> Using `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
-
-
-== 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/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]
-----
-
-
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/WrapperCharacters.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/WrapperCharacters.java
deleted file mode 100644
index de81a16..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/WrapperCharacters.java
+++ /dev/null
@@ -1,76 +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.List;
-
-import javax.inject.Inject;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Collection;
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.Nature;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.extern.log4j.Log4j2;
-
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.types.isis.localresourcepaths.jdo.IsisLocalResourcePathJdoEntities;
-import demoapp.dom.types.isis.localresourcepaths.jdo.IsisLocalResourcePathJdo;
-import demoapp.dom.types.isis.localresourcepaths.vm.IsisLocalResourcePathVm;
-
-@XmlRootElement(name = "Demo")
-@XmlType
-@XmlAccessorType(XmlAccessType.FIELD)
-@DomainObject(nature=Nature.VIEW_MODEL, objectType = "demo.IsisLocalResourcePaths", editing=Editing.ENABLED)
-@Log4j2
-public class IsisLocalResourcePaths implements HasAsciiDocDescription {
-
- public String title() {
- return "Character (wrapper) data type";
- }
-
- @Action(semantics = SemanticsOf.SAFE)
- @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
- public IsisLocalResourcePathVm openViewModel(Character initialValue) {
- return new IsisLocalResourcePathVm(initialValue);
- }
- public Character default0OpenViewModel() {
- return 'a';
- }
-
- @Collection
- public List<IsisLocalResourcePathJdo> getEntities() {
- return entities.all();
- }
-
- @Inject
- @XmlTransient
- IsisLocalResourcePathJdoEntities entities;
-
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/WrapperCharacters.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/WrapperCharacters.layout.xml
deleted file mode 100644
index 55c5b87..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/WrapperCharacters.layout.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<bs3:grid
- xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
- xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
- xmlns:cpt="http://isis.apache.org/applib/layout/component"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
- <bs3:row>
- <bs3:col span="10" unreferencedActions="true">
- <cpt:domainObject />
- <cpt:action id="rebuildMetamodel"/>
- </bs3:col>
- <bs3:col span="2">
- <cpt:fieldSet name="" id="sources" />
- </bs3:col>
- </bs3:row>
-
- <bs3:row>
- <bs3:col span="6">
- <bs3:row>
- <bs3:col span="12">
- <cpt:collection id="entities"/>
- </bs3:col>
- <bs3:col span="12">
- <cpt:action id="openViewModel"/>
- </bs3:col>
- </bs3:row>
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
- </bs3:col>
- <bs3:col span="6">
- <cpt:fieldSet name="Description" id="description" >
- <cpt:action id="clearHints" position="PANEL" />
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="rebuildMetamodel" position="PANEL"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
- <cpt:property id="description"/>
- </cpt:fieldSet>
- </bs3:col>
- </bs3:row>
- <bs3:row>
- <bs3:col span="12" unreferencedCollections="true"/>
- </bs3:row>
-
-</bs3:grid>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder.java
new file mode 100644
index 0000000..f6f1586
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder.java
@@ -0,0 +1,39 @@
+/*
+ * 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.holder;
+
+import org.apache.isis.applib.value.LocalResourcePath;
+
+//tag::class[]
+public interface IsisLocalResourcePathHolder {
+
+ LocalResourcePath getReadOnlyProperty();
+ void setReadOnlyProperty(LocalResourcePath c);
+
+ LocalResourcePath getReadWriteProperty();
+ void setReadWriteProperty(LocalResourcePath c);
+
+ LocalResourcePath getReadOnlyOptionalProperty();
+ void setReadOnlyOptionalProperty(LocalResourcePath c);
+
+ LocalResourcePath getReadWriteOptionalProperty();
+ void setReadWriteOptionalProperty(LocalResourcePath c);
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder2.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder2.java
new file mode 100644
index 0000000..39fb777
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder2.java
@@ -0,0 +1,77 @@
+/*
+ * 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.holder;
+
+import org.apache.isis.applib.annotation.LabelPosition;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.value.LocalResourcePath;
+
+//tag::class[]
+public interface IsisLocalResourcePathHolder2 extends IsisLocalResourcePathHolder {
+
+ @Property
+ @PropertyLayout( // <.>
+ labelPosition = LabelPosition.LEFT,
+ describedAs = "labelPosition=LEFT",
+ hidden = Where.ALL_TABLES
+ )
+ @MemberOrder(name = "label-positions", sequence = "1") // <.>
+ default LocalResourcePath getReadOnlyPropertyDerivedLabelPositionLeft() {
+ return getReadOnlyProperty();
+ }
+
+ @Property
+ @PropertyLayout(
+ labelPosition = LabelPosition.TOP,
+ describedAs = "labelPosition=TOP",
+ hidden = Where.ALL_TABLES
+ )
+ @MemberOrder(name = "label-positions", sequence = "2")
+ default LocalResourcePath getReadOnlyPropertyDerivedLabelPositionTop() {
+ return getReadOnlyProperty();
+ }
+
+ @Property
+ @PropertyLayout(
+ labelPosition = LabelPosition.RIGHT, // TODO: not honoured
+ describedAs = "labelPosition=RIGHT",
+ hidden = Where.ALL_TABLES
+ )
+ @MemberOrder(name = "label-positions", sequence = "3")
+ default LocalResourcePath getReadOnlyPropertyDerivedLabelPositionRight() {
+ return getReadOnlyProperty();
+ }
+
+ @Property
+ @PropertyLayout(
+ labelPosition = LabelPosition.NONE,
+ describedAs = "labelPosition=NONE",
+ hidden = Where.ALL_TABLES
+ )
+ @MemberOrder(name = "label-positions", sequence = "4")
+ default LocalResourcePath getReadOnlyPropertyDerivedLabelPositionNone() {
+ return getReadOnlyProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_actionReturning.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_actionReturning.java
new file mode 100644
index 0000000..b54e250
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_actionReturning.java
@@ -0,0 +1,40 @@
+/*
+ * 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.holder;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.LocalResourcePath;
+
+import lombok.RequiredArgsConstructor;
+
+
+//tag::class[]
+@Action(semantics = SemanticsOf.SAFE)
+@RequiredArgsConstructor
+public class IsisLocalResourcePathHolder_actionReturning {
+
+ private final IsisLocalResourcePathHolder holder;
+
+ public LocalResourcePath act() {
+ return holder.getReadOnlyProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_actionReturningCollection.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_actionReturningCollection.java
new file mode 100644
index 0000000..22ab1c6
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_actionReturningCollection.java
@@ -0,0 +1,53 @@
+/*
+ * 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.holder;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import javax.inject.Inject;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.LocalResourcePath;
+
+import lombok.RequiredArgsConstructor;
+import lombok.val;
+
+import demoapp.dom.types.Samples;
+
+
+//tag::class[]
+@Action(semantics = SemanticsOf.SAFE)
+@RequiredArgsConstructor
+public class IsisLocalResourcePathHolder_actionReturningCollection {
+
+ private final IsisLocalResourcePathHolder holder;
+
+ public Collection<LocalResourcePath> act() {
+ return samples.stream()
+ .collect(Collectors.toList());
+ }
+
+ @Inject
+ Samples<LocalResourcePath> samples;
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_mixinProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_mixinProperty.java
new file mode 100644
index 0000000..e3834b7
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_mixinProperty.java
@@ -0,0 +1,46 @@
+/*
+ * 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.holder;
+
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.value.LocalResourcePath;
+
+import lombok.RequiredArgsConstructor;
+
+import demoapp.dom.types.primitive.chars.holder.PrimitiveCharHolder;
+
+
+//tag::class[]
+@Property()
+@PropertyLayout(hidden = Where.ALL_TABLES)
+@RequiredArgsConstructor
+public class IsisLocalResourcePathHolder_mixinProperty {
+
+ private final IsisLocalResourcePathHolder holder;
+
+ @MemberOrder(name = "contributed", sequence = "1")
+ public LocalResourcePath prop() {
+ return holder.getReadOnlyProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_updateReadOnlyOptionalProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_updateReadOnlyOptionalProperty.java
new file mode 100644
index 0000000..e3cb361
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_updateReadOnlyOptionalProperty.java
@@ -0,0 +1,56 @@
+/*
+ * 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.holder;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.LocalResourcePath;
+
+import lombok.RequiredArgsConstructor;
+
+
+//tag::class[]
+@Action(
+ semantics = SemanticsOf.IDEMPOTENT,
+ associateWith = "readOnlyOptionalProperty",
+ associateWithSequence = "1"
+)
+@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update")
+@RequiredArgsConstructor
+public class IsisLocalResourcePathHolder_updateReadOnlyOptionalProperty {
+
+ private final IsisLocalResourcePathHolder holder;
+
+ public IsisLocalResourcePathHolder act(
+ @Parameter(optionality = Optionality.OPTIONAL) // <.>
+ LocalResourcePath newValue
+ ) {
+ holder.setReadOnlyOptionalProperty(newValue);
+ return holder;
+ }
+ public LocalResourcePath default0Act() {
+ return holder.getReadOnlyOptionalProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_updateReadOnlyProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_updateReadOnlyProperty.java
new file mode 100644
index 0000000..e1fa260
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_updateReadOnlyProperty.java
@@ -0,0 +1,51 @@
+/*
+ * 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.holder;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.LocalResourcePath;
+
+import lombok.RequiredArgsConstructor;
+
+
+//tag::class[]
+@Action(
+ semantics = SemanticsOf.IDEMPOTENT,
+ associateWith = "readOnlyProperty",
+ associateWithSequence = "1"
+)
+@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update")
+@RequiredArgsConstructor
+public class IsisLocalResourcePathHolder_updateReadOnlyProperty {
+
+ private final IsisLocalResourcePathHolder holder;
+
+ public IsisLocalResourcePathHolder act(LocalResourcePath newValue) {
+ holder.setReadOnlyProperty(newValue);
+ return holder;
+ }
+ public LocalResourcePath default0Act() {
+ return holder.getReadOnlyProperty();
+ }
+
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_updateReadOnlyPropertyWithChoices.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_updateReadOnlyPropertyWithChoices.java
new file mode 100644
index 0000000..daa9b1e
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder_updateReadOnlyPropertyWithChoices.java
@@ -0,0 +1,65 @@
+/*
+ * 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.holder;
+
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import javax.inject.Inject;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.LocalResourcePath;
+
+import lombok.RequiredArgsConstructor;
+
+import demoapp.dom.types.Samples;
+
+
+//tag::class[]
+@Action(
+ semantics = SemanticsOf.IDEMPOTENT,
+ associateWith = "readOnlyProperty",
+ associateWithSequence = "2"
+)
+@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Update with choices")
+@RequiredArgsConstructor
+public class IsisLocalResourcePathHolder_updateReadOnlyPropertyWithChoices {
+
+ private final IsisLocalResourcePathHolder holder;
+
+ public IsisLocalResourcePathHolder act(LocalResourcePath newValue) {
+ holder.setReadOnlyProperty(newValue);
+ return holder;
+ }
+ public LocalResourcePath default0Act() {
+ return holder.getReadOnlyProperty();
+ }
+ public List<LocalResourcePath> choices0Act() {
+ return samples.stream()
+ .collect(Collectors.toList());
+ }
+
+ @Inject
+ Samples<LocalResourcePath> samples;
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/WrapperCharacterHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/WrapperCharacterHolder.java
deleted file mode 100644
index bac3561..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/WrapperCharacterHolder.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.localresourcepaths.holder;
-
-//tag::class[]
-public interface IsisLocalResourcePathHolder {
-
- Character getReadOnlyProperty();
- void setReadOnlyProperty(Character c);
-
- Character getReadWriteProperty();
- void setReadWriteProperty(Character c);
-
- Character getReadOnlyOptionalProperty();
- void setReadOnlyOptionalProperty(Character c);
-
- Character getReadWriteOptionalProperty();
- void setReadWriteOptionalProperty(Character c);
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/WrapperCharacterHolder2.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/WrapperCharacterHolder2.java
deleted file mode 100644
index 37dba2f..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/WrapperCharacterHolder2.java
+++ /dev/null
@@ -1,76 +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.holder;
-
-import org.apache.isis.applib.annotation.LabelPosition;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Where;
-
-//tag::class[]
-public interface IsisLocalResourcePathHolder2 extends IsisLocalResourcePathHolder {
-
- @Property
- @PropertyLayout( // <.>
- labelPosition = LabelPosition.LEFT,
- describedAs = "labelPosition=LEFT",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "1") // <.>
- default Character getReadOnlyPropertyDerivedLabelPositionLeft() {
- return getReadOnlyProperty();
- }
-
- @Property
- @PropertyLayout(
- labelPosition = LabelPosition.TOP,
- describedAs = "labelPosition=TOP",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "2")
- default Character getReadOnlyPropertyDerivedLabelPositionTop() {
- return getReadOnlyProperty();
- }
-
- @Property
- @PropertyLayout(
- labelPosition = LabelPosition.RIGHT, // TODO: not honoured
- describedAs = "labelPosition=RIGHT",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "3")
- default Character getReadOnlyPropertyDerivedLabelPositionRight() {
- return getReadOnlyProperty();
- }
-
- @Property
- @PropertyLayout(
- labelPosition = LabelPosition.NONE,
- describedAs = "labelPosition=NONE",
- hidden = Where.ALL_TABLES
- )
- @MemberOrder(name = "label-positions", sequence = "4")
- default Character getReadOnlyPropertyDerivedLabelPositionNone() {
- return getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/WrapperCharacterHolder_actionReturning.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/WrapperCharacterHolder_actionReturning.java
deleted file mode 100644
index 7ec69a7..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/WrapperCharacterHolder_actionReturning.java
+++ /dev/null
@@ -1,39 +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.holder;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-
-//tag::class[]
-@Action(semantics = SemanticsOf.SAFE)
-@RequiredArgsConstructor
-public class IsisLocalResourcePathHolder_actionReturning {
-
- private final IsisLocalResourcePathHolder holder;
-
- public Character act() {
- return holder.getReadOnlyProperty();
- }
-
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/WrapperCharacterHolder_actionReturningCollection.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/WrapperCharacterHolder_actionReturningCollection.java
deleted file mode 100644
index 97e02d5..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/WrapperCharacterHolder_actionReturningCollection.java
+++ /dev/null
@@ -1,48 +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.holder;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.stream.Stream;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-import lombok.val;
-
-
-//tag::class[]
-@Action(semantics = SemanticsOf.SAFE)
-@RequiredArgsConstructor
-public class IsisLocalResourcePathHolder_actionReturningCollection {
-
- private final IsisLocalResourcePathHolder holder;
-
- public Collection<Character> act() {
- final Collection<Character> characters = new ArrayList<>();
- val initial = holder.getReadOnlyProperty();
- Stream.of(0, 1, 2, 3).forEach(x ->
- characters.add((char) (initial + x))
- );
- return characters;
- }
-}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/WrapperCharacterHolder_mixinProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/WrapperCharacterHolder_mixinProperty.java
deleted file mode 100644
index 1c85493..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/WrapperCharacterHolder_mixinProperty.java
+++ /dev/null
@@ -1,45 +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.holder;
-
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Where;
-
-import lombok.RequiredArgsConstructor;
-
-import demoapp.dom.types.primitive.chars.holder.PrimitiveCharHolder;
-
-
-//tag::class[]
-@Property()
-@PropertyLayout(hidden = Where.ALL_TABLES)
-@RequiredArgsConstructor
-public class IsisLocalResourcePathHolder_mixinProperty {
-
- private final IsisLocalResourcePathHolder holder;
-
- @MemberOrder(name = "contributed", sequence = "1")
- public Character prop() {
- return holder.getReadOnlyProperty();
- }
-
-}
-//end::class[]
... 49994 lines suppressed ...