diff --git a/.settings/.gitignore b/.settings/.gitignore
new file mode 100644
index 0000000..0924da4
--- /dev/null
+++ b/.settings/.gitignore
@@ -0,0 +1 @@
+/org.eclipse.m2e.core.prefs
diff --git a/pom.xml b/pom.xml
index 335020d..195fb46 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,14 +12,14 @@
maven-parent
org.gcube.tools
1.1.0
-
+
-
- https://code-repo.d4science.org/gCubeSystem
- 1.0
-
-
+
+ https://code-repo.d4science.org/gCubeSystem
+ 1.0
+
+
@@ -51,8 +51,12 @@
1.14.8
+
+ javax.json
+ javax.json-api
+ 1.1
+
-
@@ -62,6 +66,12 @@
4.11
+
+
+ org.glassfish
+ javax.json
+ 1.1
+
ch.qos.logback
@@ -69,7 +79,7 @@
test
-
+
\ No newline at end of file
diff --git a/src/main/java/org/gcube/application/geoportal/common/faults/JsonParseException.java b/src/main/java/org/gcube/application/geoportal/common/faults/JsonParseException.java
new file mode 100644
index 0000000..f45f8a1
--- /dev/null
+++ b/src/main/java/org/gcube/application/geoportal/common/faults/JsonParseException.java
@@ -0,0 +1,37 @@
+package org.gcube.application.geoportal.common.faults;
+
+public class JsonParseException extends Exception{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public JsonParseException() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ public JsonParseException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+ super(message, cause, enableSuppression, writableStackTrace);
+ // TODO Auto-generated constructor stub
+ }
+
+ public JsonParseException(String message, Throwable cause) {
+ super(message, cause);
+ // TODO Auto-generated constructor stub
+ }
+
+ public JsonParseException(String message) {
+ super(message);
+ // TODO Auto-generated constructor stub
+ }
+
+ public JsonParseException(Throwable cause) {
+ super(cause);
+ // TODO Auto-generated constructor stub
+ }
+
+
+
+}
diff --git a/src/main/java/org/gcube/application/geoportal/common/model/BasicJSONObject.java b/src/main/java/org/gcube/application/geoportal/common/model/BasicJSONObject.java
new file mode 100644
index 0000000..e9c8c05
--- /dev/null
+++ b/src/main/java/org/gcube/application/geoportal/common/model/BasicJSONObject.java
@@ -0,0 +1,147 @@
+package org.gcube.application.geoportal.common.model;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+import javax.json.JsonArray;
+import javax.json.JsonNumber;
+import javax.json.JsonObject;
+import javax.json.JsonString;
+import javax.json.JsonValue;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+public class BasicJSONObject implements JsonObject {
+
+ @Getter
+ private JsonObject theObject;
+
+ public String toJson() {
+ return getTheObject().toString();
+ }
+
+
+ @Override
+ public int size() {
+ return getTheObject().size();
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return getTheObject().isEmpty();
+ }
+
+ @Override
+ public boolean containsKey(Object key) {
+ return getTheObject().containsKey(key);
+ }
+
+ @Override
+ public boolean containsValue(Object value) {
+ return getTheObject().containsValue(value);
+ }
+
+ @Override
+ public JsonValue get(Object key) {
+ return getTheObject().get(key);
+ }
+
+ @Override
+ public JsonValue put(String key, JsonValue value) {
+ return getTheObject().put(key, value);
+ }
+
+ @Override
+ public JsonValue remove(Object key) {
+ return getTheObject().remove(key);
+ }
+
+ @Override
+ public void putAll(Map extends String, ? extends JsonValue> m) {
+ getTheObject().putAll(m);
+ }
+
+ @Override
+ public void clear() {
+ getTheObject().clear();
+ }
+
+ @Override
+ public Set keySet() {
+ return getTheObject().keySet();
+ }
+
+ @Override
+ public Collection values() {
+ return getTheObject().values();
+ }
+
+ @Override
+ public Set> entrySet() {
+ return getTheObject().entrySet();
+ }
+
+ @Override
+ public JsonArray getJsonArray(String name) {
+ return getTheObject().getJsonArray(name);
+ }
+
+ @Override
+ public JsonObject getJsonObject(String name) {
+ return getTheObject().getJsonObject(name);
+ }
+
+ @Override
+ public JsonNumber getJsonNumber(String name) {
+ return getTheObject().getJsonNumber(name);
+ }
+
+ @Override
+ public JsonString getJsonString(String name) {
+ return getTheObject().getJsonString(name);
+ }
+
+ @Override
+ public String getString(String name) {
+ return getTheObject().getString(name);
+ }
+
+ @Override
+ public String getString(String name, String defaultValue) {
+ return getTheObject().getString(name, defaultValue);
+ }
+
+ @Override
+ public int getInt(String name) {
+ return getTheObject().getInt(name);
+ }
+
+ @Override
+ public int getInt(String name, int defaultValue) {
+ return getTheObject().getInt(name, defaultValue);
+ }
+
+ @Override
+ public boolean getBoolean(String name) {
+ return getTheObject().getBoolean(name);
+ }
+
+ @Override
+ public boolean getBoolean(String name, boolean defaultValue) {
+ return getTheObject().getBoolean(name, defaultValue);
+ }
+
+ @Override
+ public boolean isNull(String name) {
+ return getTheObject().isNull(name);
+ }
+
+ @Override
+ public ValueType getValueType() {
+ return getTheObject().getValueType();
+ }
+
+}
diff --git a/src/main/java/org/gcube/application/geoportal/common/model/profile/DefaultCompiler.java b/src/main/java/org/gcube/application/geoportal/common/model/profile/DefaultCompiler.java
index 8a59431..43a4caf 100644
--- a/src/main/java/org/gcube/application/geoportal/common/model/profile/DefaultCompiler.java
+++ b/src/main/java/org/gcube/application/geoportal/common/model/profile/DefaultCompiler.java
@@ -1,5 +1,14 @@
package org.gcube.application.geoportal.common.model.profile;
-public class DefaultCompiler {
+import javax.json.JsonObject;
+
+import org.gcube.application.geoportal.common.model.BasicJSONObject;
+
+public class DefaultCompiler extends BasicJSONObject{
+
+ public DefaultCompiler(JsonObject theObject) {
+ super(theObject);
+ // TODO Auto-generated constructor stub
+ }
}
diff --git a/src/main/java/org/gcube/application/geoportal/common/model/profile/Field.java b/src/main/java/org/gcube/application/geoportal/common/model/profile/Field.java
index 9a5751f..36a375e 100644
--- a/src/main/java/org/gcube/application/geoportal/common/model/profile/Field.java
+++ b/src/main/java/org/gcube/application/geoportal/common/model/profile/Field.java
@@ -1,5 +1,19 @@
package org.gcube.application.geoportal.common.model.profile;
-public class Field {
+import javax.json.JsonObject;
+import org.gcube.application.geoportal.common.model.BasicJSONObject;
+
+import lombok.Getter;
+
+@Getter
+public class Field extends BasicJSONObject{
+
+ public Field(JsonObject theObject) {
+ super(theObject);
+ // TODO Auto-generated constructor stub
+ }
+
+
+
}
diff --git a/src/main/java/org/gcube/application/geoportal/common/model/profile/FieldMapping.java b/src/main/java/org/gcube/application/geoportal/common/model/profile/FieldMapping.java
index 9813a46..b8cfb3e 100644
--- a/src/main/java/org/gcube/application/geoportal/common/model/profile/FieldMapping.java
+++ b/src/main/java/org/gcube/application/geoportal/common/model/profile/FieldMapping.java
@@ -1,5 +1,14 @@
package org.gcube.application.geoportal.common.model.profile;
-public class FieldMapping {
+import javax.json.JsonObject;
+
+import org.gcube.application.geoportal.common.model.BasicJSONObject;
+
+public class FieldMapping extends BasicJSONObject {
+
+ public FieldMapping(JsonObject theObject) {
+ super(theObject);
+ // TODO Auto-generated constructor stub
+ }
}
diff --git a/src/main/java/org/gcube/application/geoportal/common/model/profile/IndexDefinition.java b/src/main/java/org/gcube/application/geoportal/common/model/profile/IndexDefinition.java
index 62cc863..8d8cd0c 100644
--- a/src/main/java/org/gcube/application/geoportal/common/model/profile/IndexDefinition.java
+++ b/src/main/java/org/gcube/application/geoportal/common/model/profile/IndexDefinition.java
@@ -1,5 +1,15 @@
package org.gcube.application.geoportal.common.model.profile;
-public class IndexDefinition {
+import javax.json.JsonObject;
+import org.gcube.application.geoportal.common.model.BasicJSONObject;
+
+public class IndexDefinition extends BasicJSONObject {
+
+ public IndexDefinition(JsonObject theObject) {
+ super(theObject);
+ // TODO Auto-generated constructor stub
+ }
+
+
}
diff --git a/src/main/java/org/gcube/application/geoportal/common/model/profile/IsoMapper.java b/src/main/java/org/gcube/application/geoportal/common/model/profile/IsoMapper.java
index adeb86d..54a7739 100644
--- a/src/main/java/org/gcube/application/geoportal/common/model/profile/IsoMapper.java
+++ b/src/main/java/org/gcube/application/geoportal/common/model/profile/IsoMapper.java
@@ -1,5 +1,15 @@
package org.gcube.application.geoportal.common.model.profile;
-public class IsoMapper {
+import javax.json.JsonObject;
+import org.gcube.application.geoportal.common.model.BasicJSONObject;
+
+public class IsoMapper extends BasicJSONObject{
+
+ public IsoMapper(JsonObject theObject) {
+ super(theObject);
+ // TODO Auto-generated constructor stub
+ }
+
+
}
diff --git a/src/main/java/org/gcube/application/geoportal/common/model/profile/Profile.java b/src/main/java/org/gcube/application/geoportal/common/model/profile/Profile.java
index ad1f461..01fae27 100644
--- a/src/main/java/org/gcube/application/geoportal/common/model/profile/Profile.java
+++ b/src/main/java/org/gcube/application/geoportal/common/model/profile/Profile.java
@@ -2,9 +2,38 @@ package org.gcube.application.geoportal.common.model.profile;
import java.util.List;
+import javax.json.JsonObject;
-public class Profile {
+import org.gcube.application.geoportal.common.faults.JsonParseException;
+import org.gcube.application.geoportal.common.model.BasicJSONObject;
+import lombok.Getter;
+
+@Getter
+public class Profile extends BasicJSONObject{
+
+
+
+ public Profile(JsonObject theObject) throws JsonParseException {
+ super(theObject);
+ name=theObject.getString("name");
+ id=theObject.getString("_id");
+// JsonArray jsonFields=theObject.getJsonArray("fields");
+// if(jsonFields==null)
+// fields=null;
+// else {
+// fields=new ArrayList();
+// for(int i= 0; i fields;
diff --git a/src/main/java/org/gcube/application/geoportal/common/model/profile/Serialization.java b/src/main/java/org/gcube/application/geoportal/common/model/profile/Serialization.java
new file mode 100644
index 0000000..774c793
--- /dev/null
+++ b/src/main/java/org/gcube/application/geoportal/common/model/profile/Serialization.java
@@ -0,0 +1,27 @@
+package org.gcube.application.geoportal.common.model.profile;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+
+import javax.json.JsonArray;
+import javax.json.JsonObject;
+
+import org.gcube.application.geoportal.common.faults.JsonParseException;
+import org.gcube.application.geoportal.common.model.BasicJSONObject;
+
+public class Serialization {
+
+
+ public static ArrayList asArray(JsonArray array,Class clazz) throws JsonParseException{
+ try {
+ ArrayList toReturn=new ArrayList();
+ if(array!=null)
+ for(int i=0;i0);
+
+ }
+
+}
diff --git a/src/test/resources/ProfileConcessioni.json b/src/test/resources/ProfileConcessioni.json
new file mode 100644
index 0000000..ed42208
--- /dev/null
+++ b/src/test/resources/ProfileConcessioni.json
@@ -0,0 +1,29 @@
+{
+ "name" : "Concessioni Profile",
+ "_id" : "",
+ "fields" :[
+ { "name" : "introduzione", "label" : "Introduzione", "type" : "STRING"},
+ { "label" : "Descrizione Contenuto", "type" : "STRING"},
+ { "label" : "Autori", "type" : "STRING", "cardinality" : "MULTIPLE"},
+ { "label" : "Contributore", "type" : "STRING"},
+ { "label" : "Titolari", "type" : "STRING", "cardinality" : "MULTIPLE"},
+
+ { "name":"relazioneScavo", "label" : "Relazione di Scavo", "type" : "DOCUMENT"},
+ { "name":"posizionameno",
+ "label" : "Posizionamento Scavo",
+ "type" : "DOCUMENT",
+ "fields":[
+ { "label" : "Descrizione Contenuto", "type" : "STRING"},
+ { "label" : "Autori", "type" : "STRING", "cardinality" : "MULTIPLE"},
+ { "label" : "Contributore", "type" : "STRING"}
+ ]
+ }
+ ],
+
+ "validators" : [
+ {"name":"Validator Concessioni",
+ "type":"JAVA",
+ "qName":"org.gcube.application.concessioni.Validator"}
+ ]
+
+}
\ No newline at end of file