
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.Attribute;
import jp.co.argo21.nautica.workflow.soap.message.Filter;
import jp.co.argo21.nautica.workflow.soap.message.Participant;
import jp.co.argo21.nautica.workflow.soap.message.WorkItem;
import jp.co.argo21.nautica.workflow.soap.message.WorkItemState;


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


    /**
     * 
     * @param wid
     * @param session
     * @param attr
     * @throws InvalidWorkItemException
     * @throws InvalidAttributeException
     * @throws InvalidSessionException
     * @throws AttributeAssignmentFailedException
     */
    @WebMethod
    @RequestWrapper(localName = "assignWorkItemAttribute", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.AssignWorkItemAttribute")
    @ResponseWrapper(localName = "assignWorkItemAttributeResponse", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.AssignWorkItemAttributeResponse")
    public void assignWorkItemAttribute(
        @WebParam(name = "session", targetNamespace = "")
        String session,
        @WebParam(name = "wid", targetNamespace = "")
        String wid,
        @WebParam(name = "attr", targetNamespace = "")
        Attribute attr)
        throws AttributeAssignmentFailedException, InvalidAttributeException, InvalidSessionException, InvalidWorkItemException
    ;

    /**
     * 
     * @param wid
     * @param session
     * @param state
     * @throws InvalidWorkItemException
     * @throws InvalidStateException
     * @throws TransitionNotAllowedException
     * @throws InvalidSessionException
     */
    @WebMethod
    @RequestWrapper(localName = "changeWorkItemState", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.ChangeWorkItemState")
    @ResponseWrapper(localName = "changeWorkItemStateResponse", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.ChangeWorkItemStateResponse")
    public void changeWorkItemState(
        @WebParam(name = "session", targetNamespace = "")
        String session,
        @WebParam(name = "wid", targetNamespace = "")
        String wid,
        @WebParam(name = "state", targetNamespace = "")
        WorkItemState state)
        throws InvalidSessionException, InvalidStateException, InvalidWorkItemException, TransitionNotAllowedException
    ;

    /**
     * 
     * @param wid
     * @param session
     * @throws InvalidWorkItemException
     * @throws InvalidSessionException
     */
    @WebMethod
    @RequestWrapper(localName = "completeWorkItem", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.CompleteWorkItem")
    @ResponseWrapper(localName = "completeWorkItemResponse", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.CompleteWorkItemResponse")
    public void completeWorkItem(
        @WebParam(name = "session", targetNamespace = "")
        String session,
        @WebParam(name = "wid", targetNamespace = "")
        String wid)
        throws InvalidSessionException, InvalidWorkItemException
    ;

    /**
     * 
     * @param wid
     * @param session
     * @return
     *     returns jp.co.argo21.nautica.workflow.soap.message.WorkItem
     * @throws InvalidWorkItemException
     * @throws InvalidSessionException
     */
    @WebMethod
    @WebResult(targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message")
    @RequestWrapper(localName = "getWorkItem", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.GetWorkItem")
    @ResponseWrapper(localName = "getWorkItemResponse", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.GetWorkItemResponse")
    public WorkItem getWorkItem(
        @WebParam(name = "session", targetNamespace = "")
        String session,
        @WebParam(name = "wid", targetNamespace = "")
        String wid)
        throws InvalidSessionException, InvalidWorkItemException
    ;

    /**
     * 
     * @param wid
     * @param session
     * @param name
     * @return
     *     returns jp.co.argo21.nautica.workflow.soap.message.Attribute
     * @throws InvalidWorkItemException
     * @throws InvalidAttributeException
     * @throws InvalidSessionException
     */
    @WebMethod
    @WebResult(targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message")
    @RequestWrapper(localName = "getWorkItemAttributeValue", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.GetWorkItemAttributeValue")
    @ResponseWrapper(localName = "getWorkItemAttributeValueResponse", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.GetWorkItemAttributeValueResponse")
    public Attribute getWorkItemAttributeValue(
        @WebParam(name = "session", targetNamespace = "")
        String session,
        @WebParam(name = "wid", targetNamespace = "")
        String wid,
        @WebParam(name = "name", targetNamespace = "")
        String name)
        throws InvalidAttributeException, InvalidSessionException, InvalidWorkItemException
    ;

    /**
     * 
     * @param wid
     * @param session
     * @param filter
     * @return
     *     returns java.util.List<jp.co.argo21.nautica.workflow.soap.message.Attribute>
     * @throws InvalidWorkItemException
     * @throws InvalidFilterException
     * @throws InvalidSessionException
     */
    @WebMethod
    @WebResult(targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message")
    @RequestWrapper(localName = "getWorkItemAttributes", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.GetWorkItemAttributes")
    @ResponseWrapper(localName = "getWorkItemAttributesResponse", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.GetWorkItemAttributesResponse")
    public List<Attribute> getWorkItemAttributes(
        @WebParam(name = "session", targetNamespace = "")
        String session,
        @WebParam(name = "wid", targetNamespace = "")
        String wid,
        @WebParam(name = "filter", targetNamespace = "")
        List<Filter> filter)
        throws InvalidFilterException, InvalidSessionException, InvalidWorkItemException
    ;

    /**
     * 
     * @param wid
     * @param session
     * @param filter
     * @return
     *     returns java.util.List<jp.co.argo21.nautica.workflow.soap.message.WorkItemState>
     * @throws InvalidWorkItemException
     * @throws InvalidFilterException
     * @throws InvalidSessionException
     */
    @WebMethod
    @WebResult(targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message")
    @RequestWrapper(localName = "getWorkItemStates", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.GetWorkItemStates")
    @ResponseWrapper(localName = "getWorkItemStatesResponse", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.GetWorkItemStatesResponse")
    public List<WorkItemState> getWorkItemStates(
        @WebParam(name = "session", targetNamespace = "")
        String session,
        @WebParam(name = "wid", targetNamespace = "")
        String wid,
        @WebParam(name = "filter", targetNamespace = "")
        List<Filter> filter)
        throws InvalidFilterException, InvalidSessionException, InvalidWorkItemException
    ;

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

    /**
     * 
     * @param sourceUser
     * @param wid
     * @param session
     * @param targetUser
     * @throws InvalidWorkItemException
     * @throws InvalidSessionException
     * @throws InvalidTargetUserException
     * @throws InvalidSourceUserException
     */
    @WebMethod
    @RequestWrapper(localName = "reassignWorkItem", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.ReassignWorkItem")
    @ResponseWrapper(localName = "reassignWorkItemResponse", targetNamespace = "http://www.argo21.co.jp/nautica/workflow/soap/message", className = "jp.co.argo21.nautica.workflow.soap.message.ReassignWorkItemResponse")
    public void reassignWorkItem(
        @WebParam(name = "session", targetNamespace = "")
        String session,
        @WebParam(name = "sourceUser", targetNamespace = "")
        Participant sourceUser,
        @WebParam(name = "targetUser", targetNamespace = "")
        Participant targetUser,
        @WebParam(name = "wid", targetNamespace = "")
        String wid)
        throws InvalidSessionException, InvalidSourceUserException, InvalidTargetUserException, InvalidWorkItemException
    ;

}
