package info.ozkan.vipera.dao.healthdata;
import info.ozkan.vipera.business.healthdata.HealthDataFieldResult;
import info.ozkan.vipera.business.healthdata.HealthDataFieldStatus;
import info.ozkan.vipera.entities.HealthDataField;
import java.util.List;
import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
/**
* Veritabanı üzerinde sağlık alanları ile ilgili CRUD işlemleri yapan Dao
* sınıfı
*
* @author Ömer Özkan
*
*/
@Named("healthDataFieldDao")
public class HealthDataFieldDaoImpl implements HealthDataFieldDao {
/**
* Veritabanından bütün sağlık verisi alanlarını dönderen JQL sorgusu
*/
private static final String JQL_SELECT_ALL = "from HealthDataField f";
/**
* EntityManager
*/
private EntityManager em;
public HealthDataFieldResult add(final HealthDataField field) {
em.persist(field);
final HealthDataFieldResult result = createSuccessResult();
result.setHealthDataField(field);
return result;
}
private HealthDataFieldResult createSuccessResult() {
final HealthDataFieldResult result = new HealthDataFieldResult();
result.setStatus(HealthDataFieldStatus.SUCCESS);
return result;
}
public HealthDataFieldResult getAllFields() {
final Query query =
em.createQuery(JQL_SELECT_ALL, HealthDataField.class);
final List<HealthDataField> list = query.getResultList();
final HealthDataFieldResult result = createSuccessResult();
result.setHealthDataFields(list);
return result;
}
public HealthDataFieldResult update(final HealthDataField field) {
em.merge(field);
final HealthDataFieldResult result = createSuccessResult();
result.setHealthDataField(field);
return result;
}
public HealthDataFieldResult remove(final HealthDataField field) {
em.remove(em.merge(field));
return createSuccessResult();
}
/**
* @param entityManager
* the entityManager to set
*/
@PersistenceContext
public void setEntityManager(final EntityManager entityManager) {
em = entityManager;
}
}