2020-10-07 17:04:13 +02:00
|
|
|
package org.gcube.portlets.user.geoportaldataentry.server;
|
|
|
|
|
2020-10-20 11:49:23 +02:00
|
|
|
import java.io.FileInputStream;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.HashMap;
|
2020-10-20 09:58:56 +02:00
|
|
|
import java.util.List;
|
2020-10-20 11:49:23 +02:00
|
|
|
import java.util.Map;
|
2020-10-20 09:58:56 +02:00
|
|
|
|
2020-12-01 17:35:31 +01:00
|
|
|
import org.gcube.application.geoportal.managers.ConcessioneManager;
|
|
|
|
import org.gcube.application.geoportal.managers.ManagerFactory;
|
|
|
|
import org.gcube.application.geoportal.model.InputStreamDescriptor;
|
|
|
|
import org.gcube.application.geoportal.model.concessioni.Concessione;
|
|
|
|
import org.gcube.application.geoportal.model.concessioni.LayerConcessione;
|
|
|
|
import org.gcube.application.geoportal.model.concessioni.RelazioneScavo;
|
|
|
|
import org.gcube.application.geoportal.model.content.UploadedImage;
|
|
|
|
import org.gcube.application.geoportal.model.content.WorkspaceContent;
|
|
|
|
import org.gcube.application.geoportal.model.fault.PublishException;
|
|
|
|
import org.gcube.application.geoportal.model.fault.ValidationException;
|
|
|
|
import org.gcube.application.geoportal.utils.Serialization;
|
|
|
|
import org.gcube.application.geoportalcommon.GeoportalCommon;
|
|
|
|
import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
|
2020-10-20 11:49:23 +02:00
|
|
|
import org.gcube.portlets.user.geoportaldataentry.client.ConcessioniFormCardTitle;
|
2020-10-22 16:50:14 +02:00
|
|
|
import org.gcube.portlets.user.geoportaldataentry.client.GeoportalDataEntryService;
|
2020-10-21 16:52:07 +02:00
|
|
|
import org.gcube.portlets.user.geoportaldataentry.shared.CommitReport;
|
|
|
|
import org.gcube.portlets.user.geoportaldataentry.shared.CommitReport.STATE;
|
2020-10-20 09:58:56 +02:00
|
|
|
import org.gcube.portlets.user.geoportaldataentry.shared.GeoNaFormDataObject;
|
2020-10-21 15:36:50 +02:00
|
|
|
import org.gcube.portlets.user.geoportaldataentry.shared.GeonaISConfig;
|
2020-10-20 11:49:23 +02:00
|
|
|
import org.gcube.portlets.widgets.mpformbuilder.shared.GenericDatasetBean;
|
|
|
|
import org.gcube.portlets.widgets.mpformbuilder.shared.upload.FileUploaded;
|
|
|
|
import org.gcube.vomanagement.usermanagement.model.GCubeUser;
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.LoggerFactory;
|
2020-10-07 17:04:13 +02:00
|
|
|
|
|
|
|
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The server side implementation of the RPC service.
|
2020-12-01 17:35:31 +01:00
|
|
|
*
|
|
|
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
|
|
|
*
|
|
|
|
* Dec 1, 2020
|
2020-10-07 17:04:13 +02:00
|
|
|
*/
|
|
|
|
@SuppressWarnings("serial")
|
2020-10-22 16:50:14 +02:00
|
|
|
public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implements GeoportalDataEntryService {
|
2020-12-01 17:35:31 +01:00
|
|
|
|
2020-10-21 15:36:50 +02:00
|
|
|
public static final String GEONA_GENERIC_RESOURCE_SECONDARY_TYPE = "GEONA_GENERIC_RESOURCE_SECONDARY_TYPE";
|
2020-10-22 16:50:14 +02:00
|
|
|
private static final Logger LOG = LoggerFactory.getLogger(GeoportalDataEntryServiceImpl.class);
|
2020-10-20 11:49:23 +02:00
|
|
|
|
2020-12-01 17:35:31 +01:00
|
|
|
/**
|
|
|
|
* Save geona data forms.
|
|
|
|
*
|
|
|
|
* @param listGeonaFormObjects the list geona form objects
|
|
|
|
* @return the commit report
|
|
|
|
* @throws Exception the exception
|
|
|
|
*/
|
2020-10-20 11:49:23 +02:00
|
|
|
@Override
|
2020-10-21 16:52:07 +02:00
|
|
|
public CommitReport saveGeonaDataForms(List<GeoNaFormDataObject> listGeonaFormObjects) throws Exception {
|
2020-10-20 11:49:23 +02:00
|
|
|
LOG.info("saveGeonaDataForms called");
|
2020-12-01 17:35:31 +01:00
|
|
|
|
|
|
|
HashMap<ConcessioniFormCardTitle, List<GeoNaFormDataObject>> toMap = new HashMap<ConcessioniFormCardTitle, List<GeoNaFormDataObject>>();
|
2020-10-20 11:49:23 +02:00
|
|
|
|
|
|
|
for (GeoNaFormDataObject geoNaFormDataObject : listGeonaFormObjects) {
|
|
|
|
|
|
|
|
ConcessioniFormCardTitle theType = geoNaFormDataObject.getTheType();
|
|
|
|
|
|
|
|
List<GeoNaFormDataObject> listForm = toMap.get(theType);
|
|
|
|
if (listForm == null) {
|
|
|
|
listForm = new ArrayList<GeoNaFormDataObject>();
|
|
|
|
}
|
|
|
|
|
|
|
|
listForm.add(geoNaFormDataObject);
|
|
|
|
toMap.put(theType, listForm);
|
|
|
|
}
|
2020-12-01 17:35:31 +01:00
|
|
|
if (LOG.isDebugEnabled())
|
2020-10-20 11:49:23 +02:00
|
|
|
prettyPrintClientDataEntryMap(toMap);
|
2020-12-01 17:35:31 +01:00
|
|
|
|
|
|
|
LOG.debug("Built map with form data: " + toMap);
|
|
|
|
|
2020-10-20 11:49:23 +02:00
|
|
|
GCubeUser user = SessionUtil.getCurrentUser(this.getThreadLocalRequest());
|
2020-12-01 17:35:31 +01:00
|
|
|
|
|
|
|
ConcessioneManager manager;
|
|
|
|
|
2020-10-21 16:16:53 +02:00
|
|
|
try {
|
2020-12-01 17:35:31 +01:00
|
|
|
|
|
|
|
// Saving Data
|
|
|
|
// Informazioni di Progetto
|
2020-10-21 16:16:53 +02:00
|
|
|
List<GeoNaFormDataObject> list = toMap.get(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO);
|
2020-12-01 17:35:31 +01:00
|
|
|
if (list == null || list.isEmpty() || list.get(0) == null || list.get(0).getListGDB() == null)
|
|
|
|
throw new Exception(
|
|
|
|
"Error: no data found for " + ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO.getTitle());
|
|
|
|
|
2020-10-21 16:16:53 +02:00
|
|
|
List<GenericDatasetBean> listGDB = list.get(0).getListGDB();
|
|
|
|
GenericDatasetBean idp = listGDB.get(0);
|
|
|
|
LOG.debug("\n\n");
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.debug(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO + " building with client obj: " + idp);
|
|
|
|
Concessione concessione = ConvertToServiceModel.toConcessione(idp, user);
|
|
|
|
LOG.debug("Built " + ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO + " as server obj: " + concessione);
|
|
|
|
|
|
|
|
// saving into back-end
|
|
|
|
manager = ManagerFactory.registerNew(concessione);
|
|
|
|
|
|
|
|
// RELAZIONE_DI_SCAVO
|
2020-10-21 16:16:53 +02:00
|
|
|
list = toMap.get(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO);
|
2020-12-01 17:35:31 +01:00
|
|
|
if (list == null || list.isEmpty() || list.get(0) == null || list.get(0).getListGDB() == null)
|
|
|
|
throw new Exception(
|
|
|
|
"Error: no data found for " + ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO.getTitle());
|
|
|
|
|
2020-10-21 16:16:53 +02:00
|
|
|
listGDB = list.get(0).getListGDB();
|
|
|
|
GenericDatasetBean rds = listGDB.get(0);
|
2020-10-20 11:49:23 +02:00
|
|
|
LOG.debug("\n\n");
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.debug(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO + " building with client obj: " + rds);
|
2020-10-21 16:16:53 +02:00
|
|
|
RelazioneScavo relazioneDiScavo = ConvertToServiceModel.toRelazioneScavo(rds);
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.debug("Built " + ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO + " as server obj: " + relazioneDiScavo);
|
|
|
|
// Should be only one
|
2020-10-21 16:16:53 +02:00
|
|
|
for (FileUploaded fileUploaded : rds.getFilesUploaded()) {
|
2020-10-20 11:49:23 +02:00
|
|
|
FileInputStream fis = new FileInputStream(fileUploaded.getTempSystemPath());
|
|
|
|
InputStreamDescriptor isd = new InputStreamDescriptor(fis, fileUploaded.getFileName());
|
2020-12-01 17:35:31 +01:00
|
|
|
// saving into back-end
|
2020-10-21 16:16:53 +02:00
|
|
|
manager.setRelazioneScavo(relazioneDiScavo, isd);
|
2020-10-20 11:49:23 +02:00
|
|
|
}
|
2020-12-01 17:35:31 +01:00
|
|
|
|
|
|
|
// IMMAGINI_RAPPRESENTATIVE
|
2020-10-21 16:16:53 +02:00
|
|
|
list = toMap.get(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE);
|
2020-12-01 17:35:31 +01:00
|
|
|
if (list == null || list.isEmpty() || list.get(0) == null || list.get(0).getListGDB() == null)
|
|
|
|
throw new Exception(
|
|
|
|
"Error: no data found for " + ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE.getTitle());
|
|
|
|
|
2020-10-21 16:16:53 +02:00
|
|
|
List<GenericDatasetBean> imgRaprsLst = list.get(0).getListGDB();
|
|
|
|
for (GenericDatasetBean imgRapr : imgRaprsLst) {
|
|
|
|
LOG.debug("\n\n");
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.debug(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE + " building with client obj: " + imgRapr);
|
2020-10-21 16:16:53 +02:00
|
|
|
UploadedImage img = ConvertToServiceModel.toImmaginiRappresentative(imgRapr);
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.debug("Built " + ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE + " as server obj: " + img);
|
2020-10-21 16:16:53 +02:00
|
|
|
for (FileUploaded fileUploaded : imgRapr.getFilesUploaded()) {
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.debug("Adding uploaded file: " + fileUploaded.getFileName() + " to " + img);
|
2020-10-21 16:16:53 +02:00
|
|
|
FileInputStream fis = new FileInputStream(fileUploaded.getTempSystemPath());
|
|
|
|
InputStreamDescriptor isd = new InputStreamDescriptor(fis, fileUploaded.getFileName());
|
2020-12-01 17:35:31 +01:00
|
|
|
// saving into back-end
|
|
|
|
manager.addImmagineRappresentativa(img, isd);
|
2020-10-21 16:16:53 +02:00
|
|
|
}
|
|
|
|
}
|
2020-12-01 17:35:31 +01:00
|
|
|
|
|
|
|
// POSIZIONAMENTO_DELL_AREA_DI_INDAGINE
|
2020-10-21 16:16:53 +02:00
|
|
|
list = toMap.get(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE);
|
2020-12-01 17:35:31 +01:00
|
|
|
if (list == null || list.isEmpty() || list.get(0) == null || list.get(0).getListGDB() == null)
|
|
|
|
throw new Exception("Error: no data found for "
|
|
|
|
+ ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE.getTitle());
|
|
|
|
|
2020-10-21 16:16:53 +02:00
|
|
|
listGDB = list.get(0).getListGDB();
|
|
|
|
GenericDatasetBean pad = listGDB.get(0);
|
|
|
|
LOG.debug("\n\n");
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.debug(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " building with client obj: "
|
|
|
|
+ pad);
|
2020-10-21 16:16:53 +02:00
|
|
|
LayerConcessione layerPad = ConvertToServiceModel.toLayerConcessione(pad);
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.debug("Built " + ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " as server obj: "
|
|
|
|
+ layerPad);
|
2020-10-21 16:16:53 +02:00
|
|
|
for (FileUploaded fileUploaded : pad.getFilesUploaded()) {
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.debug("Adding uploaded file: " + fileUploaded.getFileName() + " to " + layerPad);
|
2020-10-21 16:16:53 +02:00
|
|
|
FileInputStream fis = new FileInputStream(fileUploaded.getTempSystemPath());
|
|
|
|
InputStreamDescriptor isd = new InputStreamDescriptor(fis, fileUploaded.getFileName());
|
2020-12-01 17:35:31 +01:00
|
|
|
// saving into back-end
|
2020-10-21 16:16:53 +02:00
|
|
|
manager.setPosizionamento(layerPad, isd);
|
|
|
|
}
|
2020-12-01 17:35:31 +01:00
|
|
|
|
|
|
|
// PIANTA_DI_FINE_SCAVO
|
2020-10-21 16:16:53 +02:00
|
|
|
list = toMap.get(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO);
|
2020-12-01 17:35:31 +01:00
|
|
|
if (list == null || list.isEmpty() || list.get(0) == null || list.get(0).getListGDB() == null)
|
|
|
|
throw new Exception(
|
|
|
|
"Error: no data found for " + ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO.getTitle());
|
|
|
|
|
2020-10-21 16:16:53 +02:00
|
|
|
listGDB = list.get(0).getListGDB();
|
|
|
|
GenericDatasetBean pfs = listGDB.get(0);
|
|
|
|
LOG.debug("\n\n");
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.debug(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO + " building with client obj: " + pfs);
|
2020-10-21 16:16:53 +02:00
|
|
|
LayerConcessione layerPfs = ConvertToServiceModel.toLayerConcessione(pfs);
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.debug("Built " + ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO + " as server obj: " + layerPfs);
|
2020-10-21 16:16:53 +02:00
|
|
|
for (FileUploaded fileUploaded : pfs.getFilesUploaded()) {
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.debug("Adding uploaded file: " + fileUploaded.getFileName() + " to " + layerPfs);
|
2020-10-21 16:16:53 +02:00
|
|
|
FileInputStream fis = new FileInputStream(fileUploaded.getTempSystemPath());
|
|
|
|
InputStreamDescriptor isd = new InputStreamDescriptor(fis, fileUploaded.getFileName());
|
2020-12-01 17:35:31 +01:00
|
|
|
// saving into back-end
|
|
|
|
manager.addPiantaFineScavo(layerPfs, isd);
|
2020-10-21 16:16:53 +02:00
|
|
|
}
|
2020-12-01 17:35:31 +01:00
|
|
|
} catch (Exception e) {
|
|
|
|
LOG.error("Error on converting form data: ", e);
|
|
|
|
throw new Exception(
|
|
|
|
"Error occurred on saving data, try again or contact the support. Error: " + e.getMessage());
|
2020-10-20 11:49:23 +02:00
|
|
|
}
|
2020-10-30 15:37:08 +01:00
|
|
|
|
2020-10-21 16:16:53 +02:00
|
|
|
try {
|
2020-12-01 17:35:31 +01:00
|
|
|
|
|
|
|
// If true -> data are published into the SDI
|
|
|
|
Boolean publish = true;
|
|
|
|
Concessione registered = manager.commit(publish);
|
|
|
|
LOG.info("Registered: " + registered);
|
|
|
|
String link = null;
|
|
|
|
try {
|
|
|
|
link = ((WorkspaceContent) registered.getRelazioneScavo().getActualContent().get(0)).getLink();
|
|
|
|
} catch (Exception e) {
|
|
|
|
LOG.warn("Not able to check public link ", e);
|
|
|
|
}
|
|
|
|
|
|
|
|
// String link = "toTest";
|
|
|
|
CommitReport cRep = new CommitReport();
|
|
|
|
cRep.setRecordId(registered.getId());
|
|
|
|
if (link != null) {
|
|
|
|
cRep.setState(STATE.OK);
|
|
|
|
cRep.setMsg("Project saved successfully");
|
|
|
|
} else {
|
|
|
|
cRep.setState(STATE.WARN);
|
|
|
|
cRep.setMsg("Project saved with errors");
|
|
|
|
}
|
|
|
|
|
2020-10-21 16:52:07 +02:00
|
|
|
return cRep;
|
2020-12-01 17:35:31 +01:00
|
|
|
} catch (ValidationException e1) {
|
|
|
|
LOG.error("Error on validating data: ", e1);
|
|
|
|
throw new Exception("Error on validating data: " + Serialization.prettyPrint(e1.getReport()));
|
|
|
|
} catch (PublishException e2) {
|
|
|
|
LOG.error("Error on publishing data: ", e2);
|
|
|
|
throw new Exception("Error on publishing data: " + e2.getMessage());
|
|
|
|
} catch (Exception e) {
|
|
|
|
LOG.error("Error on commiting data: ", e);
|
|
|
|
throw new Exception(
|
|
|
|
"Error occurred on saving data, try again or contact the support. Error: " + e.getMessage());
|
|
|
|
} finally {
|
2020-10-30 15:37:08 +01:00
|
|
|
// if(manager!=null) {
|
|
|
|
// try {
|
|
|
|
// manager.shutdown();
|
|
|
|
// }catch (Exception e) {
|
|
|
|
// //silent
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// }
|
2020-10-20 17:43:47 +02:00
|
|
|
}
|
2020-12-01 17:35:31 +01:00
|
|
|
|
2020-10-20 11:49:23 +02:00
|
|
|
}
|
2020-12-01 17:35:31 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets the geona init config.
|
|
|
|
*
|
|
|
|
* @return the geona init config
|
|
|
|
*/
|
2020-10-21 15:36:50 +02:00
|
|
|
@Override
|
|
|
|
public GeonaISConfig getGeonaInitConfig() {
|
|
|
|
LOG.info("getConfig called");
|
2020-12-01 17:35:31 +01:00
|
|
|
|
2020-10-21 15:36:50 +02:00
|
|
|
String scope = SessionUtil.getCurrentContext(this.getThreadLocalRequest(), false);
|
|
|
|
String theSecondaryType;
|
|
|
|
try {
|
|
|
|
theSecondaryType = this.getServletContext().getInitParameter(GEONA_GENERIC_RESOURCE_SECONDARY_TYPE);
|
|
|
|
} catch (Exception e) {
|
|
|
|
LOG.error("I cannot read the init parameter for: " + GEONA_GENERIC_RESOURCE_SECONDARY_TYPE, e);
|
|
|
|
theSecondaryType = "GeoNaMetadata";
|
|
|
|
}
|
|
|
|
|
2020-11-03 12:14:57 +01:00
|
|
|
// LOG.warn("\n\n\nHARD-CABLING THE SCOPE, PLEASE REMOTE IT!!!!\n\n\n");
|
|
|
|
// scope = "/gcube/devsec/devVRE";
|
2020-12-01 17:35:31 +01:00
|
|
|
|
2020-10-21 15:36:50 +02:00
|
|
|
GeonaISConfig configs = new GeonaISConfig(theSecondaryType, scope);
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.info("returning config: " + configs);
|
2020-10-21 15:36:50 +02:00
|
|
|
return configs;
|
|
|
|
}
|
2020-12-01 17:35:31 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets the links for.
|
|
|
|
*
|
|
|
|
* @param itemId the item id
|
|
|
|
* @param recordType the record type
|
|
|
|
* @return the links for
|
|
|
|
* @throws Exception the exception
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public GeoNaItemRef getLinksFor(Long itemId, String recordType) throws Exception {
|
|
|
|
LOG.info("getLinksFor called");
|
|
|
|
|
|
|
|
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
|
|
|
|
GeoportalCommon gc = new GeoportalCommon();
|
|
|
|
GeoNaItemRef item = new GeoNaItemRef(itemId, recordType);
|
|
|
|
item = gc.getPublicLinksFor(item);
|
|
|
|
LOG.info("Returning: " + item);
|
|
|
|
return item;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Pretty print client data entry map.
|
|
|
|
*
|
|
|
|
* @param toMap the to map
|
|
|
|
*/
|
2020-10-20 11:49:23 +02:00
|
|
|
private void prettyPrintClientDataEntryMap(HashMap<ConcessioniFormCardTitle, List<GeoNaFormDataObject>> toMap) {
|
2020-12-01 17:35:31 +01:00
|
|
|
|
2020-10-20 11:49:23 +02:00
|
|
|
for (ConcessioniFormCardTitle theType : toMap.keySet()) {
|
2020-10-20 15:25:26 +02:00
|
|
|
LOG.debug("\n\n");
|
|
|
|
LOG.debug(theType.toString());
|
2020-10-20 11:49:23 +02:00
|
|
|
List<GeoNaFormDataObject> list = toMap.get(theType);
|
|
|
|
for (GeoNaFormDataObject geoNaFormDataObject : list) {
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.debug("\t has " + geoNaFormDataObject.getListGDB().size() + " data bean/s");
|
2020-10-20 11:49:23 +02:00
|
|
|
int i = 0;
|
|
|
|
for (GenericDatasetBean gbd : geoNaFormDataObject.getListGDB()) {
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.debug("\t " + ++i + ") " + GenericDatasetBean.class.getSimpleName() + " entries:");
|
2020-10-20 11:49:23 +02:00
|
|
|
Map<String, List<String>> map = gbd.getFormDataEntryFields();
|
|
|
|
for (String keyEntry : map.keySet()) {
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.debug("\t " + keyEntry + ": " + map.get(keyEntry));
|
2020-10-20 11:49:23 +02:00
|
|
|
}
|
|
|
|
for (FileUploaded fup : gbd.getFilesUploaded()) {
|
2020-12-01 17:35:31 +01:00
|
|
|
LOG.debug("\t " + fup);
|
2020-10-20 11:49:23 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2020-10-07 17:04:13 +02:00
|
|
|
}
|