001: /*
002: * Portions Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
003: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
004: *
005: * This code is free software; you can redistribute it and/or modify it
006: * under the terms of the GNU General Public License version 2 only, as
007: * published by the Free Software Foundation. Sun designates this
008: * particular file as subject to the "Classpath" exception as provided
009: * by Sun in the LICENSE file that accompanied this code.
010: *
011: * This code is distributed in the hope that it will be useful, but WITHOUT
012: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
013: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
014: * version 2 for more details (a copy is included in the LICENSE file that
015: * accompanied this code).
016: *
017: * You should have received a copy of the GNU General Public License version
018: * 2 along with this work; if not, write to the Free Software Foundation,
019: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
020: *
021: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
022: * CA 95054 USA or visit www.sun.com if you need additional information or
023: * have any questions.
024: */
025: package com.sun.xml.internal.ws.spi.runtime;
026:
027: import java.net.URL;
028: import javax.xml.namespace.QName;
029: import org.xml.sax.EntityResolver;
030:
031: /**
032: * This captures all the required information (e.g: handlers, binding, endpoint
033: * object, proxy for endpoint object etc.) about the endpoint.
034: */
035: public interface RuntimeEndpointInfo {
036:
037: /**
038: * Returns the name of the endpoint
039: * @return name of the endpoint
040: */
041: public String getName();
042:
043: /**
044: * sets the name of the endpoint
045: */
046: public void setName(String name);
047:
048: /**
049: * Builds runtime model from implementor object.
050: */
051: public void init();
052:
053: /**
054: * Destroys any state in this object
055: */
056: public void destroy();
057:
058: /**
059: * This object is used for method invocations. It could be actual
060: * implementor or a proxy object. This must be set before calling deploy().
061: */
062: public void setImplementor(Object implementor);
063:
064: /**
065: * implementorClass should have <code>@WebService</code> or
066: * <code>@WebServiceProvider</code> annotation.
067: * Dynamic model is created using this object. If this is not set, implementor's
068: * class is used to create the model.
069: */
070: public void setImplementorClass(Class implementorClass);
071:
072: /**
073: * Returns actual Endpoint Object where method invocation is done
074: *
075: * @return Object Gets the endpoint implementation object or a proxy
076: */
077: public Object getImplementor();
078:
079: /**
080: * Returns the set implementorClass
081: *
082: * @return implementor's class that has the annotations
083: */
084: public Class getImplementorClass();
085:
086: /**
087: * Returns the binding for this endpoint
088: *
089: * @return Binding Returns the binding for this endpoint.
090: */
091: public Binding getBinding();
092:
093: /**
094: * sets the binding for this endpoint. If there are handlers, set them on
095: * the binding object.
096: */
097: public void setBinding(Binding binding);
098:
099: /**
100: * Returns the WebServiceContext of this endpoint
101: *
102: * @return WebServiceContext Returns the WebServiceContext of this endpoint.
103: */
104: public WebServiceContext getWebServiceContext();
105:
106: /**
107: * sets the WebServiceContext for this endpoint.
108: */
109: public void setWebServiceContext(WebServiceContext wsContext);
110:
111: /**
112: * set the URL for primary WSDL, and a resolver to resolve entities like
113: * WSDL, imports/references. A resolver for XML catalog can be created using
114: * WSRtObjectFactory.createResolver(URL catalogURL).
115: */
116: public void setWsdlInfo(URL wsdlUrl, EntityResolver resolver);
117:
118: /**
119: * Set service name from DD. If it is null, @WebService, @WebServiceProvider
120: * annotations are used to get service name
121: */
122: public void setServiceName(QName name);
123:
124: /**
125: * Set port name from DD. If it is null, @WebService, @WebServiceProvider
126: * annotations are used to get port name
127: */
128: public void setPortName(QName name);
129:
130: }
|