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

import java.util.List;

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;
import com.cim.idm.mwmsextend.checkplan.management.data.CheckPlan;
import com.cim.idm.mwmsextend.checkplan.management.data.CheckPlanKey;
import com.cim.idm.mwmsextend.checkplan.management.info.CreateInfo;
import com.cim.idm.mwmsextend.checkplan.management.info.RemoveInfo;
import com.cim.idm.mwmsextend.checkplan.management.info.SetEventInfo;

public interface CheckPlanService extends CommonService<CheckPlanKey,CheckPlan>{
	
	public CheckPlan create(EventInfo eventInfo,CreateInfo createInfo) throws NotFoundSignal,
			DuplicateNameSignal, FrameworkErrorSignal;
	
	public CheckPlan[] create(EventInfo eventInfo,List<CreateInfo> createInfoList) throws NotFoundSignal,
			DuplicateNameSignal, FrameworkErrorSignal;
	
	public List<CheckPlan> select(String condition, Object[] bindSet) throws NotFoundSignal, IDMFrameDBErrorSignal;
	
	public CheckPlan remove(CheckPlanKey key, EventInfo eventInfo,RemoveInfo removeInfo) throws NotFoundSignal, DuplicateNameSignal,
			FrameworkErrorSignal;
	
	public CheckPlan[] remove(List<CheckPlanKey> key, EventInfo eventInfo,List<RemoveInfo> removeInfo) throws NotFoundSignal, DuplicateNameSignal,
	FrameworkErrorSignal;
	
	public CheckPlan setEvent(CheckPlanKey key,EventInfo eventInfo, SetEventInfo setEventInfo)throws NotFoundSignal, DuplicateNameSignal, FrameworkErrorSignal;

	public CheckPlan[] setEvent(List<CheckPlanKey> key,EventInfo eventInfo, SetEventInfo setEventInfo)throws NotFoundSignal, DuplicateNameSignal, FrameworkErrorSignal;

	public CheckPlan[] setEvent(List<CheckPlanKey> key,EventInfo eventInfo, List<SetEventInfo> setEventInfo)throws NotFoundSignal, DuplicateNameSignal, FrameworkErrorSignal;
}
