package fi.otavanopisto.muikku.plugins.forum.dao;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import fi.otavanopisto.muikku.plugins.forum.model.EnvironmentForumArea_;
import fi.otavanopisto.muikku.model.security.ResourceRights;
import fi.otavanopisto.muikku.model.users.UserEntity;
import fi.otavanopisto.muikku.plugins.CorePluginsDAO;
import fi.otavanopisto.muikku.plugins.forum.model.EnvironmentForumArea;
import fi.otavanopisto.muikku.plugins.forum.model.ForumAreaGroup;
public class EnvironmentForumAreaDAO extends CorePluginsDAO<EnvironmentForumArea> {
private static final long serialVersionUID = 2917574952932278029L;
public EnvironmentForumArea create(String name, String description, ForumAreaGroup group, Boolean archived,
UserEntity owner, ResourceRights rights) {
EnvironmentForumArea environmentForumArea = new EnvironmentForumArea();
environmentForumArea.setName(name);
environmentForumArea.setDescription(description);
environmentForumArea.setGroup(group);
environmentForumArea.setArchived(archived);
environmentForumArea.setOwner(owner.getId());
environmentForumArea.setRights(rights.getId());
getEntityManager().persist(environmentForumArea);
return environmentForumArea;
}
public List<EnvironmentForumArea> listAllNonArchived() {
EntityManager entityManager = getEntityManager();
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<EnvironmentForumArea> criteria = criteriaBuilder.createQuery(EnvironmentForumArea.class);
Root<EnvironmentForumArea> root = criteria.from(EnvironmentForumArea.class);
criteria.select(root);
criteria.where(criteriaBuilder.equal(root.get(EnvironmentForumArea_.archived), Boolean.FALSE));
return entityManager.createQuery(criteria).getResultList();
}
}