
package jp.co.argo21.nautica.workflow.soap;

import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;
import jp.co.argo21.nautica.workflow.soap.message.Filter;
import jp.co.argo21.nautica.workflow.soap.message.ProcDef;
import jp.co.argo21.nautica.workflow.soap.message.ProcessDefinitionState;


/**
 * This class was generated by the JAXWS SI.
 * JAX-WS RI 2.0_02-b08-fcs
 * Generated source version: 2.0
 * 
 */
@WebService(name = "DefinitionRepository", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message")
public interface DefinitionRepository {


    /**
     * 
     * @param pdid
     * @param session
     * @param state
     * @throws InvalidStateException
     * @throws InvalidSessionException
     * @throws TransitionNotAllowedException
     * @throws InvalidProcessDefinitionException
     */
    @WebMethod
    @RequestWrapper(localName = "changeProcessDefinitionState", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.ChangeProcessDefinitionState")
    @ResponseWrapper(localName = "changeProcessDefinitionStateResponse", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.ChangeProcessDefinitionStateResponse")
    public void changeProcessDefinitionState(
        @WebParam(name = "session", targetNamespace = "")
        String session,
        @WebParam(name = "pdid", targetNamespace = "")
        String pdid,
        @WebParam(name = "state", targetNamespace = "")
        ProcessDefinitionState state)
        throws InvalidProcessDefinitionException, InvalidSessionException, InvalidStateException, TransitionNotAllowedException
    ;

    /**
     * 
     * @param pdid
     * @param session
     * @return
     *     returns java.util.List<jp.co.argo21.nautica.workflow.soap.message.ProcessDefinitionState>
     * @throws InvalidSessionException
     * @throws InvalidProcessDefinitionException
     */
    @WebMethod
    @WebResult(targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message")
    @RequestWrapper(localName = "getProcessDefinitionStates", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.GetProcessDefinitionStates")
    @ResponseWrapper(localName = "getProcessDefinitionStatesResponse", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.GetProcessDefinitionStatesResponse")
    public List<ProcessDefinitionState> getProcessDefinitionStates(
        @WebParam(name = "session", targetNamespace = "")
        String session,
        @WebParam(name = "pdid", targetNamespace = "")
        String pdid)
        throws InvalidProcessDefinitionException, InvalidSessionException
    ;

    /**
     * 
     * @param session
     * @param filter
     * @return
     *     returns java.util.List<jp.co.argo21.nautica.workflow.soap.message.ProcDef>
     * @throws InvalidFilterException
     * @throws InvalidSessionException
     */
    @WebMethod
    @WebResult(targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message")
    @RequestWrapper(localName = "getProcessDefinitions", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.GetProcessDefinitions")
    @ResponseWrapper(localName = "getProcessDefinitionsResponse", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.GetProcessDefinitionsResponse")
    public List<ProcDef> getProcessDefinitions(
        @WebParam(name = "session", targetNamespace = "")
        String session,
        @WebParam(name = "filter", targetNamespace = "")
        List<Filter> filter)
        throws InvalidFilterException, InvalidSessionException
    ;

    /**
     * 
     * @param session
     * @param name
     * @param path
     * @throws WorkflowException
     * @throws InvalidSessionException
     */
    @WebMethod
    @RequestWrapper(localName = "registerDefinition", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.RegisterDefinition")
    @ResponseWrapper(localName = "registerDefinitionResponse", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.RegisterDefinitionResponse")
    public void registerDefinition(
        @WebParam(name = "session", targetNamespace = "")
        String session,
        @WebParam(name = "name", targetNamespace = "")
        String name,
        @WebParam(name = "path", targetNamespace = "")
        String path)
        throws InvalidSessionException, WorkflowException
    ;

}
