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;
