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 2021/10/06 17:45:39 UTC

[isis-app-demo] 11/19: adds VisitPlusPetOwner view model

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

danhaywood pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/isis-app-demo.git

commit 2bea56259473079815513a770d7210841ead546a
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Oct 5 22:19:42 2021 +0100

    adds VisitPlusPetOwner view model
---
 .../services/homepage/VisitPlusPetOwner.java       | 48 ++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/webapp/src/main/java/petclinic/webapp/application/services/homepage/VisitPlusPetOwner.java b/webapp/src/main/java/petclinic/webapp/application/services/homepage/VisitPlusPetOwner.java
new file mode 100644
index 0000000..7ddfdbc
--- /dev/null
+++ b/webapp/src/main/java/petclinic/webapp/application/services/homepage/VisitPlusPetOwner.java
@@ -0,0 +1,48 @@
+package petclinic.webapp.application.services.homepage;
+
+import java.time.LocalDateTime;
+
+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.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.DomainObjectLayout;
+import org.apache.isis.applib.annotation.Nature;
+import org.apache.isis.applib.annotation.Projecting;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.Where;
+
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+import petclinic.modules.pets.dom.pet.Pet;
+import petclinic.modules.pets.dom.petowner.PetOwner;
+import petclinic.modules.visits.dom.visit.Visit;
+
+@DomainObject(nature=Nature.VIEW_MODEL, logicalTypeName = "petclinic.VisitPlusPetOwner")
+@DomainObjectLayout(named = "Visit")
+@XmlRootElement
+@NoArgsConstructor
+@XmlType
+@XmlAccessorType(XmlAccessType.FIELD)
+public class VisitPlusPetOwner {
+
+    @Property(
+            projecting = Projecting.PROJECTED,
+            hidden = Where.EVERYWHERE
+    )
+    @Getter
+    private Visit visit;
+
+    VisitPlusPetOwner(Visit visit) {this.visit = visit;}
+
+    public Pet getPet() {return visit.getPet();}
+    public String getReason() {return visit.getReason();}
+    public LocalDateTime getVisitAt() {return visit.getVisitAt();}
+
+    public PetOwner getPetOwner() {
+        return getPet().getPetOwner();
+    }
+}