diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/others/ConnectedBean.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/others/ConnectedBean.java new file mode 100644 index 0000000..1db2536 --- /dev/null +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/others/ConnectedBean.java @@ -0,0 +1,83 @@ +package org.gcube.data_catalogue.grsf_publish_ws.json.input.others; + +import javax.validation.constraints.Size; + +import org.gcube.datacatalogue.common.Constants; +import org.json.simple.JSONObject; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Connected grsf-records bean + * @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it) + */ +public class ConnectedBean { + + @JsonProperty(Constants.CONNECTED_RECORD_SEMANTIC_IDENTIFIER_JSON_KEY) + @Size(min=1, message= Constants.CONNECTED_RECORD_SEMANTIC_IDENTIFIER_JSON_KEY + " cannot be empty") + private String semanticIdentifier; + + @JsonProperty(Constants.CONNECTED_RECORD_SHORT_NAME_JSON_KEY) + private String shortName; + + @JsonProperty(Constants.CONNECTED_RECORD_KNOWLEDGE_BASE_ID_JSON_KEY) + @Size(min=1, message= Constants.CONNECTED_RECORD_KNOWLEDGE_BASE_ID_JSON_KEY + " cannot be empty") + private String knowledeBaseId; + + public ConnectedBean() { + super(); + } + + /** + * @param semanticIdentifier + * @param shortName + * @param knowledeBaseId + */ + public ConnectedBean(String semanticIdentifier, String shortName, + String knowledeBaseId) { + super(); + this.semanticIdentifier = semanticIdentifier; + this.shortName = shortName; + this.knowledeBaseId = knowledeBaseId; + } + + public String getSemanticIdentifier() { + return semanticIdentifier; + } + + public void setSemanticIdentifier(String semanticIdentifier) { + this.semanticIdentifier = semanticIdentifier; + } + + public String getShortName() { + return shortName; + } + + public void setShortName(String shortName) { + this.shortName = shortName; + } + + public String getKnowledeBaseId() { + return knowledeBaseId; + } + + public void setKnowledeBaseId(String knowledeBaseId) { + this.knowledeBaseId = knowledeBaseId; + } + + @Override + public String toString() { + + JSONObject obj = new JSONObject(); + + obj.put(Constants.CONNECTED_RECORD_SHORT_NAME_JSON_KEY, shortName); + + if(semanticIdentifier != null && !semanticIdentifier.isEmpty()) + obj.put(Constants.CONNECTED_RECORD_SEMANTIC_IDENTIFIER_JSON_KEY, semanticIdentifier); + + obj.put(Constants.CONNECTED_RECORD_KNOWLEDGE_BASE_ID_JSON_KEY, knowledeBaseId); + + return obj.toJSONString(); + } + +} diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/Common.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/Common.java index a16f617..b2f97ea 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/Common.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/Common.java @@ -11,6 +11,7 @@ import org.gcube.data_catalogue.grsf_publish_ws.custom_annotations.CustomField; import org.gcube.data_catalogue.grsf_publish_ws.custom_annotations.Group; import org.gcube.data_catalogue.grsf_publish_ws.custom_annotations.Tag; import org.gcube.data_catalogue.grsf_publish_ws.custom_annotations.TimeSeries; +import org.gcube.data_catalogue.grsf_publish_ws.json.input.others.ConnectedBean; import org.gcube.data_catalogue.grsf_publish_ws.json.input.others.RefersToBean; import org.gcube.data_catalogue.grsf_publish_ws.json.input.others.Resource; import org.gcube.data_catalogue.grsf_publish_ws.json.input.others.SimilarRecordBean; @@ -88,17 +89,17 @@ public class Common extends Base{ @JsonProperty(Constants.SIMILAR_SOURCE_RECORDS_JSON_KEY) @CustomField(key=Constants.SIMILAR_SOURCE_RECORDS_CUSTOM_KEY) private List similarSourceRecords; - + // automatically set @CustomField(key=Constants.DOMAIN_CUSTOM_KEY) private String domain; - + @JsonProperty(Constants.UUID_KB_JSON_KEY) @CustomField(key=Constants.UUID_KB_CUSTOM_KEY) @NotNull(message="grsf_uuid cannot be null") @Size(min=1, message="grsf_uuid cannot be empty") private String uuid; - + @JsonProperty(Constants.MANAGEMENT_ENTITIES_JSON_KEY) @CustomField(key=Constants.MANAGEMENT_ENTITIES_CUSTOM_KEY) private List managementBodyAuthorities; @@ -106,7 +107,11 @@ public class Common extends Base{ @JsonProperty(Constants.SPATIAL_GEOJSON_JSON_KEY) @CustomField(key=Constants.SPATIAL_GEOJSON_CUSTOM_KEY) private String spatial; - + + @JsonProperty(Constants.CONNECTED_JSON_KEY) + @CustomField(key=Constants.CONNECTED_CUSTOM_KEY) + private List connectedBeans; + public Common() { super(); } @@ -299,6 +304,14 @@ public class Common extends Base{ this.spatial = spatial; } + public List getConnectedBeans() { + return connectedBeans; + } + + public void setConnectedBeans(List connectedBeans) { + this.connectedBeans = connectedBeans; + } + /** * Clean the semantic id * @param id @@ -327,8 +340,6 @@ public class Common extends Base{ } - - @Override public String toString() { return "Common [dataOwner=" + dataOwner + ", databaseSources=" @@ -341,7 +352,8 @@ public class Common extends Base{ + similarGRSFRecords + ", similarSourceRecords=" + similarSourceRecords + ", domain=" + domain + ", uuid=" + uuid + ", managementBodyAuthorities=" - + managementBodyAuthorities + "]"; + + managementBodyAuthorities + ", spatial=" + spatial + + ", connectedBeans=" + connectedBeans + "]"; } } \ No newline at end of file