src/share/jaxws_classes/com/sun/xml/internal/ws/api/model/wsdl/WSDLBoundOperation.java

changeset 0
373ffda63c9a
child 637
9c07ef4934dd
equal deleted inserted replaced
-1:000000000000 0:373ffda63c9a
1 /*
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package com.sun.xml.internal.ws.api.model.wsdl;
27
28 import com.sun.istack.internal.NotNull;
29 import com.sun.istack.internal.Nullable;
30 import com.sun.xml.internal.ws.api.model.ParameterBinding;
31
32 import javax.jws.WebParam.Mode;
33 import javax.xml.namespace.QName;
34
35 import java.util.Map;
36
37 /**
38 * Abstracts wsdl:binding/wsdl:operation. It can be used to determine the parts and their binding.
39 *
40 * @author Vivek Pandey
41 */
42 public interface WSDLBoundOperation extends WSDLObject, WSDLExtensible {
43 /**
44 * Short-cut for {@code getOperation().getName()}
45 */
46 @NotNull QName getName();
47
48 /**
49 * Gives soapbinding:operation@soapAction value. soapbinding:operation@soapAction is optional attribute.
50 * If not present an empty String is returned as per BP 1.1 R2745.
51 */
52 @NotNull String getSOAPAction();
53
54 /**
55 * Gets the wsdl:portType/wsdl:operation model - {@link WSDLOperation},
56 * associated with this binding operation.
57 *
58 * @return always same {@link WSDLOperation}
59 */
60 @NotNull WSDLOperation getOperation();
61
62 /**
63 * Gives the owner {@link WSDLBoundPortType}
64 */
65 @NotNull WSDLBoundPortType getBoundPortType();
66
67 /**
68 * Gets the soapbinding:binding/operation/wsaw:Anonymous. A default value of OPTIONAL is returned.
69 *
70 * @return Anonymous value of the operation
71 */
72 ANONYMOUS getAnonymous();
73
74 enum ANONYMOUS { optional, required, prohibited }
75
76 /**
77 * Gets {@link WSDLPart} for the given wsdl:input or wsdl:output part
78 *
79 * @return null if no part is found
80 */
81 @Nullable WSDLPart getPart(@NotNull String partName, @NotNull Mode mode);
82
83 /**
84 * Gets {@link ParameterBinding} for a given wsdl part in wsdl:input
85 *
86 * @param part Name of wsdl:part, must be non-null
87 * @return null if the part is not found.
88 */
89 public ParameterBinding getInputBinding(String part);
90
91 /**
92 * Gets {@link ParameterBinding} for a given wsdl part in wsdl:output
93 *
94 * @param part Name of wsdl:part, must be non-null
95 * @return null if the part is not found.
96 */
97 public ParameterBinding getOutputBinding(String part);
98
99 /**
100 * Gets {@link ParameterBinding} for a given wsdl part in wsdl:fault
101 *
102 * @param part Name of wsdl:part, must be non-null
103 * @return null if the part is not found.
104 */
105 public ParameterBinding getFaultBinding(String part);
106
107 /**
108 * Gets the MIME type for a given wsdl part in wsdl:input
109 *
110 * @param part Name of wsdl:part, must be non-null
111 * @return null if the part is not found.
112 */
113 public String getMimeTypeForInputPart(String part);
114
115 /**
116 * Gets the MIME type for a given wsdl part in wsdl:output
117 *
118 * @param part Name of wsdl:part, must be non-null
119 * @return null if the part is not found.
120 */
121 public String getMimeTypeForOutputPart(String part);
122
123 /**
124 * Gets the MIME type for a given wsdl part in wsdl:fault
125 *
126 * @param part Name of wsdl:part, must be non-null
127 * @return null if the part is not found.
128 */
129 public String getMimeTypeForFaultPart(String part);
130
131 /**
132 * Gets all inbound {@link WSDLPart} by its {@link WSDLPart#getName() name}.
133 */
134 @NotNull Map<String,? extends WSDLPart> getInParts();
135
136 /**
137 * Gets all outbound {@link WSDLPart} by its {@link WSDLPart#getName() name}.
138 */
139 @NotNull Map<String,? extends WSDLPart> getOutParts();
140
141 /**
142 * Gets all the {@link WSDLFault} bound to this operation.
143 */
144 @NotNull Iterable<? extends WSDLBoundFault> getFaults();
145
146 /**
147 * Map of wsdl:input part name and the binding as {@link ParameterBinding}
148 *
149 * @return empty Map if there is no parts
150 */
151 public Map<String, ParameterBinding> getInputParts();
152
153 /**
154 * Map of wsdl:output part name and the binding as {@link ParameterBinding}
155 *
156 * @return empty Map if there is no parts
157 */
158 public Map<String, ParameterBinding> getOutputParts();
159
160 /**
161 * Map of wsdl:fault part name and the binding as {@link ParameterBinding}
162 *
163 * @return empty Map if there is no parts
164 */
165 public Map<String, ParameterBinding> getFaultParts();
166
167 /**
168 * Gets the payload QName of the request message.
169 *
170 * <p>
171 * It's possible for an operation to define no body part, in which case
172 * this method returns null.
173 */
174 @Nullable QName getRequestPayloadName();
175
176 /**
177 * Gets the payload QName of the response message.
178 *
179 * <p>
180 * It's possible for an operation to define no body part, in which case
181 * this method returns null.
182 */
183 @Nullable QName getResponsePayloadName();
184
185 /**
186 * Gets the namespace of request payload.
187 */
188 String getRequestNamespace();
189
190 /**
191 * Gets the namespace of response payload.
192 */
193 String getResponseNamespace();
194
195 }

mercurial