package fi.otavanopisto.pyramus.dao.changelog;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import fi.otavanopisto.pyramus.dao.PyramusEntityDAO;
import fi.otavanopisto.pyramus.domainmodel.changelog.TrackedEntityProperty;
@Stateless
public class TrackedEntityPropertyDAO extends PyramusEntityDAO<TrackedEntityProperty> {
public TrackedEntityProperty create(String entity, String property) {
EntityManager entityManager = getEntityManager();
TrackedEntityProperty trackedEntityProperty = new TrackedEntityProperty();
trackedEntityProperty.setEntity(entity);
trackedEntityProperty.setProperty(property);
entityManager.persist(trackedEntityProperty);
return trackedEntityProperty;
}
public TrackedEntityProperty findByEntityAndProperty(String entity, String property) {
EntityManager entityManager = getEntityManager();
Query query = entityManager.createQuery("from TrackedEntityProperty where entity = :entity and property = :property");
query.setParameter("entity", entity);
query.setParameter("property", property);
@SuppressWarnings("unchecked") List<TrackedEntityProperty> result = query.getResultList();
return result.size() == 1 ? result.get(0) : null;
}
public TrackedEntityProperty updateEntity(TrackedEntityProperty trackedEntityProperty, String entity) {
EntityManager entityManager = getEntityManager();
trackedEntityProperty.setEntity(entity);
entityManager.persist(trackedEntityProperty);
return trackedEntityProperty;
}
public TrackedEntityProperty updateProperty(TrackedEntityProperty trackedEntityProperty, String property) {
EntityManager entityManager = getEntityManager();
trackedEntityProperty.setProperty(property);
entityManager.persist(trackedEntityProperty);
return trackedEntityProperty;
}
@Override
public void delete(TrackedEntityProperty trackedEntityProperty) {
super.delete(trackedEntityProperty);
}
}