added a method

This commit is contained in:
Francesco Mangiacrapa 2021-08-02 12:52:30 +02:00
parent a134c87b6d
commit 5fbb0fa8a7
3 changed files with 169 additions and 92 deletions

View File

@ -1,45 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0"> <?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="geoportal-data-entry-app-1.3.0-SNAPSHOT"> <wb-module deploy-name="geoportal-data-entry-app-1.3.0-SNAPSHOT">
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/> <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
<dependent-module archiveName="geoportal-data-common-1.1.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/geoportal-data-common/geoportal-data-common">
<dependency-type>uses</dependency-type>
</dependent-module>
<property name="context-root" value="geoportal-data-entry-app"/> <property name="context-root" value="geoportal-data-entry-app"/>
<property name="java-output-path" value="/geoportal-data-entry-app/target/geoportal-data-entry-app-1.0.0-SNAPSHOT/WEB-INF/classes"/> <property name="java-output-path" value="/geoportal-data-entry-app/target/geoportal-data-entry-app-1.0.0-SNAPSHOT/WEB-INF/classes"/>
</wb-module> </wb-module>

View File

@ -77,12 +77,12 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
String mongoId = null; String mongoId = null;
ServiceUtil serviceUtil = new ServiceUtil(); ServiceUtil serviceUtil = new ServiceUtil();
MongoConcessioni clientMongo = null; MongoConcessioni clientMongo = null;
try { try {
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true); SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
clientMongo = serviceUtil.getInstanceMongoConcessioni(); clientMongo = serviceUtil.getInstanceMongoConcessioni();
// Saving Data // Saving Data
// Informazioni di Progetto // Informazioni di Progetto
List<GeoNaFormDataObject> list = toMap.get(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO); List<GeoNaFormDataObject> list = toMap.get(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO);
@ -96,17 +96,16 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
LOG.debug(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO + " building with client obj: " + idp); LOG.debug(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO + " building with client obj: " + idp);
Concessione concessione = ConvertToServiceModel.toConcessione(idp, user); Concessione concessione = ConvertToServiceModel.toConcessione(idp, user);
LOG.debug("Built " + ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO + " as server obj: " + concessione); LOG.debug("Built " + ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO + " as server obj: " + concessione);
//Register New Concessione
concessioneNew=clientMongo.createNew(concessione);
// Register New Concessione
concessioneNew = clientMongo.createNew(concessione);
// ABSTRACT_RELAZIONE_DI_SCAVO // ABSTRACT_RELAZIONE_DI_SCAVO
list = toMap.get(ConcessioniFormCardTitle.ABSTRACT_RELAZIONE_DI_SCAVO); list = toMap.get(ConcessioniFormCardTitle.ABSTRACT_RELAZIONE_DI_SCAVO);
if (list == null || list.isEmpty() || list.get(0) == null || list.get(0).getListGDB() == null) if (list == null || list.isEmpty() || list.get(0) == null || list.get(0).getListGDB() == null)
throw new Exception( throw new Exception(
"Error: no data found for " + ConcessioniFormCardTitle.ABSTRACT_RELAZIONE_DI_SCAVO.getTitle()); "Error: no data found for " + ConcessioniFormCardTitle.ABSTRACT_RELAZIONE_DI_SCAVO.getTitle());
listGDB = list.get(0).getListGDB(); listGDB = list.get(0).getListGDB();
GenericDatasetBean ards = listGDB.get(0); GenericDatasetBean ards = listGDB.get(0);
LOG.debug("\n\n"); LOG.debug("\n\n");
@ -125,10 +124,9 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
LOG.debug(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO + " building with client obj: " + rds); LOG.debug(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO + " building with client obj: " + rds);
RelazioneScavo relazioneDiScavo = ConvertToServiceModel.toRelazioneScavo(abstractRelazioneDiScavo, rds); RelazioneScavo relazioneDiScavo = ConvertToServiceModel.toRelazioneScavo(abstractRelazioneDiScavo, rds);
LOG.debug("Built " + ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO + " as server obj: " + relazioneDiScavo); LOG.debug("Built " + ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO + " as server obj: " + relazioneDiScavo);
//Setting Relazione // Setting Relazione
concessioneNew.setRelazioneScavo(relazioneDiScavo); concessioneNew.setRelazioneScavo(relazioneDiScavo);
// IMMAGINI_RAPPRESENTATIVE // IMMAGINI_RAPPRESENTATIVE
list = toMap.get(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE); list = toMap.get(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE);
@ -138,22 +136,23 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
List<GenericDatasetBean> imgRaprsLst = list.get(0).getListGDB(); List<GenericDatasetBean> imgRaprsLst = list.get(0).getListGDB();
List<UploadedImage> immaginiRappresentativeService = null; List<UploadedImage> immaginiRappresentativeService = null;
if(imgRaprsLst.size()>0) { if (imgRaprsLst.size() > 0) {
immaginiRappresentativeService = new ArrayList<UploadedImage>(imgRaprsLst.size()); immaginiRappresentativeService = new ArrayList<UploadedImage>(imgRaprsLst.size());
for (GenericDatasetBean imgRapr : imgRaprsLst) { for (GenericDatasetBean imgRapr : imgRaprsLst) {
LOG.debug("\n\n"); LOG.debug("\n\n");
LOG.debug(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE + " building with client obj: " + imgRapr); LOG.debug(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE + " building with client obj: "
+ imgRapr);
UploadedImage img = ConvertToServiceModel.toImmaginiRappresentative(imgRapr); UploadedImage img = ConvertToServiceModel.toImmaginiRappresentative(imgRapr);
LOG.debug("Built " + ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE + " as server obj: " + img); LOG.debug("Built " + ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE + " as server obj: " + img);
immaginiRappresentativeService.add(img); immaginiRappresentativeService.add(img);
} }
} }
//Setting Immagini Rappresentative // Setting Immagini Rappresentative
if(immaginiRappresentativeService!=null) { if (immaginiRappresentativeService != null) {
concessioneNew.setImmaginiRappresentative(immaginiRappresentativeService); concessioneNew.setImmaginiRappresentative(immaginiRappresentativeService);
} }
// POSIZIONAMENTO_DELL_AREA_DI_INDAGINE // POSIZIONAMENTO_DELL_AREA_DI_INDAGINE
list = toMap.get(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE); list = toMap.get(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE);
if (list == null || list.isEmpty() || list.get(0) == null || list.get(0).getListGDB() == null) if (list == null || list.isEmpty() || list.get(0) == null || list.get(0).getListGDB() == null)
@ -163,7 +162,7 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
listGDB = list.get(0).getListGDB(); listGDB = list.get(0).getListGDB();
GenericDatasetBean pad = listGDB.get(0); GenericDatasetBean pad = listGDB.get(0);
LayerConcessione layerPad = null; LayerConcessione layerPad = null;
if(pad!=null) { if (pad != null) {
LOG.debug("\n\n"); LOG.debug("\n\n");
LOG.debug(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " building with client obj: " LOG.debug(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " building with client obj: "
+ pad); + pad);
@ -171,9 +170,9 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
LOG.debug("Built " + ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " as server obj: " LOG.debug("Built " + ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " as server obj: "
+ layerPad); + layerPad);
} }
//Setting Posizionamento Di Scavo // Setting Posizionamento Di Scavo
if(layerPad!=null) { if (layerPad != null) {
concessioneNew.setPosizionamentoScavo(layerPad); concessioneNew.setPosizionamentoScavo(layerPad);
} }
@ -185,9 +184,9 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
listGDB = list.get(0).getListGDB(); listGDB = list.get(0).getListGDB();
List<GenericDatasetBean> listPfs = listGDB; List<GenericDatasetBean> listPfs = listGDB;
//Managing N:N // Managing N:N
List<LayerConcessione> pianteFineScavo = null; List<LayerConcessione> pianteFineScavo = null;
if(listPfs.size()>0) { if (listPfs.size() > 0) {
pianteFineScavo = new ArrayList<LayerConcessione>(listPfs.size()); pianteFineScavo = new ArrayList<LayerConcessione>(listPfs.size());
for (GenericDatasetBean pfs : listPfs) { for (GenericDatasetBean pfs : listPfs) {
LOG.debug("\n\n"); LOG.debug("\n\n");
@ -198,88 +197,98 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
} }
} }
//Setting Piante fine Scavo // Setting Piante fine Scavo
if(pianteFineScavo!=null) { if (pianteFineScavo != null) {
concessioneNew.setPianteFineScavo(pianteFineScavo); concessioneNew.setPianteFineScavo(pianteFineScavo);
} }
//Registering Meta // Registering Meta
clientMongo.replace(concessioneNew); clientMongo.replace(concessioneNew);
mongoId = concessioneNew.getMongo_id(); mongoId = concessioneNew.getMongo_id();
LOG.info("Registered the meta. Called mongo.replace for: "+concessioneNew); LOG.info("Registered the meta. Called mongo.replace for: " + concessioneNew);
//UPLOADING FILES // UPLOADING FILES
LOG.info("Now uploading the files..."); LOG.info("Now uploading the files...");
//Building TempFile for ABSTRACT DELLA RELAZIONE DI SCAVO // Building TempFile for ABSTRACT DELLA RELAZIONE DI SCAVO
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true); SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
List<TempFile> ardsFiles = serviceUtil.toTemFiles(ards.getFilesUploaded()); List<TempFile> ardsFiles = serviceUtil.toTemFiles(ards.getFilesUploaded());
//TODO MUST BE UNIFIED WITH RELAZIONE OPPURE BISOGNA PREVEDERE UN ABSTRACT_RELAZIONE??? // TODO MUST BE UNIFIED WITH RELAZIONE OPPURE BISOGNA PREVEDERE UN
if (ardsFiles!=null && ardsFiles.size() > 0) { // ABSTRACT_RELAZIONE???
if (ardsFiles != null && ardsFiles.size() > 0) {
// saving into back-end // saving into back-end
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.RELAZIONE, ardsFiles); AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.RELAZIONE, ardsFiles);
clientMongo.registerFile(mongoId, request); clientMongo.registerFile(mongoId, request);
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.RELAZIONE + "with "+ardsFiles.size()+" file/s"); LOG.info("Registered the mongoId " + mongoId + " request " + Paths.RELAZIONE + "with "
+ ardsFiles.size() + " file/s");
} }
// Building TempFile for RELAZIONE DI SCAVO // Building TempFile for RELAZIONE DI SCAVO
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true); SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
List<TempFile> files = serviceUtil.toTemFiles(rds.getFilesUploaded()); List<TempFile> files = serviceUtil.toTemFiles(rds.getFilesUploaded());
// Upload file to Concessione. Should be one file. // Upload file to Concessione. Should be one file.
if (files!=null && files.size() > 0) { if (files != null && files.size() > 0) {
// saving into back-end // saving into back-end
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.RELAZIONE, files); AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.RELAZIONE, files);
clientMongo.registerFile(mongoId, request); clientMongo.registerFile(mongoId, request);
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.RELAZIONE + "with "+files.size()+" file/s"); LOG.info("Registered the mongoId " + mongoId + " request " + Paths.RELAZIONE + "with " + files.size()
+ " file/s");
} }
//IMMAGINI RAPPRESENTATIVE // IMMAGINI RAPPRESENTATIVE
for (int i=0; i<imgRaprsLst.size(); i++) { for (int i = 0; i < imgRaprsLst.size(); i++) {
LOG.debug("\n\n"); LOG.debug("\n\n");
GenericDatasetBean imgRapr = imgRaprsLst.get(i); GenericDatasetBean imgRapr = imgRaprsLst.get(i);
// Building TempFile for Immagini // Building TempFile for Immagini
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true); SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
files = serviceUtil.toTemFiles(imgRapr.getFilesUploaded()); files = serviceUtil.toTemFiles(imgRapr.getFilesUploaded());
// Upload file to Concessione. The size is always 1 so it is consistent with the 'for' index // Upload file to Concessione. The size is always 1 so it is consistent with the
if (files!=null && files.size() > 0) { // 'for' index
if (files != null && files.size() > 0) {
// saving into back-end // saving into back-end
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.imgByIndex(i), files); AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.imgByIndex(i),
files);
clientMongo.registerFile(mongoId, request); clientMongo.registerFile(mongoId, request);
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.IMMAGINI + "with "+files.size()+" file/s"); LOG.info("Registered the mongoId " + mongoId + " request " + Paths.IMMAGINI + "with " + files.size()
+ " file/s");
} }
} }
//POSIZIONAMENTO // POSIZIONAMENTO
// Building TempFile for POSIZIONAMENTO // Building TempFile for POSIZIONAMENTO
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true); SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
files = serviceUtil.toTemFiles(pad.getFilesUploaded()); files = serviceUtil.toTemFiles(pad.getFilesUploaded());
// Upload file to Concessione // Upload file to Concessione
if (files!=null && files.size() > 0) { if (files != null && files.size() > 0) {
// saving into back-end // saving into back-end
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.POSIZIONAMENTO, files); AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.POSIZIONAMENTO,
files);
clientMongo.registerFile(mongoId, request); clientMongo.registerFile(mongoId, request);
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.POSIZIONAMENTO + "with "+files.size()+" file/s"); LOG.info("Registered the mongoId " + mongoId + " request " + Paths.POSIZIONAMENTO + "with "
+ files.size() + " file/s");
} }
//PIANTE FINE SCAVO // PIANTE FINE SCAVO
if(listPfs.size()>0) { if (listPfs.size() > 0) {
for (int i=0; i<listPfs.size(); i++) { for (int i = 0; i < listPfs.size(); i++) {
// Building TempFile for PIANTA_DI_FINE_SCAVO // Building TempFile for PIANTA_DI_FINE_SCAVO
GenericDatasetBean pfs = listPfs.get(i); GenericDatasetBean pfs = listPfs.get(i);
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true); SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
files = serviceUtil.toTemFiles(pfs.getFilesUploaded()); files = serviceUtil.toTemFiles(pfs.getFilesUploaded());
// Upload file to Concessione Section by Path 'Relazione' // Upload file to Concessione Section by Path 'Relazione'
if (files!=null && files.size() > 0) { if (files != null && files.size() > 0) {
// saving into back-end // saving into back-end
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.piantaByIndex(i), files); AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(
Paths.piantaByIndex(i), files);
clientMongo.registerFile(mongoId, request); clientMongo.registerFile(mongoId, request);
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.PIANTE + "with "+files.size()+" file/s"); LOG.info("Registered the mongoId " + mongoId + " request " + Paths.PIANTE + "with "
+ files.size() + " file/s");
} }
} }
} }
} catch (Exception e) { } catch (Exception e) {
LOG.error("Error on converting form data: ", e); LOG.error("Error on converting form data: ", e);
throw new Exception( throw new Exception(
@ -287,25 +296,25 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
} }
try { try {
Concessione concessione; Concessione concessione;
if(clientMongo!=null && mongoId!=null) { if (clientMongo != null && mongoId != null) {
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true); SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
concessione = clientMongo.publish(mongoId); concessione = clientMongo.publish(mongoId);
//server report // server report
ValidationReport report = concessione.getReport(); ValidationReport report = concessione.getReport();
LOG.info("ValidationReport: " + report); LOG.info("ValidationReport: " + report);
//to client // to client
CommitReport cRep = new CommitReport(); CommitReport cRep = new CommitReport();
//cRep.setRecordId(concessione.getId()); // cRep.setRecordId(concessione.getId());
cRep.setMongoId(concessione.getMongo_id()); cRep.setMongoId(concessione.getMongo_id());
String theJSON = serviceUtil.toJSON(report); String theJSON = serviceUtil.toJSON(report);
cRep.setReport(theJSON); cRep.setReport(theJSON);
switch (report.getStatus()) { switch (report.getStatus()) {
case PASSED: case PASSED:
cRep.setState(STATE.OK); cRep.setState(STATE.OK);
if(cRep.getMongoId()==null) { if (cRep.getMongoId() == null) {
LOG.error("The mongo id is null!!!"); LOG.error("The mongo id is null!!!");
throw new Exception("Invalid identifier (mongoId is null) for the concessione"); throw new Exception("Invalid identifier (mongoId is null) for the concessione");
} }
@ -318,20 +327,19 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
cRep.setState(STATE.ERROR); cRep.setState(STATE.ERROR);
cRep.setMsg(report.getErrorMessages().toString()); cRep.setMsg(report.getErrorMessages().toString());
break; break;
default: default:
cRep.setState(STATE.UNKNOWN); cRep.setState(STATE.UNKNOWN);
break; break;
} }
return cRep; return cRep;
}else } else
throw new Exception("MongoId or Client not found"); throw new Exception("MongoId or Client not found");
} catch (Exception e) { } catch (Exception e) {
LOG.error("Error on commiting data: ", e); LOG.error("Error on commiting data: ", e);
throw new Exception( throw new Exception("Error occurred on saving data. Error: " + e.getMessage());
"Error occurred on saving data. Error: " + e.getMessage());
} finally { } finally {
// if(manager!=null) { // if(manager!=null) {
// try { // try {
@ -390,7 +398,7 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
LOG.info("Returning: " + item); LOG.info("Returning: " + item);
return item; return item;
} }
/** /**
* Gets the links for. * Gets the links for.
* *
@ -399,19 +407,37 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
* @return the links for * @return the links for
* @throws Exception the exception * @throws Exception the exception
*/ */
//@Override // @Override
public void getListConcessioni(Integer startIdx, Integer limit) throws Exception { public void getListConcessioni(Integer start, Integer offset) throws Exception {
LOG.info("getListConcessioni called"); LOG.info("getListConcessioni called");
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true); try {
ServiceUtil serviceUtil = new ServiceUtil(); List<Concessione> listOfConcessioni = SessionUtil.getListOfConcessioni(getThreadLocalRequest());
MongoConcessioni clientMongo = serviceUtil.getInstanceMongoConcessioni(); int maxOffset = listOfConcessioni.size();
Iterable<Concessione> concessioni = clientMongo.getList(); List<Concessione> toReturn = new ArrayList<Concessione>();
if(start==null && offset==null) {
//TODO toReturn.addAll(listOfConcessioni);
LOG.info("Returning: " + concessioni); }
} if(start<0)
start=0;
if(offset>maxOffset)
offset = maxOffset;
toReturn.subList(start, offset);
for (Concessione concessione : toReturn) {
}
// TODO
//LOG.info("Returning: " + concessioni);
}catch (Exception e) {
LOG.error("Error on loading list of concessioni: ", e);
throw new Exception("Error occurred on loading list of Concessioni. Error: " + e.getMessage());
}
}
/** /**
* Pretty print client data entry map. * Pretty print client data entry map.

View File

@ -3,8 +3,14 @@
*/ */
package org.gcube.portlets.user.geoportaldataentry.server; package org.gcube.portlets.user.geoportaldataentry.server;
import javax.servlet.http.HttpServletRequest; import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.gcube.application.geoportal.common.model.legacy.Concessione;
import org.gcube.application.geoportal.common.rest.MongoConcessioni;
import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.common.portal.PortalContext; import org.gcube.common.portal.PortalContext;
import org.gcube.common.scope.api.ScopeProvider; import org.gcube.common.scope.api.ScopeProvider;
@ -29,6 +35,7 @@ import com.liferay.portal.service.UserLocalServiceUtil;
*/ */
public class SessionUtil { public class SessionUtil {
private static final String LIST_OF_CONCESSIONI = "LIST_OF_CONCESSIONI";
/** The log. */ /** The log. */
private static Logger LOG = LoggerFactory.getLogger(SessionUtil.class); private static Logger LOG = LoggerFactory.getLogger(SessionUtil.class);
@ -111,4 +118,36 @@ public class SessionUtil {
return gm.getGroup(groupId); return gm.getGroup(groupId);
} }
/**
* Gets the list of concessioni.
*
* @param httpServletRequest the http servlet request
* @return the list of concessioni
* @throws Exception the exception
*/
public static List<Concessione> getListOfConcessioni(HttpServletRequest httpServletRequest) throws Exception {
HttpSession session = httpServletRequest.getSession();
List<Concessione> listOfConcessioni = (List<Concessione>) session.getAttribute(LIST_OF_CONCESSIONI);
List<Concessione> result = new ArrayList<Concessione>();
if (listOfConcessioni == null) {
LOG.info("Loading list of concessione from client mongo");
SessionUtil.getCurrentContext(httpServletRequest, true);
ServiceUtil serviceUtil = new ServiceUtil();
MongoConcessioni clientMongo = serviceUtil.getInstanceMongoConcessioni();
Iterable<Concessione> concessioni = clientMongo.getList();
if (concessioni != null) {
for (Concessione conc : concessioni) {
result.add(conc);
}
}
LOG.debug("Got list of concessione from client mongo: "+result);
session.setAttribute(LIST_OF_CONCESSIONI, result);
LOG.info("Saved in session list of concessione from client mongo with size: "+result.size());
}
LOG.info("returning list of concessioni with size: "+result.size());
return result;
}
} }