Deserialization of layers done

This commit is contained in:
Francesco Mangiacrapa 2022-10-14 15:22:54 +02:00
parent 805a3171e2
commit ae92ea0c3d
12 changed files with 135 additions and 23 deletions

View File

@ -42,7 +42,7 @@ import org.gcube.application.geoportalcommon.shared.geoportal.config.FilePathDV;
import org.gcube.application.geoportalcommon.shared.geoportal.config.GcubeProfileDV; import org.gcube.application.geoportalcommon.shared.geoportal.config.GcubeProfileDV;
import org.gcube.application.geoportalcommon.shared.geoportal.config.ItemFieldDV; import org.gcube.application.geoportalcommon.shared.geoportal.config.ItemFieldDV;
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.IndexLayerDV; import org.gcube.application.geoportalcommon.shared.geoportal.materialization.IndexLayerDV;
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.PayloadDV; import org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject.PayloadDV;
import org.gcube.application.geoportalcommon.shared.geoportal.project.AccessDV; import org.gcube.application.geoportalcommon.shared.geoportal.project.AccessDV;
import org.gcube.application.geoportalcommon.shared.geoportal.project.AccountingInfoDV; import org.gcube.application.geoportalcommon.shared.geoportal.project.AccountingInfoDV;
import org.gcube.application.geoportalcommon.shared.geoportal.project.BasicLifecycleInformationDV; import org.gcube.application.geoportalcommon.shared.geoportal.project.BasicLifecycleInformationDV;

View File

@ -7,11 +7,15 @@ import java.io.InputStream;
import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller; import javax.xml.bind.Unmarshaller;
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.GeoServerPlatformInfoDV;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.module.SimpleModule;
@ -87,5 +91,18 @@ public class SerializerUtil {
return null; return null;
} }
} }
public static class GeoserverPlaformInfoJsonDeserializer extends JsonDeserializer<GeoServerPlatformInfoDV[]> {
@Override
public GeoServerPlatformInfoDV[] deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
LOG.info("Sono qui: " +jp.getValueAsString());
return jp.readValueAs(GeoServerPlatformInfoDV[].class);
//return jp.readValueAs(GeoServerPlatformInfoDV[].class);
//List<GeoServerPlatformInfoDV> listPlatform = jp.readValueAs(new TypeReference<List<GeoServerPlatformInfoDV>>() {});
}
}
} }

View File

@ -4,9 +4,12 @@ import java.io.Serializable;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject.BBOXDV;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
public class GCubeSDILayerDV implements Serializable {
public class GCubeSDILayer implements Serializable {
// TODO manage heterogeneus collection // TODO manage heterogeneus collection
@ -23,7 +26,7 @@ public class GCubeSDILayerDV implements Serializable {
@JsonProperty(value = "_ogcLinks") @JsonProperty(value = "_ogcLinks")
private HashMap<String, String> ogcLinks; private HashMap<String, String> ogcLinks;
public GCubeSDILayerDV() { public GCubeSDILayer() {
} }
@ -62,7 +65,7 @@ public class GCubeSDILayerDV implements Serializable {
@Override @Override
public String toString() { public String toString() {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.append("GCubeSDILayerDV [type="); builder.append("GCubeSDILayer [type=");
builder.append(type); builder.append(type);
builder.append(", platformInfos="); builder.append(", platformInfos=");
builder.append(platformInfos); builder.append(platformInfos);

View File

@ -0,0 +1,56 @@
package org.gcube.application.geoportalcommon.shared.geoportal.materialization;
import java.io.Serializable;
import java.util.HashMap;
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject.BBOXDV;
public class GCubeSDIViewerLayerDV implements Serializable {
private static final long serialVersionUID = 7987868754775312895L;
private String type;
private BBOXDV bbox;
private HashMap<String, String> ogcLinks;
public GCubeSDIViewerLayerDV() {
}
public String getType() {
return type;
}
public BBOXDV getBbox() {
return bbox;
}
public HashMap<String, String> getOgcLinks() {
return ogcLinks;
}
public void setType(String type) {
this.type = type;
}
public void setBbox(BBOXDV bbox) {
this.bbox = bbox;
}
public void setOgcLinks(HashMap<String, String> ogcLinks) {
this.ogcLinks = ogcLinks;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("GCubeSDIViewerLayerDV [type=");
builder.append(type);
builder.append(", bbox=");
builder.append(bbox);
builder.append(", ogcLinks=");
builder.append(ogcLinks);
builder.append("]");
return builder.toString();
}
}

View File

@ -17,14 +17,14 @@ public class GeoServerPlatformInfoDV implements Serializable {
private String workspace; private String workspace;
private String storeName; private String storeName;
public GeoServerPlatformInfoDV() {
}
@JsonProperty(value = "_host") @JsonProperty(value = "_host")
private String host; private String host;
private Map<String, String> ogcLinks; private Map<String, String> ogcLinks;
public GeoServerPlatformInfoDV() {
}
public String getType() { public String getType() {
return type; return type;
} }

View File

@ -13,7 +13,7 @@ public class IndexLayerDV implements Serializable {
@JsonProperty(value = "_type") @JsonProperty(value = "_type")
private String type; private String type;
private GCubeSDILayerDV layer; private GCubeSDILayer layer;
private String indexName; private String indexName;
private int records; private int records;
private String flag; private String flag;
@ -30,11 +30,11 @@ public class IndexLayerDV implements Serializable {
this.type = type; this.type = type;
} }
public GCubeSDILayerDV getLayer() { public GCubeSDILayer getLayer() {
return layer; return layer;
} }
public void setLayer(GCubeSDILayerDV layer) { public void setLayer(GCubeSDILayer layer) {
this.layer = layer; this.layer = layer;
} }

View File

@ -1,4 +1,4 @@
package org.gcube.application.geoportalcommon.shared.geoportal.materialization; package org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject;
import java.util.HashMap; import java.util.HashMap;

View File

@ -1,4 +1,4 @@
package org.gcube.application.geoportalcommon.shared.geoportal.materialization; package org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -1,4 +1,4 @@
package org.gcube.application.geoportalcommon.shared.geoportal.materialization; package org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject;
import java.io.Serializable; import java.io.Serializable;

View File

@ -0,0 +1,7 @@
package org.gcube.application.geoportalcommon.shared.geoportal.view;
public interface CheckEmpty {
public boolean isEmpty();
}

View File

@ -4,7 +4,7 @@ import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class SectionView implements Serializable { public class SectionView implements Serializable, CheckEmpty {
/** /**
* *
@ -17,6 +17,19 @@ public class SectionView implements Serializable {
public SectionView() { public SectionView() {
} }
public boolean isEmpty(){
if (listSubDocuments == null)
return true;
for (SubDocumentView subDocumentView : listSubDocuments) {
boolean isEmpty = subDocumentView.isEmpty();
if(isEmpty)
return true;
}
return false;
}
public String getSectionTitle() { public String getSectionTitle() {
return sectionTitle; return sectionTitle;

View File

@ -3,12 +3,11 @@ package org.gcube.application.geoportalcommon.shared.geoportal.view;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.FilesetDV; import org.gcube.application.geoportalcommon.shared.geoportal.materialization.GCubeSDIViewerLayerDV;
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.GCubeSDILayerDV; import org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject.FilesetDV;
public class SubDocumentView implements Serializable, CheckEmpty {
public class SubDocumentView implements Serializable {
/** /**
* *
*/ */
@ -18,12 +17,30 @@ public class SubDocumentView implements Serializable {
private List<FilesetDV> listFiles; private List<FilesetDV> listFiles;
private List<FilesetDV> listImages; private List<FilesetDV> listImages;
private List<GCubeSDILayerDV> listLayers; private List<GCubeSDIViewerLayerDV> listLayers;
public SubDocumentView() { public SubDocumentView() {
} }
@Override
public boolean isEmpty() {
if (metadataAsJSON != null && !metadataAsJSON.isEmpty())
return false;
if (listFiles != null && !listFiles.isEmpty())
return false;
if (listImages != null && !listImages.isEmpty())
return false;
if (listLayers != null && !listLayers.isEmpty())
return false;
return true;
}
public String getMetadataAsJSON() { public String getMetadataAsJSON() {
return metadataAsJSON; return metadataAsJSON;
} }
@ -36,7 +53,7 @@ public class SubDocumentView implements Serializable {
return listImages; return listImages;
} }
public List<GCubeSDILayerDV> getListLayers() { public List<GCubeSDIViewerLayerDV> getListLayers() {
return listLayers; return listLayers;
} }
@ -52,7 +69,7 @@ public class SubDocumentView implements Serializable {
this.listImages = listImages; this.listImages = listImages;
} }
public void setListLayers(List<GCubeSDILayerDV> listLayers) { public void setListLayers(List<GCubeSDIViewerLayerDV> listLayers) {
this.listLayers = listLayers; this.listLayers = listLayers;
} }
@ -71,5 +88,4 @@ public class SubDocumentView implements Serializable {
return builder.toString(); return builder.toString();
} }
} }