001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one
003: * or more contributor license agreements. See the NOTICE file
004: * distributed with this work for additional information
005: * regarding copyright ownership. The ASF licenses this file
006: * to you under the Apache License, Version 2.0 (the
007: * "License"); you may not use this file except in compliance
008: * with the License. You may obtain a copy of the License at
009: *
010: * http://www.apache.org/licenses/LICENSE-2.0
011: *
012: * Unless required by applicable law or agreed to in writing,
013: * software distributed under the License is distributed on an
014: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015: * KIND, either express or implied. See the License for the
016: * specific language governing permissions and limitations
017: * under the License.
018: */
019: package org.apache.axis2.jaxws.description;
020:
021: import org.apache.axis2.client.ServiceClient;
022: import org.apache.axis2.context.ConfigurationContext;
023: import org.apache.axis2.jaxws.description.xml.handler.HandlerChainsType;
024: import javax.xml.namespace.QName;
025: import java.util.Collection;
026: import java.util.List;
027:
028: /**
029: * A ServiceDescription corresponds to a Service under which there can be a collection of enpdoints.
030: * In WSDL 1.1 terms, then, a ServiceDescription corresponds to a wsdl:Service under which there are
031: * one or more wsdl:Port entries. The ServiceDescription is the root of the metdata abstraction
032: * Description hierachy.
033: * <p/>
034: * The Description hierachy is:
035: * <pre>
036: * ServiceDescription
037: * EndpointDescription[]
038: * EndpointInterfaceDescription
039: * OperationDescription[]
040: * ParameterDescription[]
041: * FaultDescription[]
042: * <p/>
043: * <b>ServiceDescription details</b>
044: * <p/>
045: * CORRESPONDS TO:
046: * On the Client: The JAX-WS Service class or generated subclass.
047: * <p/>
048: * On the Server: The Service implementation. Note that there is a 1..1
049: * correspondence between a ServiceDescription and EndpointDescription
050: * on the server side.
051: * <p/>
052: * AXIS2 DELEGATE: None
053: * <p/>
054: * CHILDREN: 1..n EndpointDescription
055: * <p/>
056: * ANNOTATIONS:
057: * None
058: * <p/>
059: * WSDL ELEMENTS:
060: * service
061: * <p/>
062: * </pre>
063: */
064:
065: public interface ServiceDescription {
066: public abstract EndpointDescription[] getEndpointDescriptions();
067:
068: public abstract Collection<EndpointDescription> getEndpointDescriptions_AsCollection();
069:
070: public abstract EndpointDescription getEndpointDescription(
071: QName portQName);
072:
073: /**
074: * Return the EndpointDescriptions corresponding to the SEI class. Note that Dispatch endpoints
075: * will never be returned because they do not have an associated SEI.
076: *
077: * @param seiClass
078: * @return
079: */
080: public abstract EndpointDescription[] getEndpointDescription(
081: Class seiClass);
082:
083: public abstract ConfigurationContext getAxisConfigContext();
084:
085: public abstract ServiceClient getServiceClient(QName portQName);
086:
087: public abstract QName getServiceQName();
088:
089: public abstract HandlerChainsType getHandlerChain();
090:
091: /**
092: * Returns a list of the ports for this serivce. The ports returned are the - Ports declared
093: * ports for this Service. They can be delcared in the WSDL or via annotations. - Dynamic ports
094: * added to the service
095: *
096: * @return
097: */
098: public List<QName> getPorts();
099:
100: public ServiceRuntimeDescription getServiceRuntimeDesc(String name);
101:
102: public void setServiceRuntimeDesc(ServiceRuntimeDescription ord);
103:
104: public boolean isServerSide();
105:
106: }
|