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

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

commit 1c29d95ff519b80c21194946b311016561f2426d
Author: danhaywood <[email protected]>
AuthorDate: Fri Jan 26 10:03:37 2024 +0000

    CAUSEWAY-3676: adds Grade to StaffMember
---
 .../test/domain/{StaffMember.java => Grade.java}   | 69 ++++++++--------------
 .../graphql/viewer/test/domain/StaffMember.java    | 12 +++-
 .../viewer/test/domain/StaffMemberRepository.java  |  3 +-
 3 files changed, 38 insertions(+), 46 deletions(-)

diff --git 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java
 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/Grade.java
similarity index 50%
copy from 
incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java
copy to 
incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/Grade.java
index 5116b2bb71..47732f75dd 100644
--- 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java
+++ 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/Grade.java
@@ -18,56 +18,39 @@
  */
 package org.apache.causeway.viewer.graphql.viewer.test.domain;
 
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
 import java.util.Comparator;
-
-import javax.persistence.*;
-
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.inject.Inject;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+import org.apache.causeway.applib.annotation.Action;
 import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.Editing;
 import org.apache.causeway.applib.annotation.Nature;
 import org.apache.causeway.applib.annotation.Property;
+import org.apache.causeway.applib.annotation.SemanticsOf;
 
-@Entity
-@Table(
-        schema = "public",
-        name = "StaffMember"
-)
[email protected]("university.dept.StaffMember")
-@NoArgsConstructor
-@DomainObject(nature = Nature.ENTITY, autoCompleteRepository = 
StaffMemberRepository.class, autoCompleteMethod = "findByNameMatching")
-public class StaffMember implements Comparable<StaffMember> {
-
-    public StaffMember(String name, Department department) {
-        this.name = name;
-        this.department = department;
-    }
+import static org.apache.causeway.applib.annotation.Editing.ENABLED;
 
-    @Id
-    @GeneratedValue
-    private Long id;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
 
-    @Getter @Setter
-    @Property(editing = Editing.ENABLED)
-    private String name;
-    public String validateName(String proposedName) {
-        if(proposedName.contains("!")) {
-            return "Name cannot contain '!' character";
-        }
-        return null;
-    }
+public enum Grade  {
 
-    @Getter @Setter
-    @Property
-    @ManyToOne(optional = false)
-    @JoinColumn(name = "department_id")
-    private Department department;
+    PROFESSOR,
+    READER,
+    SENIOR_LECTURER,
+    LECTURER,
+    RESEARCH_ASSISTANT,
+    ;
 
-    @Override
-    public int compareTo(final StaffMember o) {
-        return Comparator.comparing(StaffMember::getName).compare(this, o);
-    }
 }
diff --git 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java
 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java
index 5116b2bb71..aa9fb9013b 100644
--- 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java
+++ 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java
@@ -41,9 +41,13 @@ import org.apache.causeway.applib.annotation.Property;
 @DomainObject(nature = Nature.ENTITY, autoCompleteRepository = 
StaffMemberRepository.class, autoCompleteMethod = "findByNameMatching")
 public class StaffMember implements Comparable<StaffMember> {
 
-    public StaffMember(String name, Department department) {
+    public StaffMember(
+            final String name,
+            final Department department,
+            final Grade grade) {
         this.name = name;
         this.department = department;
+        this.grade = grade;
     }
 
     @Id
@@ -66,6 +70,12 @@ public class StaffMember implements Comparable<StaffMember> {
     @JoinColumn(name = "department_id")
     private Department department;
 
+
+    @Getter @Setter
+    @Property
+    private Grade grade;
+
+
     @Override
     public int compareTo(final StaffMember o) {
         return Comparator.comparing(StaffMember::getName).compare(this, o);
diff --git 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMemberRepository.java
 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMemberRepository.java
index 917f1941e7..ddbcd7d615 100644
--- 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMemberRepository.java
+++ 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMemberRepository.java
@@ -23,7 +23,6 @@ import java.util.stream.Collectors;
 
 import javax.inject.Inject;
 
-import org.springframework.lang.Nullable;
 import org.springframework.stereotype.Repository;
 
 import org.apache.causeway.applib.services.repository.RepositoryService;
@@ -34,7 +33,7 @@ public class StaffMemberRepository {
     @Inject private RepositoryService repositoryService;
 
     public StaffMember create(final String name, final Department department) {
-        StaffMember staffMember = new StaffMember(name, department);
+        StaffMember staffMember = new StaffMember(name, department, 
Grade.LECTURER);
         department.new addStaffMember().act(staffMember);
         repositoryService.persistAndFlush(staffMember);
         return staffMember;

Reply via email to