package org.aksw.jena_sparql_api.mapper.jpa.core;
public class EntityManagerJenaOld
// implements EntityManager
{
// protected Prologue prologue;
//
// protected RdfTypeFactoryImpl rdfClassFactory;
//
// /**
// * The languagePreferences acts as a default method to priorize and filter items in a set of (literal)
// * nodes, such as values of the rdfs:label or rdfs:comment properties.
// *
// */
// protected List<String> readLangs;
//
// /**
// * The default language which to apply to newly created RDF data
// */
// protected String writeLang;
// protected SparqlService sparqlService;
//
//
// public EntityManagerJenaOld(RdfTypeFactoryImpl rdfClassFactory,
// List<String> readLangs, SparqlService sparqlService) {
// super();
// //this.prologue = prologue;
// this.rdfClassFactory = rdfClassFactory;
// this.readLangs = readLangs;
// this.sparqlService = sparqlService;
// }
//
//
// public RdfTypeFactoryImpl getRdfClassFactory() {
// return rdfClassFactory;
// }
//
// @Override
// public <T> T find(Class<T> clazz, Object primaryKey) {
//
// //RdfClassFactory rdfClassFactory = RdfClassFactory.createDefault(prologue);
// RdfClass rdfClass = (RdfClass)rdfClassFactory.forJavaType(clazz);
//
// //MappedConcept<DatasetGraph> shape = rdfClass.getMappedQuery();
// // TODO Emit the shape for the class
// MappedConcept<DatasetGraph> shape = null;
//
//
// QueryExecutionFactory qef = sparqlService.getQueryExecutionFactory();
// LookupService<Node, DatasetGraph> ls = LookupServiceUtils.createLookupService(qef, shape);
//
// Node node;
// if(primaryKey instanceof String) {
// node = NodeFactory.createURI((String)primaryKey);
// } else if(primaryKey instanceof Node) {
// node = (Node)primaryKey;
// } else {
// throw new RuntimeException("Invalid primary key type: " + primaryKey);
// }
//
// Map<Node, DatasetGraph> nodeToGraph = ls.apply(Collections.singleton(node));
// DatasetGraph dg = nodeToGraph.get(node);
// if(dg == null) {
// dg = DatasetGraphFactory.createMem();
// }
// //System.out.println(dg);
//
//
// //Object proxy = rdfClass.createProxy(dg, node);
// Object proxy = rdfClass.createJavaObject(node);
//
// rdfClass.setValues(proxy, dg);
//
//
// T result = (T)proxy;
// //List<T> result = Collections.<T>singletonList(item);
// return result;
// }
//
// @Override
// public void persist(Object entity) {
// merge(entity);
// }
//
// @Override
// public <T> T merge(T entity) {
// MethodInterceptorRdf interceptor = RdfClass.getMethodInterceptor(entity);
//
// DatasetGraph oldState = interceptor == null
// ? DatasetGraphFactory.createMem()
// : interceptor.getDatasetGraph()
// ;
//
// Class<?> clazz = entity.getClass();
// //RdfClass rdfClass = RdfClassFactory.createDefault(prologue).create(clazz);
// RdfClass rdfClass = (RdfClass)rdfClassFactory.forJavaType(clazz);
//
//
// DatasetDescription datasetDescription = sparqlService.getDatasetDescription();
// String gStr = DatasetDescriptionUtils.getSingleDefaultGraphUri(datasetDescription);
// if(gStr == null) {
// throw new RuntimeException("No target graph specified");
// }
// Node g = NodeFactory.createURI(gStr);
//
// DatasetGraph newState = DatasetGraphFactory.createMem();
// Graph out = newState.getGraph(g);
// rdfClass.writeGraph(out, entity);
//
// System.out.println("oldState");
// DatasetGraphUtils.write(System.out, oldState);
//
// System.out.println("newState");
// DatasetGraphUtils.write(System.out, newState);
//
// Diff<Set<Quad>> diff = UpdateDiffUtils.computeDelta(newState, oldState);
// System.out.println("diff: " + diff);
// UpdateExecutionFactory uef = sparqlService.getUpdateExecutionFactory();
// UpdateExecutionUtils.executeUpdate(uef, diff);
//
// return entity;
//
//// UpdateExecutionUtils.executeUpdateDelta(uef, newState, oldState);
// }
//
//
// @Override
// public void remove(Object entity) {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public <T> T find(Class<T> entityClass, Object primaryKey,
// Map<String, Object> properties) {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public <T> T find(Class<T> entityClass, Object primaryKey, LockModeType lockMode) {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public <T> T find(Class<T> entityClass, Object primaryKey,
// LockModeType lockMode, Map<String, Object> properties) {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public <T> T getReference(Class<T> entityClass, Object primaryKey) {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public void flush() {
// }
//
// @Override
// public void setFlushMode(FlushModeType flushMode) {
// }
//
// @Override
// public FlushModeType getFlushMode() {
// return null;
// }
//
// @Override
// public void lock(Object entity, LockModeType lockMode) {
// }
//
// @Override
// public void lock(Object entity, LockModeType lockMode,
// Map<String, Object> properties) {
// }
//
// @Override
// public void refresh(Object entity) {
// }
//
// @Override
// public void refresh(Object entity, Map<String, Object> properties) {
// }
//
// @Override
// public void refresh(Object entity, LockModeType lockMode) {
// }
//
// @Override
// public void refresh(Object entity, LockModeType lockMode, Map<String, Object> properties) {
// }
//
// @Override
// public void clear() {
// }
//
// @Override
// public void detach(Object entity) {
// }
//
// @Override
// public boolean contains(Object entity) {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public LockModeType getLockMode(Object entity) {
// return LockModeType.NONE;
// }
//
// @Override
// public void setProperty(String propertyName, Object value) {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public Map<String, Object> getProperties() {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public Query createQuery(String qlString) {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public <T> TypedQuery<T> createQuery(CriteriaQuery<T> criteriaQuery) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public <T> TypedQuery<T> createQuery(String qlString, Class<T> resultClass) {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public Query createNamedQuery(String name) {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public <T> TypedQuery<T> createNamedQuery(String name, Class<T> resultClass) {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public Query createNativeQuery(String sqlString) {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public Query createNativeQuery(String sqlString, Class resultClass) {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public Query createNativeQuery(String sqlString, String resultSetMapping) {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public void joinTransaction() {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public <T> T unwrap(Class<T> cls) {
// return null;
// }
//
// @Override
// public Object getDelegate() {
// return null;
// }
//
// @Override
// public void close() {
// }
//
// @Override
// public boolean isOpen() {
// return true;
// }
//
// @Override
// public EntityTransaction getTransaction() {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public EntityManagerFactory getEntityManagerFactory() {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public CriteriaBuilderJena getCriteriaBuilder() {
// CriteriaBuilderJena result = new CriteriaBuilderJena();
// return result;
// }
//
// @Override
// public Metamodel getMetamodel() {
// throw new UnsupportedOperationException();
// }
//
}