Package dao

Source Code of dao.ProjetoDAO

package dao;

import com.db4o.query.Predicate;
import java.util.Iterator;
import java.util.List;
import java.util.TreeSet;
import business.CenarioVolume;
import business.Projeto;
import com.db4o.query.Query;
import java.util.Collections;
import java.util.SortedSet;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
*/
public class ProjetoDAO extends AbstractDAO<Projeto> {

    /**
     *
     */
    public ProjetoDAO() {
        super("id", Projeto.class);
    }

    @Override
    public void connect() {
        super.connect();
    }

    @Override
    public void delete(Projeto obj) throws Exception {
        super.delete(obj);
    }

    @Override
    public Projeto find(long value) {
        return super.find(value);
    }

    @Override
    public List<Projeto> getAll(String orderByField, boolean asc) throws Exception {
        return super.getAll(orderByField, asc);
    }

    @Override
    public List<Projeto> queryByExample(Projeto obj) {
        return super.queryByExample(obj);
    }

    @Override
    public void save(Projeto obj) throws Exception {
        super.save(obj);
    }

    @Override
    public void close() {
        super.close();
    }

    /**
     *
     * @param idProjeto
     * @param idCenario
     * @return
     */
    public CenarioVolume getCenario(final Projeto proj, final long idCenario) {
        final TreeSet<CenarioVolume> cenarios = new TreeSet<>();
        db.query(new Predicate<Projeto>() {

            @Override
            public boolean match(final Projeto projeto) {
                CenarioVolume cenario = null;
                Iterator<CenarioVolume> it = projeto.getIteratorCenario();
                while (it.hasNext()) {
                    cenario = it.next();
                    if ((projeto.getId() == proj.getId()) && (cenario.getId() == idCenario)) {
                        cenarios.add(cenario);
                        return true;
                    }
                }
                return false;
            }
        });
        if (!cenarios.isEmpty()) {
            return cenarios.first();
        }
        return new CenarioVolume(proj.getNewCenarioVolumeId());
    }

    public long getNewId() throws Exception {
        SortedSet<Projeto> result = Collections.synchronizedSortedSet(new TreeSet<Projeto>());
        long id = 0;
        try {
            Query query = db.query();
            query.constrain(type);
            query.descend("id").orderAscending();
            result.addAll((List) query.execute());
        } catch (Exception e) {
            Logger.getLogger(AbstractDAO.class.getName()).log(Level.SEVERE, null, e);
            db.rollback();
            throw new Exception(e);
        }

        if (result.isEmpty()) {
            id = 1;
        } else {
            id = result.last().getId() + 1;
        }
        return id;
    }
}
TOP

Related Classes of dao.ProjetoDAO

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.