gcube-cms-suite/concessioni-model/src/main/java/org/gcube/application/cms/custom/gna/concessioni/model/ProfiledConcessione.java

119 lines
5.9 KiB
Java
Raw Normal View History

2022-01-12 18:42:22 +01:00
package org.gcube.application.cms.custom.gna.concessioni.model;
2022-01-14 12:31:11 +01:00
import org.bson.BsonDocument;
import org.bson.BsonString;
import org.bson.BsonValue;
import org.bson.Document;
import org.gcube.application.geoportal.common.model.document.Access;
import org.gcube.application.geoportal.common.model.document.AccessPolicy;
2022-01-12 18:42:22 +01:00
import org.gcube.application.geoportal.common.model.document.ProfiledDocument;
2022-01-14 12:31:11 +01:00
import org.gcube.application.geoportal.common.model.document.RegisteredFileSet;
import org.gcube.application.geoportal.common.model.legacy.AbstractRelazione;
import org.gcube.application.geoportal.common.model.legacy.report.Check;
import org.gcube.application.geoportal.common.model.legacy.report.ConstraintCheck;
import java.util.List;
2022-01-12 18:42:22 +01:00
public class ProfiledConcessione extends ProfiledDocument {
2022-01-14 12:31:11 +01:00
public static final String NOME="nome";
//Introduzione (descrizione del progetto)
public final static String INTRODUZIONE = "introduzione";
//Descrizione del contenuto
public final static String DSCRIZIONE_CONTENUTO ="descrizioneContenuto";
//Autori
public final static String AUTHORS= "authors";
//Soggetto che materialmente invia i dati.
public final static String CONTRIBUTORE ="contributore";
//Indicare il nome del titolare/i dei dati contenuti nel dataset e/o per sue specifiche parti.
public final static String TITOLARI="titolari";
public final static String RESPONSABILE="responsabile";
public final static String EDITORS ="editore";
public final static String FONTI_FINANZIAMENTO="fontiFinanziamento";
//Research Excavation; Archaeology (valori di default)
public final static String SOGGETTO="soggetto";
//Referenze bibliografiche, DOI (se esistenti) di risorse correlate allindagine in oggetto
public final static String RISORSE_CORRELATE="risorseCorrelate";
public final static String DATA_INZIO_PROGETTO="dataInizioProgetto";
public final static String DATA_FINE_PROGETTO="dataFineProgetto";
public final static String TITOLARE_LICENZA="titolareLicenza";
public final static String TITOLARE_COPYRIGHT="titolareCopyright";
public final static String PAROLE_CHIAVE_LIBERE="paroleChiaveLibere";
public final static String PAREOLE_CHIAVE_ICCD="paroleChiaveICCD";
public final static String RELAZIONE_SCAVO="relazioneScavo";
public final static String ABSTRACT_RELAZIONE ="abstractRelazione";
public final static String IMMAGINI_RAPPRESENTATIVE="immaginiRappresentative";
public final static String POSIZIONAMENTO_SCAVO = "posizionamentoScavo";
public final static String PIANTE_FINE_SCAVO = "pianteFineScavo";
public final static String GENERIC_CONTENT= "genericContent";
public static class Sections{
public static final String TITOLO="titolo";
}
public static class Relazione{
public static final String RESPONSABILI= "responsabili";
}
@Override
public void setDefaults() {
Document doc=this.getTheDocument();
doc.putIfAbsent(SOGGETTO,new String[]{"Research Excavation","Archaeology"});
doc.putIfAbsent(DSCRIZIONE_CONTENUTO,"Relazione di fine scavo e relativo abstract; selezione di immagini rappresentative;"
+ " posizionamento topografico dell'area indagata, pianta di fine scavo.");
// Super Section
this.getInfo().getAccess().setLicense(
ConstraintCheck.defaultFor(getInfo().getAccess().getLicense(), "CC0-1.0").evaluate());
//RELAZIONE
doc.putIfAbsent(RELAZIONE_SCAVO,new RegisteredFileSet());
Document rel=doc.get(RELAZIONE_SCAVO,Document.class);
rel.putIfAbsent(Sections.TITOLO,doc.getString(NOME)+" relazione di scavo");
rel.putIfAbsent(SOGGETTO,doc.get(SOGGETTO));
rel.putIfAbsent(RegisteredFileSet.CREATION_INFO,this.getInfo().getCreationInfo());
rel.putIfAbsent(RegisteredFileSet.ACCESS,this.getInfo().getAccess());
Access relAccess=rel.get(RegisteredFileSet.ACCESS,Access.class);
relAccess.setLicense(ConstraintCheck.defaultFor(relAccess.getLicense(),"CC-BY-4.0").evaluate());
relAccess.setPolicy(ConstraintCheck.defaultFor(relAccess.getPolicy(), AccessPolicy.OPEN).evaluate());
//ABSTRACT Relazione
doc.putIfAbsent(ABSTRACT_RELAZIONE,new RegisteredFileSet());
Document abs=doc.get(ABSTRACT_RELAZIONE,Document.class);
abs.putIfAbsent(Sections.TITOLO,doc.getString(NOME)+" abstract relazione di scavo");
abs.putIfAbsent(RegisteredFileSet.CREATION_INFO,this.getInfo().getCreationInfo());
abs.putIfAbsent(RegisteredFileSet.ACCESS,this.getInfo().getAccess());
Access absAccess=rel.get(RegisteredFileSet.ACCESS,Access.class);
absAccess.setLicense(ConstraintCheck.defaultFor(absAccess.getLicense(),"CC-BY-4.0").evaluate());
absAccess.setPolicy(ConstraintCheck.defaultFor(absAccess.getPolicy(), AccessPolicy.OPEN).evaluate());
//IMMAGINI RAPPRESENTATIVE
2022-01-12 18:42:22 +01:00
2022-01-14 12:31:11 +01:00
// if(doc.containsKey(IMMAGINI_RAPPRESENTATIVE)) {
// for (BsonValue bsonValue : doc.toBsonDocument(null, null).
// getArray(IMMAGINI_RAPPRESENTATIVE)) {
// BsonDocument imgDocument = bsonValue.asDocument();
// imgDocument.putIfAbsent(SOGGETTO,new BsonString(doc.getString(SOGGETTO));
// imgDocument.putIfAbsent(RegisteredFileSet.CREATION_INFO,new BsonDocument(this.getInfo().getCreationInfo());
// imgDocument.putIfAbsent(RegisteredFileSet.ACCESS,this.getInfo().getAccess());
// Access absAccess=rel.get(RegisteredFileSet.ACCESS,Access.class);
// absAccess.setLicense(ConstraintCheck.defaultFor(absAccess.getLicense(),"CC-BY-4.0").evaluate());
// absAccess.setPolicy(ConstraintCheck.defaultFor(absAccess.getPolicy(), AccessPolicy.OPEN).evaluate());
// }
// }
}
2022-01-12 18:42:22 +01:00
}