PlaceRepositoryImpl.java

package com.tradecloud.repository.impl;

import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.tradecloud.domain.place.*;
import com.tradecloud.repository.PlaceRepository;
import com.tradecloud.repository.base.impl.RepositoryBaseImpl;

@Repository
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT)
public class PlaceRepositoryImpl extends RepositoryBaseImpl<NamedPlace, Object> implements PlaceRepository {

    private static Logger log = Logger.getLogger(PlaceRepositoryImpl.class);
    public static final String BY_NAME_QUERY = "from PlaceOfLoading as d where d.code = :code";

    @Override
    public Depot findDepotByName(String portName, DepotType type) {
        Criteria searchCriteria = getSessionCustom().createCriteria(Depot.class);
        searchCriteria.add(Restrictions.eq("name", portName));
        searchCriteria.add(Restrictions.eq("type", type));
        return (Depot) searchCriteria.uniqueResult();
    }

    @Override
    public Depot findDepotByCode(String code) {
        Criteria searchCriteria = getSessionCustom().createCriteria(Depot.class);
        searchCriteria.add(Restrictions.eq("code", code));
        return (Depot) searchCriteria.uniqueResult();
    }

    @Override
    public PlaceOfLoading findPlaceOfLoadingByName(String placeOfLoadingName) {
        // Criteria searchCriteria = getSessionFlushMode().createCriteria(PlaceOfLoading.class);
        // searchCriteria.createCriteria("depot").add(Restrictions.eq("code", portName));
        // return (PlaceOfLoading)searchCriteria.uniqueResult();
        return null;
    }

    @Override
    public PlaceOfDischarge findPlaceOfDischargeByName(String placeOfDischargeName) {
        /*
         * Criteria searchCriteria = getSessionFlushMode().createCriteria(PlaceOfDischarge.class); searchCriteria.add(Restrictions.eq("code",
         * placeOfDischargeName)); return (PlaceOfDischarge) searchCriteria.uniqueResult();
         */
        return null;
    }

    @Override
    public FinalDestination findFinalDestinationByName(String finalDestinationName) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public PlaceOfLoading findPlaceOfLoadingByPortCode(String portCode) {
        Criteria searchCriteria = getSessionCustom().createCriteria(PlaceOfLoading.class);
        searchCriteria.add(Restrictions.eq("code", portCode));
        List<PlaceOfLoading> list = searchCriteria.list();

        if (list.size() > 0) {
            return list.get(0);
        }

        return null;
    }

    @Override
    public PlaceOfDischarge findPlaceOfDischargeByPortCode(String portCode) {
        Criteria searchCriteria = getSessionCustom().createCriteria(PlaceOfDischarge.class);
        searchCriteria.add(Restrictions.eq("code", portCode));
        List<PlaceOfDischarge> list = searchCriteria.list();

        if (list.size() > 0) {
            return list.get(0);
        }

        return null;
    }

    @Override
    public FinalDestination findFinalDestinationByPortCode(String code) {
        Criteria searchCriteria = getSessionCustom().createCriteria(FinalDestination.class);
        searchCriteria.add(Restrictions.eq("code", code));
        return (FinalDestination) searchCriteria.uniqueResult();
    }
}