This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch CAUSEWAY-2485
in repository https://gitbox.apache.org/repos/asf/causeway.git

commit 5728be8fa91d22b8e6795c99487d9006cf8d2607
Author: danhaywood <[email protected]>
AuthorDate: Tue Apr 4 17:58:04 2023 +0100

    CAUSEWAY-2485: adds @DomainObjectLayout#cssClassFa example
---
 .../src/main/java/demoapp/dom/DemoModuleJpa.java   |  2 +
 .../DomainObjectLayoutCssClassFa.java}             | 41 ++++++++++------
 .../DomainObjectLayoutCssClassFa.layout.xml}       |  7 ---
 ...mainObjectLayoutCssClassFaPage-description.adoc | 20 ++++++--
 .../DomainObjectLayoutCssClassFaPage.java          |  6 +--
 .../DomainObjectLayoutCssClassFaPage.layout.xml    |  9 ++++
 .../DomainObjectLayoutCssClassFaPage_objects.java  | 30 ++++++++++++
 .../DomainObjectLayoutCssClassFaRepository.java}   | 25 ++--------
 .../DomainObjectLayoutCssClassFaSeeding.java}      | 31 +++++-------
 ...mainObjectLayoutCssClassFaJpa-description.adoc} | 10 ++--
 .../DomainObjectLayoutCssClassFaJpa.java}          | 53 +++++++++++++--------
 .../DomainObjectLayoutCssClassFaJpaEntities.java   | 55 ++++++++++++++++++++++
 12 files changed, 198 insertions(+), 91 deletions(-)

diff --git a/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java 
b/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java
index 1c07881e93..8ba66edc63 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java
@@ -34,6 +34,7 @@ import 
demoapp.dom.domain.objects.DomainObject.xxxLifecycleEvent.jpa.DomainObjec
 import 
demoapp.dom.domain.objects.DomainObjectLayout.bookmarking.jpa.DomainObjectLayoutBookmarkingChildJpa;
 import 
demoapp.dom.domain.objects.DomainObjectLayout.bookmarking.jpa.DomainObjectLayoutBookmarkingJpa;
 import 
demoapp.dom.domain.objects.DomainObjectLayout.cssClass.jpa.DomainObjectLayoutCssClassJpa;
+import 
demoapp.dom.domain.objects.DomainObjectLayout.cssClassFa.jpa.DomainObjectLayoutCssClassFaJpa;
 import demoapp.dom.domain.objects.other.embedded.jpa.NumberConstantJpa;
 import 
demoapp.dom.domain.properties.Property.commandPublishing.jpa.PropertyCommandPublishingJpa;
 import 
demoapp.dom.domain.properties.Property.executionPublishing.jpa.PropertyExecutionPublishingJpa;
@@ -112,6 +113,7 @@ import org.springframework.context.annotation.Profile;
         DomainObjectLayoutBookmarkingJpa.class,
         DomainObjectLayoutBookmarkingChildJpa.class,
         DomainObjectLayoutCssClassJpa.class,
+        DomainObjectLayoutCssClassFaJpa.class,
 
         CausewayBlobJpa.class,
         CausewayClobJpa.class,
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClass/Status.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFa.java
similarity index 62%
copy from 
examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClass/Status.java
copy to 
examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFa.java
index 65241c98a3..ad2d7ce886 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClass/Status.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFa.java
@@ -16,28 +16,39 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.domain.objects.DomainObjectLayout.cssClass;
+package demoapp.dom.domain.objects.DomainObjectLayout.cssClassFa;
 
 import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import demoapp.dom._infra.values.ValueHolder;
 
-import javax.inject.Named;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-import org.apache.causeway.applib.annotation.DomainObject;
 import org.apache.causeway.applib.annotation.DomainObjectLayout;
-import org.apache.causeway.applib.annotation.Nature;
-import org.apache.causeway.applib.annotation.ObjectSupport;
 
 //tag::class[]
-public enum Status{
+@DomainObjectLayout(
+        cssClassFa = "fa-user"             // <.>
+)
+public abstract class DomainObjectLayoutCssClassFa
+//end::class[]
+        implements
+        HasAsciiDocDescription,
+        ValueHolder<String>
+//tag::class[]
+{
+    // ...
+//end::class[]
 
-    NEW,
-    IN_PROGRESS,
-    COMPLETE,
-    DISCARDED
+    public String title() {
+        return value();
+    }
 
+    @Override
+    public String value() {
+        return getName();
+    }
+
+    public abstract String getName();
+    public abstract void setName(String value);
+
+//tag::class[]
 }
 //end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClass/DomainObjectLayoutBookmarking.layout.xml
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFa.layout.xml
similarity index 94%
rename from 
examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClass/DomainObjectLayoutBookmarking.layout.xml
rename to 
examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFa.layout.xml
index 11b67b9496..1135efb565 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClass/DomainObjectLayoutBookmarking.layout.xml
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFa.layout.xml
@@ -35,13 +35,6 @@
                                                        </cpt:fieldSet>
                                                </bs3:col>
                                        </bs3:row>
-                                       <bs3:row>
-                                               <bs3:col span="12">
-                                                       <cpt:collection 
id="children">
-                                                               <cpt:action 
id="addChildren"/>
-                                                       </cpt:collection>
-                                               </bs3:col>
-                                       </bs3:row>
                                </bs3:tab>
                                <bs3:tab name="Metadata">
                                        <bs3:row>
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage-description.adoc
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage-description.adoc
index a10c7a2fc6..3e4fae63ed 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage-description.adoc
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage-description.adoc
@@ -1,6 +1,20 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-The `cssClassFa` attribute
-indicates the _FontAwesome_ CSS class to decorate a domain object.
+Domain objects are identified to the user through a title and an icon.
+The most common way to define the icon is with a `.png` image file with the 
same name as the class (eg `Customer.png` for a `Customer` class).
+
+An alternative though is to use a fontawesome icon, specified using 
link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/DomainObjectLayout.html#cssclassfa[@DomainObjectLayout#cssClassFa].
+
+=== How this demo works
+
+The collection on the left shows a list of entities where the `cssClass` 
attribute has been set to a value of "fa-user".
+
+In terms of code, that is:
+
+[source,css]
+.DomainObjectLayoutCssClass.java
+----
+include::DomainObjectLayoutCssClassFa.java[tags=class]
+----
+<.> specifies the "fa-user" fontawesome CSS class
 
-As an example, _FontAwesome_ CSS class `bus` is shown here.
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage.java
index 8fe78f5ed0..1341a58bc8 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage.java
@@ -35,15 +35,13 @@ import org.apache.causeway.applib.annotation.ObjectSupport;
 @XmlRootElement(name = "root")
 @XmlType
 @XmlAccessorType(XmlAccessType.FIELD)
-@Named("demo.DomainObjectLayoutCssClassFaVm")
+@Named("demo.DomainObjectLayoutCssClassFaPage")
 @DomainObject(
         nature=Nature.VIEW_MODEL)
-@DomainObjectLayout(
-        cssClassFa = "bus")
 public class DomainObjectLayoutCssClassFaPage implements 
HasAsciiDocDescription {
 
     @ObjectSupport public String title() {
-        return "DomainObjectLayout#cssClassFa";
+        return "@DomainObjectLayout#cssClassFa";
     }
 
 }
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage.layout.xml
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage.layout.xml
index b4f853de75..db8737c04a 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage.layout.xml
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage.layout.xml
@@ -26,7 +26,16 @@
 
        <bs3:row>
                <bs3:col span="6">
+                       <bs3:row>
+                               <bs3:col span="12">
                        <cpt:fieldSet name="Other" id="other" 
unreferencedProperties="true"/>
+               </bs3:col>
+                       </bs3:row>
+                       <bs3:row>
+                               <bs3:col span="12">
+                                       <cpt:collection id="objects"/>
+                               </bs3:col>
+                       </bs3:row>
                </bs3:col>
                <bs3:col span="6">
                        <cpt:fieldSet name="Description" id="description" >
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage_objects.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage_objects.java
new file mode 100644
index 0000000000..4c75a655c5
--- /dev/null
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage_objects.java
@@ -0,0 +1,30 @@
+package demoapp.dom.domain.objects.DomainObjectLayout.cssClassFa;
+
+import demoapp.dom._infra.values.ValueHolderRepository;
+import 
demoapp.dom.domain.objects.DomainObjectLayout.cssClass.DomainObjectLayoutCssClassPage;
+import lombok.RequiredArgsConstructor;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.apache.causeway.applib.annotation.Collection;
+import org.apache.causeway.applib.annotation.CollectionLayout;
+import org.apache.causeway.applib.annotation.MemberSupport;
+
+@Collection()
+@CollectionLayout()
+@RequiredArgsConstructor
+public class DomainObjectLayoutCssClassFaPage_objects {
+
+    @SuppressWarnings("unused")
+    private final DomainObjectLayoutCssClassFaPage page;
+
+    @MemberSupport
+    public List<? extends DomainObjectLayoutCssClassFa> coll() {
+        return objectRepository.all();
+    }
+
+    @Inject ValueHolderRepository<String, ? extends 
DomainObjectLayoutCssClassFa> objectRepository;
+
+}
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClass/Status.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaRepository.java
similarity index 54%
copy from 
examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClass/Status.java
copy to 
examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaRepository.java
index 65241c98a3..aa19d1026f 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClass/Status.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaRepository.java
@@ -16,28 +16,11 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.domain.objects.DomainObjectLayout.cssClass;
+package demoapp.dom.domain.objects.DomainObjectLayout.cssClassFa;
 
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import java.util.List;
 
-import javax.inject.Named;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.DomainObjectLayout;
-import org.apache.causeway.applib.annotation.Nature;
-import org.apache.causeway.applib.annotation.ObjectSupport;
-
-//tag::class[]
-public enum Status{
-
-    NEW,
-    IN_PROGRESS,
-    COMPLETE,
-    DISCARDED
+public interface DomainObjectLayoutCssClassFaRepository {
 
+    List<? extends DomainObjectLayoutCssClassFa> allInstances();
 }
-//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClass/Status.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaSeeding.java
similarity index 54%
rename from 
examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClass/Status.java
rename to 
examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaSeeding.java
index 65241c98a3..d8acca2057 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClass/Status.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaSeeding.java
@@ -16,28 +16,23 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.domain.objects.DomainObjectLayout.cssClass;
+package demoapp.dom.domain.objects.DomainObjectLayout.cssClassFa;
 
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import demoapp.dom._infra.seed.SeedServiceAbstract;
+import demoapp.dom._infra.values.ValueHolderRepository;
 
-import javax.inject.Named;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
+import javax.inject.Inject;
 
-import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.DomainObjectLayout;
-import org.apache.causeway.applib.annotation.Nature;
-import org.apache.causeway.applib.annotation.ObjectSupport;
+import org.springframework.stereotype.Service;
 
-//tag::class[]
-public enum Status{
+@Service
+public class DomainObjectLayoutCssClassFaSeeding
+extends SeedServiceAbstract {
 
-    NEW,
-    IN_PROGRESS,
-    COMPLETE,
-    DISCARDED
+    @Inject
+    public DomainObjectLayoutCssClassFaSeeding(
+            ValueHolderRepository<String, ? extends 
DomainObjectLayoutCssClassFa> entities) {
+        super(entities);
+    }
 
 }
-//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage-description.adoc
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/jpa/DomainObjectLayoutCssClassFaJpa-description.adoc
similarity index 78%
copy from 
examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage-description.adoc
copy to 
examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/jpa/DomainObjectLayoutCssClassFaJpa-description.adoc
index a10c7a2fc6..fd96d19984 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage-description.adoc
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/jpa/DomainObjectLayoutCssClassFaJpa-description.adoc
@@ -1,6 +1,10 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-The `cssClassFa` attribute
-indicates the _FontAwesome_ CSS class to decorate a domain object.
+This object is annotated with a CSS font-awesome class of "fa-user":
+
+[source,java,indent=0]
+----
+include::../DomainObjectLayoutCssClassFa.java[tags=class]
+----
+<.> specifies "bus" CSS font-awesome style
 
-As an example, _FontAwesome_ CSS class `bus` is shown here.
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/jpa/DomainObjectLayoutCssClassFaJpa.java
similarity index 54%
copy from 
examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage.java
copy to 
examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/jpa/DomainObjectLayoutCssClassFaJpa.java
index 8fe78f5ed0..bb0598a082 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/DomainObjectLayoutCssClassFaPage.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/jpa/DomainObjectLayoutCssClassFaJpa.java
@@ -16,35 +16,48 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.domain.objects.DomainObjectLayout.cssClassFa;
+package demoapp.dom.domain.objects.DomainObjectLayout.cssClassFa.jpa;
 
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import 
demoapp.dom.domain.objects.DomainObjectLayout.cssClassFa.DomainObjectLayoutCssClassFa;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
 
 import javax.inject.Named;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
+import javax.persistence.*;
 
 import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.DomainObjectLayout;
 import org.apache.causeway.applib.annotation.Nature;
-import org.apache.causeway.applib.annotation.ObjectSupport;
+import 
org.apache.causeway.persistence.jpa.applib.integration.CausewayEntityListener;
+import org.springframework.context.annotation.Profile;
 
+@Profile("demo-jpa")
+@Entity
+@Table(
+    schema = "demo",
+    name = "DomainObjectLayoutCssClassFaJpa"
+)
+@EntityListeners(CausewayEntityListener.class)
+@Named("demo.DomainObjectLayoutCssClassFaJpa")
+@NoArgsConstructor
 //tag::class[]
-@XmlRootElement(name = "root")
-@XmlType
-@XmlAccessorType(XmlAccessType.FIELD)
-@Named("demo.DomainObjectLayoutCssClassFaVm")
-@DomainObject(
-        nature=Nature.VIEW_MODEL)
-@DomainObjectLayout(
-        cssClassFa = "bus")
-public class DomainObjectLayoutCssClassFaPage implements 
HasAsciiDocDescription {
-
-    @ObjectSupport public String title() {
-        return "DomainObjectLayout#cssClassFa";
+// ...
+@DomainObject(nature = Nature.ENTITY)
+public class DomainObjectLayoutCssClassFaJpa extends 
DomainObjectLayoutCssClassFa {
+    // ...
+//end::class[]
+
+    public DomainObjectLayoutCssClassFaJpa(String value) {
+        setName(value);
     }
 
+    @Id
+    @GeneratedValue
+    private Long id;
+
+    @Getter @Setter
+    private String name;
+
+//tag::class[]
 }
 //end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/jpa/DomainObjectLayoutCssClassFaJpaEntities.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/jpa/DomainObjectLayoutCssClassFaJpaEntities.java
new file mode 100644
index 0000000000..a4539dca57
--- /dev/null
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/cssClassFa/jpa/DomainObjectLayoutCssClassFaJpaEntities.java
@@ -0,0 +1,55 @@
+/*
+ *  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.domain.objects.DomainObjectLayout.cssClassFa.jpa;
+
+import demoapp.dom._infra.values.ValueHolderRepository;
+import 
demoapp.dom.domain.objects.DomainObjectLayout.cssClassFa.DomainObjectLayoutCssClassFa;
+import 
demoapp.dom.domain.objects.DomainObjectLayout.cssClassFa.DomainObjectLayoutCssClassFaRepository;
+
+import java.util.List;
+
+import org.springframework.context.annotation.Profile;
+import org.springframework.stereotype.Service;
+
+@Profile("demo-jpa")
+@Service
+public class DomainObjectLayoutCssClassFaJpaEntities
+extends ValueHolderRepository<String, DomainObjectLayoutCssClassFaJpa> 
implements DomainObjectLayoutCssClassFaRepository {
+
+    protected DomainObjectLayoutCssClassFaJpaEntities() {
+        super(DomainObjectLayoutCssClassFaJpa.class);
+    }
+
+    @Override
+    protected DomainObjectLayoutCssClassFaJpa newDetachedEntity(String value) {
+        return new DomainObjectLayoutCssClassFaJpa(value);
+    }
+
+    @Override
+    public List<? extends DomainObjectLayoutCssClassFa> allInstances() {
+        return all();
+    }
+
+    public List<? extends DomainObjectLayoutCssClassFa> allMatches(final 
String s) {
+        return all();
+    }
+    public List<? extends DomainObjectLayoutCssClassFa> allMatches() {
+        return all();
+    }
+}

Reply via email to