package fr.openwide.core.jpa.more.business.execution.service; import java.util.Date; import java.util.List; import fr.openwide.core.jpa.business.generic.service.IGenericEntityService; import fr.openwide.core.jpa.exception.SecurityServiceException; import fr.openwide.core.jpa.exception.ServiceException; import fr.openwide.core.jpa.more.business.execution.model.AbstractExecution; import fr.openwide.core.jpa.more.business.execution.model.ExecutionStatus; import fr.openwide.core.jpa.more.business.execution.model.IExecutionType; public interface IAbstractExecutionService<E extends AbstractExecution<E, ET>, ET extends IExecutionType> extends IGenericEntityService<Long, E> { E start(E execution, ET type) throws ServiceException, SecurityServiceException; void close(E execution, fr.openwide.core.jpa.more.business.execution.model.ExecutionStatus executionStatus) throws ServiceException, SecurityServiceException; List<E> listOrdered(Integer limit, Integer offset); List<E> listOrderedByDateTypeStatus(Date startDate, Date endDate, IExecutionType executionType, ExecutionStatus executionStatus, Integer limit, Integer offset); }