From a776864ba7c968069193f24211fc68517a2cba5d Mon Sep 17 00:00:00 2001
From: Nicola Fulvio Calabria <nicola.calabria@inaf.it>
Date: Wed, 16 Nov 2022 17:03:21 +0100
Subject: [PATCH] added annotations to node collection classes

---
 .../datamodel/collections/NodeCollection.java    | 16 ++++++++++++++++
 ...ionsList.java => NodeCollectionsWrapper.java} | 13 +++++++++++--
 2 files changed, 27 insertions(+), 2 deletions(-)
 rename src/main/java/it/inaf/oats/vospace/datamodel/collections/{NodeCollectionsList.java => NodeCollectionsWrapper.java} (58%)

diff --git a/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeCollection.java b/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeCollection.java
index 43b3598..f3bde1c 100644
--- a/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeCollection.java
+++ b/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeCollection.java
@@ -5,15 +5,31 @@
  */
 package it.inaf.oats.vospace.datamodel.collections;
 
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+
 /**
  *
  * @author Nicola Fulvio Calabria <nicola.calabria at inaf.it>
  */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlRootElement(name = "node-collection")
 public class NodeCollection {
     
+    @XmlAttribute(name = "id", required = true)
     private Long id;
+    
+    @XmlAttribute(name = "title", required = true)
     private String title;
+    
+    @XmlAttribute(name = "owner-id", required = true)
     private String ownerId;
+    
+    public NodeCollection() {
+        // no op
+    }
         
     public NodeCollection(Long id, String title, String ownerId) {
         this.id = id;
diff --git a/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeCollectionsList.java b/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeCollectionsWrapper.java
similarity index 58%
rename from src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeCollectionsList.java
rename to src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeCollectionsWrapper.java
index 09a9d22..6f2b5d0 100644
--- a/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeCollectionsList.java
+++ b/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeCollectionsWrapper.java
@@ -7,17 +7,26 @@ package it.inaf.oats.vospace.datamodel.collections;
 
 import java.util.ArrayList;
 import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlRootElement;
 
 /**
  * Wrapper class for REST GET
  *
  * @author Nicola Fulvio Calabria <nicola.calabria at inaf.it>
  */
-public class NodeCollectionsList {
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlRootElement(name = "node-collections-wrapper")
+public class NodeCollectionsWrapper {
 
+    @XmlElementWrapper(name = "node-collections-list", required = true)
+    @XmlElement(name = "node-collection")
     private List<NodeCollection> nodeCollections;
 
-    public NodeCollectionsList() {
+    public NodeCollectionsWrapper() {
         this.nodeCollections = new ArrayList<>();
     }
 
-- 
GitLab