/* JBoss, the OpenSource WebOS
 *
 * Distributable under LGPL license.
 * See terms of license at gnu.org.
 */
package javax.xml.rpc;

import java.net.URL;
import java.util.Iterator;
import java.rmi.Remote;
import javax.xml.namespace.QName;
import javax.xml.rpc.encoding.TypeMappingRegistry;
import javax.xml.rpc.handler.HandlerRegistry;

/** Service class acts as a factory for:
 * Dynamic proxy for the target service endpoint.
 * Instance of the type javax.xml.rpc.Call for the dynamic invocation of a
 *    remote operation on the target service endpoint.
 * Instance of a generated stub class
 *  
 * @author Scott.Stark@jboss.org
 * @version $Revision: 1.2.6.1 $
 */ 
public interface Service
{
   public URL getWSDLDocumentLocation();

   public Iterator getPorts() throws ServiceException;

   public QName getServiceName();

   public Call createCall() throws ServiceException;

   public TypeMappingRegistry getTypeMappingRegistry();

   public HandlerRegistry getHandlerRegistry();

   public Remote getPort(Class aClass) throws ServiceException;

   public Call createCall(QName qName) throws ServiceException;

   public Call[] getCalls(QName qName) throws ServiceException;

   public Remote getPort(QName qName, Class aClass) throws ServiceException;

   public Call createCall(QName qName, String s) throws ServiceException;

   public Call createCall(QName qName, QName qName1) throws ServiceException;
}

