package org.oliot.epcis.service.query;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.ParameterStyle;
import javax.xml.ws.ResponseWrapper;
import org.oliot.model.epcis.DuplicateSubscriptionException;
import org.oliot.model.epcis.GetSubscriptionIDs;
import org.oliot.model.epcis.ImplementationException;
import org.oliot.model.epcis.InvalidURIException;
import org.oliot.model.epcis.NoSuchNameException;
import org.oliot.model.epcis.NoSuchSubscriptionException;
import org.oliot.model.epcis.Poll;
import org.oliot.model.epcis.QueryParameterException;
import org.oliot.model.epcis.QueryResults;
import org.oliot.model.epcis.QueryTooComplexException;
import org.oliot.model.epcis.QueryTooLargeException;
import org.oliot.model.epcis.SecurityException;
import org.oliot.model.epcis.Subscribe;
import org.oliot.model.epcis.SubscribeNotPermittedException;
import org.oliot.model.epcis.SubscriptionControlsException;
import org.oliot.model.epcis.Unsubscribe;
import org.oliot.model.epcis.ValidationException;
/**
* Copyright (C) 2014-2016 Jaewook Byun
*
* This project is part of Oliot open source (http://oliot.org). Oliot EPCIS
* v1.2.x is Java Web Service complying with Electronic Product Code Information
* Service (EPCIS) v1.2.
*
* @author Jaewook Byun, Ph.D student
*
* Korea Advanced Institute of Science and Technology (KAIST)
*
* Real-time Embedded System Laboratory(RESL)
*
* bjw0829@kaist.ac.kr, bjw0829@gmail.com
*/
@WebService(targetNamespace = "urn:epcglobal:epcis-query:xsd:1")
@SOAPBinding(parameterStyle = ParameterStyle.BARE)
public interface CoreQueryService {
@WebMethod(operationName = "Subscribe")
public void subscribe(@WebParam(name = "Subscribe") Subscribe subscribe)
throws NoSuchNameException, InvalidURIException, DuplicateSubscriptionException, QueryParameterException,
QueryTooComplexException, SubscriptionControlsException, SubscribeNotPermittedException, SecurityException,
ValidationException, ImplementationException;
@WebMethod(operationName = "Unsubscribe")
public void unsubscribe(@WebParam(name = "Unsubscribe") Unsubscribe unsubscribe)
throws NoSuchSubscriptionException, ValidationException, ImplementationException;
@WebMethod(operationName = "Poll")
@WebResult(name = "QueryResults")
public QueryResults poll(@WebParam(name = "Poll") Poll poll)
throws QueryParameterException, QueryTooLargeException, QueryTooComplexException, NoSuchNameException,
SecurityException, ValidationException, ImplementationException;
@WebMethod(operationName = "GetQueryNames")
public List<String> getQueryNames() throws SecurityException, ValidationException, ImplementationException;
@WebMethod(operationName = "GetSubscriptionIDs")
public List<String> getSubscriptionIDs(@WebParam(name = "GetSubscriptionIDs") GetSubscriptionIDs getSubscriptionIDs)
throws NoSuchNameException, SecurityException, ValidationException, ImplementationException;
@WebMethod(operationName = "GetStandardVersion")
@ResponseWrapper(targetNamespace = "urn:epcglobal:epcis-query:xsd:1", localName = "GetStandardVersionResponse")
public String getStandardVersion() throws SecurityException, ValidationException, ImplementationException;
@WebMethod(operationName = "GetVendorVersion")
public String getVendorVersion() throws SecurityException, ValidationException, ImplementationException;
}