package org.openprovenance.prov.sql; import java.io.File; import java.util.Hashtable; import org.openprovenance.prov.model.Document; import org.openprovenance.prov.model.Namespace; public class AttributeTest extends org.openprovenance.prov.xml.AttributeTest { static { pFactory = new ProvFactory(); name=pFactory.getName(); } final PersistenceUtility u = new PersistenceUtility(); public AttributeTest(String testName) { super(testName); u.setUp(); } @Override public String extension() { return ".xml"; } @Override public org.openprovenance.prov.sql.Document readDocument(String file1) { Long key = dbKeys.get(file1); if (key == null) return null; Document doc = u.find(org.openprovenance.prov.sql.Document.class, key); try { ProvSerialiser.getThreadProvSerialiser() .serialiseDocument(new File(file1 + "-persist"), doc, true); } catch (Exception e) { e.printStackTrace(); } System.out.println("read document " + ((org.openprovenance.prov.sql.Document)doc).getPk() + " for " + file1); return (org.openprovenance.prov.sql.Document) doc; } static Hashtable<String, Long> dbKeys = new Hashtable<String, Long>(); public void writeDocument(org.openprovenance.prov.model.Document doc, String file) { Namespace.withThreadNamespace(doc.getNamespace()); System.out.println("saving document ... "); @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); } @Override public boolean checkSchema(String name) { return false; } public void testDictionaryInsertionWithOneKey(int i) { if (i<3) System.out.println(" ---- Not supporting dictionaries yet"); } public org.openprovenance.prov.model.QualifiedName q(String n) { return new QualifiedName(EX_NS, n, EX_PREFIX); } @Override public void updateNamespaces(Document doc) { Namespace ns=Namespace.gatherNamespaces(doc); Namespace ns2=new org.openprovenance.prov.sql.Namespace(ns); doc.setNamespace(ns2); } }