package org.sculptor.shipping.core.repositoryimpl; import static org.sculptor.shipping.core.domain.ShipEventProperties.changeSequence; import static org.sculptor.shipping.core.domain.ShipEventProperties.ship; import java.util.List; import org.sculptor.framework.accessapi.ConditionalCriteria; import org.sculptor.framework.accessapi.ConditionalCriteriaBuilder; import org.sculptor.shipping.core.domain.ShipEvent; import org.sculptor.shipping.core.domain.ShipId; import org.sculptor.shipping.core.mapper.ShipIdMapper; import org.springframework.stereotype.Repository; import com.mongodb.DBObject; /** * Repository implementation for ShipEvent */ @Repository("shipEventRepository") public class ShipEventRepositoryImpl extends ShipEventRepositoryBase { public ShipEventRepositoryImpl() { } @Override public List<ShipEvent> findAllForShip(ShipId shipId) { DBObject shipIdDBObject = ShipIdMapper.getInstance().toData(shipId); List<ConditionalCriteria> criteria = ConditionalCriteriaBuilder.criteriaFor(ShipEvent.class) .withProperty(ship()).eq(shipIdDBObject) .orderBy(changeSequence()).build(); return findByCondition(criteria); } }