package com.lifeasageek.goodstuffexample.cdi;
import java.util.Map;
import javax.inject.Inject;
import javax.persistence.*;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.metamodel.Metamodel;
/**
*
* @author Justin Wyer <justin@lifeasageek.com>
*/
public class EntityManagerWrapper implements EntityManager
{
@Inject
private EntityManagerProducer emp;
@Override
public void persist(Object entity)
{
emp.get().persist(entity);
}
@Override
public <T> T merge(T entity)
{
return emp.get().merge(entity);
}
@Override
public void remove(Object entity)
{
emp.get().remove(entity);
}
@Override
public <T> T find(Class<T> entityClass, Object primaryKey)
{
return emp.get().find(entityClass, primaryKey);
}
@Override
public <T> T find(Class<T> entityClass, Object primaryKey, Map<String, Object> properties)
{
return emp.get().find(entityClass, primaryKey, properties);
}
@Override
public <T> T find(Class<T> entityClass, Object primaryKey, LockModeType lockMode)
{
return emp.get().find(entityClass, primaryKey, lockMode);
}
@Override
public <T> T find(Class<T> entityClass, Object primaryKey, LockModeType lockMode, Map<String, Object> properties)
{
return emp.get().find(entityClass, primaryKey, lockMode, properties);
}
@Override
public <T> T getReference(Class<T> entityClass, Object primaryKey)
{
return emp.get().getReference(entityClass, primaryKey);
}
@Override
public void flush()
{
emp.get().flush();
}
@Override
public void setFlushMode(FlushModeType flushMode)
{
emp.get().setFlushMode(flushMode);
}
@Override
public FlushModeType getFlushMode()
{
return emp.get().getFlushMode();
}
@Override
public void lock(Object entity, LockModeType lockMode)
{
emp.get().lock(entity, lockMode);
}
@Override
public void lock(Object entity, LockModeType lockMode, Map<String, Object> properties)
{
emp.get().lock(entity, lockMode, properties);
}
@Override
public void refresh(Object entity)
{
emp.get().refresh(entity);
}
@Override
public void refresh(Object entity, Map<String, Object> properties)
{
emp.get().refresh(entity, properties);
}
@Override
public void refresh(Object entity, LockModeType lockMode)
{
emp.get().refresh(entity, lockMode);
}
@Override
public void refresh(Object entity, LockModeType lockMode, Map<String, Object> properties)
{
emp.get().refresh(entity, lockMode, properties);
}
@Override
public void clear()
{
emp.get().clear();
}
@Override
public void detach(Object entity)
{
emp.get().detach(entity);
}
@Override
public boolean contains(Object entity)
{
return emp.get().contains(entity);
}
@Override
public LockModeType getLockMode(Object entity)
{
return emp.get().getLockMode(entity);
}
@Override
public void setProperty(String propertyName, Object value)
{
emp.get().setProperty(propertyName, value);
}
@Override
public Map<String, Object> getProperties()
{
return emp.get().getProperties();
}
@Override
public Query createQuery(String qlString)
{
return emp.get().createQuery(qlString);
}
@Override
public <T> TypedQuery<T> createQuery(CriteriaQuery<T> criteriaQuery)
{
return emp.get().createQuery(criteriaQuery);
}
@Override
public <T> TypedQuery<T> createQuery(String qlString, Class<T> resultClass)
{
return emp.get().createQuery(qlString, resultClass);
}
@Override
public Query createNamedQuery(String name)
{
return emp.get().createNamedQuery(name);
}
@Override
public <T> TypedQuery<T> createNamedQuery(String name, Class<T> resultClass)
{
return emp.get().createNamedQuery(name, resultClass);
}
@Override
public Query createNativeQuery(String sqlString)
{
return emp.get().createNativeQuery(sqlString);
}
@Override
public Query createNativeQuery(String sqlString, Class resultClass)
{
return emp.get().createNativeQuery(sqlString, resultClass);
}
@Override
public Query createNativeQuery(String sqlString, String resultSetMapping)
{
return emp.get().createNativeQuery(sqlString, resultSetMapping);
}
@Override
public void joinTransaction()
{
emp.get().joinTransaction();
}
@Override
public <T> T unwrap(Class<T> cls)
{
return emp.get().unwrap(cls);
}
@Override
public Object getDelegate()
{
return emp.get().getDelegate();
}
@Override
public void close()
{
emp.get().close();
}
@Override
public boolean isOpen()
{
return emp.get().isOpen();
}
@Override
public EntityTransaction getTransaction()
{
return emp.get().getTransaction();
}
@Override
public EntityManagerFactory getEntityManagerFactory()
{
return emp.get().getEntityManagerFactory();
}
@Override
public CriteriaBuilder getCriteriaBuilder()
{
return emp.get().getCriteriaBuilder();
}
@Override
public Metamodel getMetamodel()
{
return emp.get().getMetamodel();
}
}