com.sun.xml.ws.api.server.ServiceDefinition Maven / Gradle / Ivy
/*
* Copyright (c) 1997, 2019 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0, which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
package com.sun.xml.ws.api.server;
import com.sun.istack.NotNull;
import com.sun.xml.ws.api.model.wsdl.WSDLModel;
/**
* Root of the unparsed WSDL and other resources referenced from it.
* This object represents the description of the service
* that a {@link WSEndpoint} offers.
*
*
* A description consists of a set of {@link SDDocument}, which
* each represents a single XML document that forms a part of the
* descriptor (for example, WSDL might refer to separate schema documents,
* or a WSDL might refer to another WSDL.)
*
*
* {@link ServiceDefinition} and its descendants are immutable
* read-only objects. Once they are created, they always return
* the same value.
*
*
Expected Usage
*
* This object is intended to be used for serving the descriptors
* to remote clients (such as by MEX, or other protocol-specific
* metadata query, such as HTTP GET with "?wsdl" query string.)
*
*
* This object is NOT intended to be used by other
* internal components to parse them. For that purpose, use
* {@link WSDLModel} instead.
*
* @author Kohsuke Kawaguchi
*/
public interface ServiceDefinition extends Iterable {
/**
* Gets the "primary" {@link SDDocument} that represents a WSDL.
*
*
* This WSDL eventually refers to all the other {@link SDDocument}s.
*
* @return
* always non-null.
*/
@NotNull SDDocument getPrimary();
/**
* Adds a filter that is called while writing {@link SDDocument}'s infoset. This
* filter is applied to the all the other reachable {@link SDDocument}s.
*
* @param filter that is called while writing the document
*/
void addFilter(@NotNull SDDocumentFilter filter);
}