From f0490588ce0efccd2a6e177fa5c965b15e336c2e Mon Sep 17 00:00:00 2001
From: Nicola Fulvio Calabria <nicola.calabria@inaf.it>
Date: Tue, 28 Mar 2023 22:46:31 +0200
Subject: [PATCH] added collection utilities

---
 .../datamodel/collections/NodeCollection.java |  2 +-
 .../collections/NodeCollectionsWrapper.java   |  6 +--
 .../datamodel/collections/NodeDetails.java    | 47 +++++++++++++++++++
 .../collections/NodeDetailsWrapper.java       | 41 ++++++++++++++++
 4 files changed, 92 insertions(+), 4 deletions(-)
 create mode 100644 src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeDetails.java
 create mode 100644 src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeDetailsWrapper.java

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 f3bde1c..fd23829 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
@@ -1,5 +1,5 @@
 /*
- * This file is part of vospace-rest
+ * This file is part of vospace-datamodel
  * Copyright (C) 2021 Istituto Nazionale di Astrofisica
  * SPDX-License-Identifier: GPL-3.0-or-later
  */
diff --git a/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeCollectionsWrapper.java b/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeCollectionsWrapper.java
index 6f2b5d0..c450510 100644
--- a/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeCollectionsWrapper.java
+++ b/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeCollectionsWrapper.java
@@ -1,7 +1,7 @@
 /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
+ * This file is part of vospace-datamodel
+ * Copyright (C) 2021 Istituto Nazionale di Astrofisica
+ * SPDX-License-Identifier: GPL-3.0-or-later
  */
 package it.inaf.oats.vospace.datamodel.collections;
 
diff --git a/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeDetails.java b/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeDetails.java
new file mode 100644
index 0000000..885c3e5
--- /dev/null
+++ b/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeDetails.java
@@ -0,0 +1,47 @@
+/*
+ * This file is part of vospace-datamodel
+ * Copyright (C) 2021 Istituto Nazionale di Astrofisica
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+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-details")
+public class NodeDetails {
+
+    @XmlAttribute(name = "node-id", required = true)
+    private Long nodeId;
+
+    @XmlAttribute(name = "node-vos-path", required = true)
+    private String nodeVosPath;
+
+    public NodeDetails() {
+        // no op       
+    }
+
+    public Long getNodeId() {
+        return nodeId;
+    }
+
+    public void setNodeId(Long nodeId) {
+        this.nodeId = nodeId;
+    }
+
+    public String getNodeVosPath() {
+        return nodeVosPath;
+    }
+
+    public void setNodeVosPath(String nodeVosPath) {
+        this.nodeVosPath = nodeVosPath;
+    }
+
+}
diff --git a/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeDetailsWrapper.java b/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeDetailsWrapper.java
new file mode 100644
index 0000000..7fa30e6
--- /dev/null
+++ b/src/main/java/it/inaf/oats/vospace/datamodel/collections/NodeDetailsWrapper.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of vospace-datamodel
+ * Copyright (C) 2021 Istituto Nazionale di Astrofisica
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+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>
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlRootElement(name = "node-details-wrapper")
+public class NodeDetailsWrapper {
+
+    @XmlElementWrapper(name = "node-details-list", required = true)
+    @XmlElement(name = "node-details")
+    private List<NodeDetails> nodeDetails;
+
+    public NodeDetailsWrapper() {
+        nodeDetails = new ArrayList<NodeDetails>();
+    }
+
+    public List<NodeDetails> getNodeDetails() {
+        return nodeDetails;
+    }
+
+    public void setNodeDetails(List<NodeDetails> nodeDetails) {
+        this.nodeDetails = nodeDetails;
+    }
+
+}
-- 
GitLab