package org.emile.cirilo.business;
import java.io.File;
import org.emile.cirilo.ecm.repository.Repository;
import org.jdom.input.DOMBuilder;
import org.jdom.Document;
import org.apache.log4j.Logger;
public class TripleStoreFactory {
private static Logger log = Logger.getLogger(TripleStoreFactory.class);
private Object triplestore;
private String TTType;
public TripleStoreFactory() {
try {
DOMBuilder db = new DOMBuilder();
Document properties = db.build (Repository.getDatastream("cirilo:Backbone", "PROPERTIES"));
this.TTType = properties.getRootElement().getChild("TripleStoreTechnology").getText();
if (TTType.equals("Blazegraph")) triplestore = new BlazeGraphFactory();
else if (TTType.equals("Sesame")) triplestore = new SesameFactory();
else triplestore = null;
} catch (Exception e) {
log.error(e.getLocalizedMessage(),e);
triplestore = null;
}
}
public void close () {
if (triplestore instanceof BlazeGraphFactory) ((BlazeGraphFactory)triplestore).close();
else if (triplestore instanceof SesameFactory ) ((SesameFactory)triplestore).close();
}
public boolean getStatus() {
boolean ret = false;
if (triplestore instanceof BlazeGraphFactory) ret = ((BlazeGraphFactory)triplestore).getStatus();
else if (triplestore instanceof SesameFactory ) ret = ((SesameFactory)triplestore).getStatus();
return ret;
}
public String getInfo() {
if (triplestore instanceof BlazeGraphFactory) return ((BlazeGraphFactory)triplestore).getInfo();
else if (triplestore instanceof SesameFactory ) return ((SesameFactory)triplestore).getInfo();
return this.TTType;
}
public void removeAll() {
if (triplestore instanceof BlazeGraphFactory) ((BlazeGraphFactory)triplestore).removeAll();
else if (triplestore instanceof SesameFactory ) ((SesameFactory)triplestore).removeAll();
}
public boolean insert(File fp, String context) {
if (triplestore instanceof BlazeGraphFactory ) return (((BlazeGraphFactory)triplestore).insert(fp, context));
else if (triplestore instanceof SesameFactory ) return (((SesameFactory)triplestore).insert(fp, context));
else return false;
}
public boolean remove(String context) {
if (triplestore instanceof BlazeGraphFactory ) return (((BlazeGraphFactory)triplestore).remove(context));
else if (triplestore instanceof SesameFactory ) return (((SesameFactory)triplestore).remove(context));
else return false;
}
public boolean update(File fp, String context) {
if (triplestore instanceof BlazeGraphFactory ) return (((BlazeGraphFactory)triplestore).update(fp, context));
else if (triplestore instanceof SesameFactory ) return (((SesameFactory)triplestore).update(fp, context));
else return false;
}
}