This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch jpa-SNAPSHOT
in repository https://gitbox.apache.org/repos/asf/isis-app-simpleapp.git
The following commit(s) were added to refs/heads/jpa-SNAPSHOT by this push:
new 116be4b factors out schema and namespace
116be4b is described below
commit 116be4bb9292809bfe036c53a42439332e7166f8
Author: Dan Haywood <[email protected]>
AuthorDate: Tue Aug 2 09:54:10 2022 +0100
factors out schema and namespace
---
.../domainapp/modules/simple/SimpleModule.java | 3 +++
.../modules/simple/dom/so/SimpleObject.java | 22 ++++++++++++++++------
.../modules/simple/dom/so/SimpleObjects.java | 8 ++++----
3 files changed, 23 insertions(+), 10 deletions(-)
diff --git
a/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
b/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
index 4585b2c..5b85205 100644
--- a/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
+++ b/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
@@ -17,6 +17,9 @@ import domainapp.modules.simple.dom.so.SimpleObject;
@EntityScan(basePackageClasses = {SimpleModule.class})
public class SimpleModule implements ModuleWithFixtures {
+ public static final String NAMESPACE = "simple";
+ public static final String SCHEMA = "simple";
+
@Override
public FixtureScript getTeardownFixture() {
return new TeardownFixtureJpaAbstract() {
diff --git
a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObject.java
b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObject.java
index a65beed..f9614f4 100644
---
a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObject.java
+++
b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObject.java
@@ -3,6 +3,7 @@ package domainapp.modules.simple.dom.so;
import java.util.Comparator;
import javax.inject.Inject;
+import javax.inject.Named;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.apache.isis.applib.annotation.Action;
@@ -15,6 +16,7 @@ import org.apache.isis.applib.annotation.PropertyLayout;
import org.apache.isis.applib.annotation.Publishing;
import org.apache.isis.applib.annotation.Title;
import org.apache.isis.applib.jaxb.PersistentEntityAdapter;
+import org.apache.isis.applib.layout.LayoutConstants;
import org.apache.isis.applib.services.message.MessageService;
import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.applib.services.title.TitleService;
@@ -30,13 +32,14 @@ import lombok.Setter;
import lombok.ToString;
import lombok.val;
+import domainapp.modules.simple.SimpleModule;
import domainapp.modules.simple.types.Name;
import domainapp.modules.simple.types.Notes;
@javax.persistence.Entity
@javax.persistence.Table(
- schema="simple",
+ schema= SimpleModule.SCHEMA,
uniqueConstraints = {
@javax.persistence.UniqueConstraint(name = "SimpleObject__name__UNQ",
columnNames = {"NAME"})
}
@@ -50,7 +53,9 @@ import domainapp.modules.simple.types.Notes;
)
})
@javax.persistence.EntityListeners(IsisEntityListener.class)
-@DomainObject(logicalTypeName = "simple.SimpleObject", entityChangePublishing
= Publishing.ENABLED)
+@Named(SimpleModule.NAMESPACE +
+ ".SimpleObject")
+@DomainObject(entityChangePublishing = Publishing.ENABLED)
@DomainObjectLayout()
@NoArgsConstructor(access = AccessLevel.PUBLIC)
@XmlJavaTypeAdapter(PersistentEntityAdapter.class)
@@ -86,19 +91,21 @@ public class SimpleObject implements
Comparable<SimpleObject> {
@Name
@javax.persistence.Column(length = Name.MAX_LEN, nullable = false)
@Getter @Setter @ToString.Include
- @PropertyLayout(fieldSetId = "name", sequence = "1")
+ @PropertyLayout(fieldSetId = LayoutConstants.FieldSetId.IDENTITY, sequence
= "1")
private String name;
@Notes
@javax.persistence.Column(length = Notes.MAX_LEN, nullable = true)
@Getter @Setter
@Property(commandPublishing = Publishing.ENABLED, executionPublishing =
Publishing.ENABLED)
- @PropertyLayout(fieldSetId = "name", sequence = "2")
+ @PropertyLayout(fieldSetId = LayoutConstants.FieldSetId.DETAILS, sequence
= "2")
private String notes;
@Action(semantics = IDEMPOTENT, commandPublishing = Publishing.ENABLED,
executionPublishing = Publishing.ENABLED)
- @ActionLayout(associateWith = "name", promptStyle = PromptStyle.INLINE)
+ @ActionLayout(
+ associateWith = "name", promptStyle = PromptStyle.INLINE,
+ describedAs = "Updates the name of this object, certain characters
(" + PROHIBITED_CHARACTERS + ") are not allowed.")
public SimpleObject updateName(
@Name final String name) {
setName(name);
@@ -108,17 +115,20 @@ public class SimpleObject implements
Comparable<SimpleObject> {
return getName();
}
public String validate0UpdateName(String newName) {
- for (char prohibitedCharacter : "&%$!".toCharArray()) {
+ for (char prohibitedCharacter : PROHIBITED_CHARACTERS.toCharArray()) {
if( newName.contains(""+prohibitedCharacter)) {
return "Character '" + prohibitedCharacter + "' is not
allowed.";
}
}
return null;
}
+ static final String PROHIBITED_CHARACTERS = "&%$!";
+
@Action(semantics = NON_IDEMPOTENT_ARE_YOU_SURE)
@ActionLayout(
+ fieldSetId = LayoutConstants.FieldSetId.IDENTITY,
position = ActionLayout.Position.PANEL,
describedAs = "Deletes this object from the persistent datastore")
public void delete() {
diff --git
a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java
b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java
index 6e076d3..a124ef0 100644
---
a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java
+++
b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java
@@ -3,6 +3,7 @@ package domainapp.modules.simple.dom.so;
import java.util.List;
import javax.inject.Inject;
+import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;
@@ -20,12 +21,11 @@ import
org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.commons.functional.Try;
import org.apache.isis.persistence.jpa.applib.services.JpaSupportService;
+import domainapp.modules.simple.SimpleModule;
import domainapp.modules.simple.types.Name;
-@DomainService(
- nature = NatureOfService.VIEW,
- logicalTypeName = "simple.SimpleObjects"
-)
+@Named(SimpleModule.NAMESPACE + ".SimpleObjects")
+@DomainService(nature = NatureOfService.VIEW)
@javax.annotation.Priority(PriorityPrecedence.EARLY)
@lombok.RequiredArgsConstructor(onConstructor_ = {@Inject} )
public class SimpleObjects {