Subversion Repositories bacoAlunos

Rev

Rev 1679 | Rev 1719 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.domain.dao.impl;

import org.hibernate.Criteria;
import org.hibernate.criterion.Order;
import pt.estgp.estgweb.domain.RepositoryDocumentImpl;

import java.util.List;

import static org.hibernate.criterion.Restrictions.eq;

/**
 * @author Jorge Machado
 * @date 28/Fev/2008
 * @time 2:51:06
 * @see pt.estgp.estgweb.domain.dao.impl
 */

public class RepositoryDocumentDaoImpl extends RepositoryDocumentDao
{
    private RepositoryDocumentDaoImpl()
    {
    }

    public static RepositoryDocumentDaoImpl getInstance()
    {
        if (myInstance == null)
            myInstance = new RepositoryDocumentDaoImpl();
        return (RepositoryDocumentDaoImpl) myInstance;
    }


    public List<RepositoryDocumentImpl> findDocumentsSortPublishDateDesc(boolean onlyVisible,long collectionId)
    {
        return findDocuments(onlyVisible,collectionId,"publishDate","desc");
    }
    public List<RepositoryDocumentImpl> findDocumentsSortPublishDateAsc(boolean onlyVisible,long collectionId)
    {
        return findDocuments(onlyVisible,collectionId,"publishDate","asc");
    }
    public List<RepositoryDocumentImpl> findDocumentsSortTitleDesc(boolean onlyVisible,long collectionId)
    {
        return findDocuments(onlyVisible,collectionId,"title","desc");
    }
    public List<RepositoryDocumentImpl> findDocumentsSortTitleAsc(boolean onlyVisible,long collectionId)
    {
        return findDocuments(onlyVisible,collectionId,"title","asc");
    }

    public List<RepositoryDocumentImpl> findDocuments(boolean onlyVisible,long collectionId,1.5.0/docs/api/java/lang/String.html">String orderField, 1.5.0/docs/api/java/lang/String.html">String orderDirection)
    {
        1.5.0/docs/api/java/lang/String.html">String orderFinalField = orderField == null ? "publishDate" : orderField;
        Order order = orderDirection.equals("asc") ? Order.asc(orderFinalField) : Order.desc(orderFinalField);
        Criteria c = createCriteria()
                .add(eq("collection.id",collectionId))
                .addOrder(order)
                .addOrder(Order.desc("saveDate"));
        if(onlyVisible)
            c.add(eq("visible",true));
        return c.list();
    }


    public List<RepositoryDocumentImpl> findDocumentsByTitleAndCollection(1.5.0/docs/api/java/lang/String.html">String title, long colId) {
        Criteria c = createCriteria()
                .add(eq("collection.id",colId))
                .add(eq("title",title));
        return c.list();
    }
}