001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017 package javax.jbi.servicedesc;
018
019 import javax.xml.namespace.QName;
020
021 /**
022 * Reference to an endpoint, used to refer to an endpoint as well as
023 * query information about the endpoint. An endpoint is an addressable
024 * entity in the JBI system, used for accessing the provider of a
025 * specific service.
026 *
027 * @author JSR208 Expert Group
028 */
029 public interface ServiceEndpoint {
030
031 /**
032 * Get a reference to this endpoint, using an endpoint reference
033 * vocabulary that is known to the provider.
034 *
035 * @param operationName the name of the operation to be performed by a
036 * consumer of the generated endpoint reference. Set
037 * to null if this is not applicable.
038 * @return endpoint reference as an XML fragment; null if the provider
039 * does not support such references.
040 */
041 org.w3c.dom.DocumentFragment getAsReference(QName operationName);
042
043 /**
044 * Returns the name of this endpoint.
045 *
046 * @return the endpoint name
047 */
048 String getEndpointName();
049
050 /**
051 * Get the qualified names of all the interfaces implemented by this
052 * service endpoint.
053 *
054 * @return array of all interfaces implemented by this service endpoint;
055 * must be non-null and non-empty.
056 */
057 javax.xml.namespace.QName[] getInterfaces();
058
059 /**
060 * Returns the service name of this endpoint.
061 *
062 * @return the qualified service name.
063 */
064 javax.xml.namespace.QName getServiceName();
065 }