package org.gcube.application.geoportal.service.engine.legacy; import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.gcube.application.geoportal.model.InputStreamDescriptor; import org.gcube.application.geoportal.model.db.DBConstants; import org.gcube.application.geoportal.model.db.PostgisTable; import org.gcube.application.geoportal.model.fault.SDIInteractionException; import org.gcube.application.geoportal.service.model.legacy.concessioni.Concessione; import org.gcube.application.geoportal.service.model.legacy.concessioni.LayerConcessione; import org.gcube.application.geoportal.service.model.legacy.concessioni.RelazioneScavo; import org.gcube.application.geoportal.service.model.legacy.concessioni.UploadedImage; import org.gcube.application.geoportal.service.utils.Serialization; import org.gcube.application.geoportal.storage.SDIManager; import lombok.extern.slf4j.Slf4j; @Slf4j public class LegacyConcessioniManager extends AbstractRecordManager { public LegacyConcessioniManager(Concessione theRecord) { super(theRecord); } @Override protected PostgisTable getCentroidsTable() { return DBConstants.Concessioni.CENTROIDS; } @Override protected void initCentroidLayer() throws SDIInteractionException { log.debug("Checking for centroid layer configuration.. "); SDIManager sdiManager=new SDIManager(); sdiManager.configureCentroidLayer("centroids_concessioni", "gna", "gna_postgis"); } public Concessione setRelazioneScavo(RelazioneScavo rel, InputStreamDescriptor theFile) throws IOException { ContentHandler handler=getContentHandler(); //Check if already stored content Concessione record=getRecord(); if(record.getRelazioneScavo()!=null && !record.getRelazioneScavo().getActualContent().isEmpty()) { handler.dispose(record.getRelazioneScavo()); } rel.setRecord(record); //Register relazione record.setRelazioneScavo(rel); handler.register(rel, theFile); return record; } public Concessione addImmagineRappresentativa(UploadedImage img, InputStreamDescriptor theFile) throws IOException { ContentHandler handler=getContentHandler(); Concessione record=getRecord(); //Add immagine img.setRecord(record); record.getImmaginiRappresentative().add(img); handler.register(img, theFile); return record; } // public Concessione disposeImmagineRappresentativa(UploadedImage img, InputStream theFile) { // if(concessione.) // } public Concessione setPosizionamento(LayerConcessione layer, InputStreamDescriptor...inputStreams ) throws IOException { ContentHandler handler=getContentHandler(); //Check if already stored content Concessione record=getRecord(); if(record.getPosizionamentoScavo()!=null && !record.getPosizionamentoScavo().getActualContent().isEmpty()) handler.dispose(record.getPosizionamentoScavo()); layer.setRecord(record); //Register posizionamneot record.setPosizionamentoScavo(layer); handler.register(layer, inputStreams); return record; } public Concessione addPiantaFineScavo(LayerConcessione layer, InputStreamDescriptor...inputStreams ) throws IOException { ContentHandler handler=getContentHandler(); Concessione record=getRecord(); //Add pianta layer.setRecord(record); record.getPianteFineScavo().add(layer); handler.register(layer, inputStreams); return record; } @Override protected Map evaluateCentroid(){ Concessione record=getRecord(); // CENTROID Map centroidsRow=new HashMap(); centroidsRow.put(DBConstants.Concessioni.PRODUCT_ID, record.getId()+""); centroidsRow.put(DBConstants.Concessioni.ANNO, record.getDataInizioProgetto().getYear()+""); centroidsRow.put(DBConstants.Concessioni.NOME, record.getNome()); centroidsRow.put(DBConstants.Concessioni.REGIONE, ""); //TODO centroidsRow.put(DBConstants.Defaults.XCOORD_FIELD, record.getCentroidLong()+""); centroidsRow.put(DBConstants.Defaults.YCOORD_FIELD, record.getCentroidLat()+""); //Updated Schema centroidsRow.put(DBConstants.Concessioni.DESCRIZIONE,record.getIntroduzione()); centroidsRow.put(DBConstants.Concessioni.CONTENUTO,record.getDescrizioneContenuto()); centroidsRow.put(DBConstants.Concessioni.AUTORE,Serialization.asString(record.getAuthors())); centroidsRow.put(DBConstants.Concessioni.CONTRIBUTORE,record.getContributore()); centroidsRow.put(DBConstants.Concessioni.TITOLARE,Serialization.asString(record.getTitolari())); centroidsRow.put(DBConstants.Concessioni.RESPONSABILE,record.getResponsabile()); centroidsRow.put(DBConstants.Concessioni.EDITORE,record.getEditore()); centroidsRow.put(DBConstants.Concessioni.FINANZIAMENTO,Serialization.asString(record.getFontiFinanziamento())); centroidsRow.put(DBConstants.Concessioni.SOGGETTO,Serialization.asString(record.getSoggetto())); centroidsRow.put(DBConstants.Concessioni.RISORSE,Serialization.asString(record.getRisorseCorrelate())); centroidsRow.put(DBConstants.Concessioni.DATE_SCAVO,Serialization.FULL_FORMATTER.format(record.getDataFineProgetto())); centroidsRow.put(DBConstants.Concessioni.DATA_ARCHIVIAZIONE,Serialization.FULL_FORMATTER.format(record.getLastUpdateTime())); centroidsRow.put(DBConstants.Concessioni.VERSIONE,record.getVersion()); centroidsRow.put(DBConstants.Concessioni.LICENZA,record.getLicenzaID()); centroidsRow.put(DBConstants.Concessioni.TITOLARE_LICENZA,record.getTitolareLicenza()); centroidsRow.put(DBConstants.Concessioni.ACCESSO,record.getPolicy().toString()); centroidsRow.put(DBConstants.Concessioni.PAROLE_CHIAVE,Serialization.asString(record.getParoleChiaveLibere())); return centroidsRow; } }