package org.openprovenance.prov.sql;
import java.io.File;
import java.util.Hashtable;
import org.openprovenance.prov.model.Namespace;
import org.openprovenance.prov.model.Statement;
import org.openprovenance.prov.sql.Document;
//import org.openprovenance.prov.sql.PersistenceUtility;
public class RoundTripFromJavaSQLTest extends RoundTripFromJavaTest {
final PersistenceUtility u = new PersistenceUtility();
public RoundTripFromJavaSQLTest(String name) {
super(name);
u.setUp();
}
public boolean checkTest(String name) {
return true;
}
@Override
public void setUp() {
// u.setUp();
}
@Override
public Document readDocument(String file1) {
Long key = dbKeys.get(file1);
if (key == null)
return null;
Document doc = u.find(Document.class, key);
try {
Namespace.withThreadNamespace(doc.getNamespace());
ProvSerialiser.getThreadProvSerialiser()
.serialiseDocument(new File(file1 + "-persist"), doc,
true);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("read document " + doc.getPk() + " for " + file1);
return doc;
}
static Hashtable<String, Long> dbKeys = new Hashtable<String, Long>();
@Override
public void writeDocument(org.openprovenance.prov.model.Document doc,
String file) {
@SuppressWarnings("unused")
Document doc2 = u.persist((org.openprovenance.prov.sql.Document) doc);
dbKeys.put(file, ((org.openprovenance.prov.sql.Document) doc).getPk());
System.out.println("saved document "
+ ((org.openprovenance.prov.sql.Document) doc).getPk()
+ " for " + file);
}
public boolean doOptional(Statement[] opt) {
return false;
}
public org.openprovenance.prov.model.QualifiedName q(String n) {
return new QualifiedName(EX_NS, n, EX_PREFIX);
}
@Override
public void updateNamespaces(org.openprovenance.prov.model.Document doc) {
Namespace ns=Namespace.gatherNamespaces(doc);
Namespace ns2=new org.openprovenance.prov.sql.Namespace(ns);
doc.setNamespace(ns2);
}
}