view src/main/java/de/intevation/lada/data/LKommentarPRepository.java @ 107:5abec5413d65

Let all services and repositories return a response object that contains errors and warnings.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 12 Jun 2013 11:07:16 +0200
parents 9f3e902ce778
children 4e181a4aaab0
line wrap: on
line source
package de.intevation.lada.data;

import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.inject.Inject;
import javax.inject.Named;
import javax.persistence.EntityExistsException;
import javax.persistence.EntityManager;
import javax.persistence.TransactionRequiredException;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;

import de.intevation.lada.manage.LKommentarPManager;
import de.intevation.lada.model.LKommentarP;
import de.intevation.lada.rest.Response;


@Named("lkommentarRepository")
public class LKommentarPRepository
extends Repository
{
    /**
     * The entitymanager managing the data.
     */
    @Inject
    private EntityManager em;

    @Inject
    private LKommentarPManager manager;

    @Inject
    private Logger logger;

    public Response filter(String probeId) {
        if (probeId.isEmpty()) {
            return new Response(false, 600, new ArrayList<LKommentarP>(0));
        }
        CriteriaBuilder cb = em.getCriteriaBuilder();
        CriteriaQuery<LKommentarP> criteria = cb.createQuery(LKommentarP.class);
        Root<LKommentarP> member = criteria.from(LKommentarP.class);
        criteria.where(cb.equal(member.get("probeId"), probeId));

        List<LKommentarP> result = em.createQuery(criteria).getResultList();
        return new Response(true, 200, result);
    }

    public Response create(LKommentarP kommentar) {
        try {
            manager.create(kommentar);
            return new Response(true, 200, kommentar);
        }
        catch(EntityExistsException eee) {
            return new Response(false, 601, kommentar);
        }
        catch(IllegalArgumentException iae) {
            return new Response(false, 602, kommentar);
        }
        catch(TransactionRequiredException tre) {
            logger.log(Level.INFO, "exception: " + tre);
            return new Response(false, 603, kommentar);
        }
    }
}
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)