package org.celstec.ariadne.app;
import org.ariadne.config.PropertiesManager;
import org.purl.sword.base.Collection;
import org.purl.sword.base.Service;
import org.purl.sword.base.ServiceDocument;
import org.purl.sword.base.Workspace;
public class AriadneServiceDocument extends ServiceDocument{
public AriadneServiceDocument(){
Service service = new Service("1.3",true, true);
service.addWorkspace(getWorkspace());
setService(service);
}
private Workspace getWorkspace(){
Workspace workspace = new Workspace();
workspace.setTitle(PropertiesManager.getInstance().getProperty("app.workspace.title"));
workspace.addCollection(getCollection());
return workspace;
}
private Collection getCollection(){
SpiCollection collection = new SpiCollection();
collection.setTitle(PropertiesManager.getInstance().getProperty("app.collection.title"));
String swordBaseURL = PropertiesManager.getInstance().getProperty("app.baseURL");
while (swordBaseURL.endsWith("/"))
swordBaseURL = swordBaseURL.substring(0, swordBaseURL.length() - 1);
collection.setLocation(swordBaseURL + "/deposit");
if(PropertiesManager.getInstance().getProperty("app.publishMetadata").equalsIgnoreCase("yes")) collection.setPublishMetadata(true);
if (PropertiesManager.getInstance().getProperty("app.publishMetadata").equalsIgnoreCase("no")) collection.setPublishMetadata(false);
collection.addMetadataschema("http://ltsc.ieee.org/xsd/LOM/loose");
collection.addMetadataschema("http://www.share-tec.eu/validation/ShareTEC/minimal");
return collection;
}
}