package com.cim.idm.mwmsextend.transport.management;

import java.util.List;

import com.cim.idm.mwmsextend.transport.management.data.TransportCommand;
import com.cim.idm.mwmsextend.transport.management.data.TransportCommandDetail;
import com.cim.idm.mwmsextend.transport.management.data.TransportCommandDetailKey;
import com.cim.idm.mwmsextend.transport.management.data.TransportCommandKey;
import com.cim.idm.mwmsextend.transport.management.info.CreateDetailInfo;
import com.cim.idm.mwmsextend.transport.management.info.CreateInfo;
import com.cim.idm.mwmsextend.transport.management.info.SetDetailEventInfo;
import com.cim.idm.mwmsextend.transport.management.info.SetEventInfo;
import com.cim.idm.framework.data.EventInfo;
import com.cim.idm.framework.exception.IDMFrameDBErrorSignal;
import com.cim.idm.framework.exception.ext.DuplicateNameSignal;
import com.cim.idm.framework.exception.ext.FrameworkErrorSignal;
import com.cim.idm.framework.exception.ext.NotFoundSignal;
import com.cim.idm.framework.orm.service.CommonService;

public interface TransportCommandDetailService extends CommonService<TransportCommandDetailKey, TransportCommandDetail>{
	public List<TransportCommandDetail> select(String condition, Object[] bindSet
			) throws IDMFrameDBErrorSignal;
	public TransportCommandDetail create(EventInfo eventInfo, CreateDetailInfo createDetailInfo)
			throws NotFoundSignal, DuplicateNameSignal, FrameworkErrorSignal;
	
	public TransportCommandDetail[] create(EventInfo eventInfo,
			List<CreateDetailInfo> createDetailInfoList) throws NotFoundSignal,
			DuplicateNameSignal, FrameworkErrorSignal;
	
	public TransportCommandDetail setEvent(TransportCommandDetailKey key, EventInfo eventInfo,
			SetDetailEventInfo setDetailEventInfo) throws NotFoundSignal,
			DuplicateNameSignal, FrameworkErrorSignal;
	
	public TransportCommandDetail[] setEvent(List<TransportCommandDetailKey> keyList, EventInfo eventInfo,
			List<SetDetailEventInfo> setDetailEventInfoList) throws NotFoundSignal,
			DuplicateNameSignal, FrameworkErrorSignal;
	
	public TransportCommandDetail[] setEvent(List<TransportCommandDetailKey> keyList, EventInfo eventInfo,
			SetDetailEventInfo setDetailEventInfo) throws NotFoundSignal,
			DuplicateNameSignal, FrameworkErrorSignal;
}
