140 lines
6.0 KiB
Java
140 lines
6.0 KiB
Java
package org.gcube.application.geoportal;
|
|
|
|
import java.io.FileInputStream;
|
|
import java.io.FileNotFoundException;
|
|
import java.io.IOException;
|
|
|
|
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.report.PublicationReport;
|
|
import org.gcube.application.geoportal.model.report.ValidationReport;
|
|
import org.gcube.application.geoportal.model.report.ValidationReport.ValidationStatus;
|
|
import org.gcube.application.geoportal.utils.Files;
|
|
import org.gcube.application.geoportal.utils.Serialization;
|
|
import org.junit.Assert;
|
|
|
|
public class UseCases {
|
|
|
|
public static void main(String[] args) throws FileNotFoundException, IOException {
|
|
TokenSetter.set("/gcube/devNext/NextNext");
|
|
// TokenSetter.set("/pred4s/preprod/preVRE");
|
|
|
|
try {
|
|
// System.out.println("Try to create..");
|
|
// Concessione conc=registerNewConcessione();
|
|
|
|
// long id=conc.getId();
|
|
|
|
long id=48;
|
|
System.out.println("Tryint to read by id "+id);
|
|
readConcessione(id);
|
|
}catch(Throwable t) {
|
|
System.err.println("ALERT "+t.getMessage());
|
|
throw t;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public static Concessione registerNewConcessione() throws FileNotFoundException, IOException{
|
|
ConcessioneManager manager=null;
|
|
try {
|
|
//Preparo l'istanza del modello con i vari campi compilati e senza gli allegati
|
|
Concessione conc=TestModel.prepareEmptyConcessione();
|
|
|
|
//Ottengo il manager per il progetto da registrare (tipi progetto : concessioni, mosi, mopr etc..)
|
|
manager=ManagerFactory.registerNew(conc);
|
|
|
|
//Preparo l'istanza dell'oggetto relazione scavo con i campi compilati e senza allegati
|
|
RelazioneScavo rel=TestModel.prepareConcessione().getRelazioneScavo();
|
|
|
|
//Istruisco il manager per gestire il payload della relazione di scavo, specificando il nome del file originale
|
|
manager.setRelazioneScavo(rel,
|
|
new InputStreamDescriptor(
|
|
new FileInputStream(Files.getFileFromResources("concessioni/relazione.pdf")),"relazione.pdf"));
|
|
|
|
//Per ogni immagine preparo l'istanza dell'oggetto uploadedimage con i campi compilati e senza allegati
|
|
for(UploadedImage img:TestModel.prepareConcessione().getImmaginiRappresentative())
|
|
//Istruisco il manager per gestire il payload dell' immagine, specificando il nome del file originale
|
|
manager.addImmagineRappresentativa(img,
|
|
new InputStreamDescriptor(new FileInputStream(Files.getFileFromResources("concessioni/immagine.png")),img.getTitolo()));
|
|
|
|
//Per ogni immagine preparo l'istanza dell'oggetto layerconcessione con i campi compilati e senza allegati
|
|
LayerConcessione posizionamento=TestModel.prepareConcessione().getPosizionamentoScavo();
|
|
//Istruisco il manager per gestire il/i payload del layer, specificando i nomi dei file originali
|
|
manager.setPosizionamento(posizionamento,
|
|
new InputStreamDescriptor(new FileInputStream(Files.getFileFromResources("concessioni/pos.dbf")),"pos.dbf"),
|
|
new InputStreamDescriptor(new FileInputStream(Files.getFileFromResources("concessioni/pos.prj")),"pos.prj"),
|
|
new InputStreamDescriptor(new FileInputStream(Files.getFileFromResources("concessioni/pos.qpj")),"pos.qpj"),
|
|
new InputStreamDescriptor(new FileInputStream(Files.getFileFromResources("concessioni/pos.shp")),"pos.shp"),
|
|
new InputStreamDescriptor(new FileInputStream(Files.getFileFromResources("concessioni/pos.shx")),"pos.shx"));
|
|
|
|
for(LayerConcessione layer:TestModel.prepareConcessione().getPianteFineScavo())
|
|
//Istruisco il manager per gestire il/i payload del layer, specificando i nomi dei file originali
|
|
manager.addPiantaFineScavo(layer,
|
|
new InputStreamDescriptor(new FileInputStream(Files.getFileFromResources("concessioni/pos.dbf")),"pianta.dbf"),
|
|
new InputStreamDescriptor(new FileInputStream(Files.getFileFromResources("concessioni/pos.prj")),"pianta.prj"),
|
|
new InputStreamDescriptor(new FileInputStream(Files.getFileFromResources("concessioni/pos.qpj")),"pianta.qpj"),
|
|
new InputStreamDescriptor(new FileInputStream(Files.getFileFromResources("concessioni/pos.shp")),"pianta.shp"),
|
|
new InputStreamDescriptor(new FileInputStream(Files.getFileFromResources("concessioni/pos.shx")),"pianta.shx"));
|
|
|
|
|
|
//If true -> data are published into the SDI
|
|
Boolean publish=true;
|
|
|
|
//NB la validazione viene CMQ triggerata a commit time.
|
|
//In caso di errore viene lanciata una ValidationException
|
|
Concessione prepared=manager.getRecord();
|
|
System.out.println("Object before validation is "+prepared);
|
|
ValidationReport report=manager.getRecord().validate();
|
|
System.out.println("Report is : "+report.prettyPrint());
|
|
Assert.assertEquals(report.getStatus(),ValidationStatus.PASSED);
|
|
System.out.println("Object after validation is "+prepared);
|
|
|
|
|
|
/*Chiedo al manager di salvare il progetto, causando :
|
|
*scrittura sul WS
|
|
*pubblicazione sull'SDI (boolean publish)
|
|
*scrittura sul DB di applicazione sia dei meta che dei vari link */
|
|
|
|
//Metodo con eccezioni
|
|
// Concessione registered=manager.commit(publish);
|
|
|
|
|
|
//Metodo con report
|
|
PublicationReport pubReport=manager.commitSafely(publish);
|
|
Concessione registered=(Concessione) pubReport.getTheRecord();
|
|
|
|
System.out.println("REGISTERED "+registered);
|
|
|
|
System.out.println("Report is "+pubReport.prettyPrint());
|
|
Assert.assertFalse(pubReport.getStatus().equals(ValidationStatus.ERROR));
|
|
|
|
|
|
return registered;
|
|
//--- FINALLY --/
|
|
|
|
}finally{
|
|
manager.shutdown();
|
|
}
|
|
}
|
|
|
|
|
|
public static void readConcessione(long id) {
|
|
|
|
ConcessioneManager manager=ManagerFactory.getByRecordID(id);
|
|
try{
|
|
System.out.println(manager.getRecord());
|
|
}finally {
|
|
manager.shutdown();
|
|
}
|
|
|
|
}
|
|
}
|