Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPFault.java
38890 views
1
/*
2
* Copyright (c) 2004, 2012, 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 javax.xml.soap;
27
28
import java.util.Iterator;
29
import java.util.Locale;
30
31
import javax.xml.namespace.QName;
32
33
/**
34
* An element in the <code>SOAPBody</code> object that contains
35
* error and/or status information. This information may relate to
36
* errors in the <code>SOAPMessage</code> object or to problems
37
* that are not related to the content in the message itself. Problems
38
* not related to the message itself are generally errors in
39
* processing, such as the inability to communicate with an upstream
40
* server.
41
* <P>
42
* Depending on the <code>protocol</code> specified while creating the
43
* <code>MessageFactory</code> instance, a <code>SOAPFault</code> has
44
* sub-elements as defined in the SOAP 1.1/SOAP 1.2 specification.
45
*/
46
public interface SOAPFault extends SOAPBodyElement {
47
48
/**
49
* Sets this <code>SOAPFault</code> object with the given fault code.
50
*
51
* <P> Fault codes, which give information about the fault, are defined
52
* in the SOAP 1.1 specification. A fault code is mandatory and must
53
* be of type <code>Name</code>. This method provides a convenient
54
* way to set a fault code. For example,
55
*
56
* <PRE>
57
* SOAPEnvelope se = ...;
58
* // Create a qualified name in the SOAP namespace with a localName
59
* // of "Client". Note that prefix parameter is optional and is null
60
* // here which causes the implementation to use an appropriate prefix.
61
* Name qname = se.createName("Client", null,
62
* SOAPConstants.URI_NS_SOAP_ENVELOPE);
63
* SOAPFault fault = ...;
64
* fault.setFaultCode(qname);
65
* </PRE>
66
* It is preferable to use this method over {@link #setFaultCode(String)}.
67
*
68
* @param faultCodeQName a <code>Name</code> object giving the fault
69
* code to be set. It must be namespace qualified.
70
* @see #getFaultCodeAsName
71
*
72
* @exception SOAPException if there was an error in adding the
73
* <i>faultcode</i> element to the underlying XML tree.
74
*
75
* @since SAAJ 1.2
76
*/
77
public void setFaultCode(Name faultCodeQName) throws SOAPException;
78
79
/**
80
* Sets this <code>SOAPFault</code> object with the given fault code.
81
*
82
* It is preferable to use this method over {@link #setFaultCode(Name)}.
83
*
84
* @param faultCodeQName a <code>QName</code> object giving the fault
85
* code to be set. It must be namespace qualified.
86
* @see #getFaultCodeAsQName
87
*
88
* @exception SOAPException if there was an error in adding the
89
* <code>faultcode</code> element to the underlying XML tree.
90
*
91
* @see #setFaultCode(Name)
92
* @see #getFaultCodeAsQName()
93
*
94
* @since SAAJ 1.3
95
*/
96
public void setFaultCode(QName faultCodeQName) throws SOAPException;
97
98
/**
99
* Sets this <code>SOAPFault</code> object with the give fault code.
100
* <P>
101
* Fault codes, which given information about the fault, are defined in
102
* the SOAP 1.1 specification. This element is mandatory in SOAP 1.1.
103
* Because the fault code is required to be a QName it is preferable to
104
* use the {@link #setFaultCode(Name)} form of this method.
105
*
106
* @param faultCode a <code>String</code> giving the fault code to be set.
107
* It must be of the form "prefix:localName" where the prefix has
108
* been defined in a namespace declaration.
109
* @see #setFaultCode(Name)
110
* @see #getFaultCode
111
* @see SOAPElement#addNamespaceDeclaration
112
*
113
* @exception SOAPException if there was an error in adding the
114
* <code>faultCode</code> to the underlying XML tree.
115
*/
116
public void setFaultCode(String faultCode) throws SOAPException;
117
118
/**
119
* Gets the mandatory SOAP 1.1 fault code for this
120
* <code>SOAPFault</code> object as a SAAJ <code>Name</code> object.
121
* The SOAP 1.1 specification requires the value of the "faultcode"
122
* element to be of type QName. This method returns the content of the
123
* element as a QName in the form of a SAAJ Name object. This method
124
* should be used instead of the <code>getFaultCode</code> method since
125
* it allows applications to easily access the namespace name without
126
* additional parsing.
127
*
128
* @return a <code>Name</code> representing the faultcode
129
* @see #setFaultCode(Name)
130
*
131
* @since SAAJ 1.2
132
*/
133
public Name getFaultCodeAsName();
134
135
136
/**
137
* Gets the fault code for this
138
* <code>SOAPFault</code> object as a <code>QName</code> object.
139
*
140
* @return a <code>QName</code> representing the faultcode
141
*
142
* @see #setFaultCode(QName)
143
*
144
* @since SAAJ 1.3
145
*/
146
public QName getFaultCodeAsQName();
147
148
/**
149
* Gets the Subcodes for this <code>SOAPFault</code> as an iterator over
150
* <code>QNames</code>.
151
*
152
* @return an <code>Iterator</code> that accesses a sequence of
153
* <code>QNames</code>. This <code>Iterator</code> should not support
154
* the optional <code>remove</code> method. The order in which the
155
* Subcodes are returned reflects the hierarchy of Subcodes present
156
* in the fault from top to bottom.
157
*
158
* @exception UnsupportedOperationException if this message does not
159
* support the SOAP 1.2 concept of Subcode.
160
*
161
* @since SAAJ 1.3
162
*/
163
public Iterator getFaultSubcodes();
164
165
/**
166
* Removes any Subcodes that may be contained by this
167
* <code>SOAPFault</code>. Subsequent calls to
168
* <code>getFaultSubcodes</code> will return an empty iterator until a call
169
* to <code>appendFaultSubcode</code> is made.
170
*
171
* @exception UnsupportedOperationException if this message does not
172
* support the SOAP 1.2 concept of Subcode.
173
*
174
* @since SAAJ 1.3
175
*/
176
public void removeAllFaultSubcodes();
177
178
/**
179
* Adds a Subcode to the end of the sequence of Subcodes contained by this
180
* <code>SOAPFault</code>. Subcodes, which were introduced in SOAP 1.2, are
181
* represented by a recursive sequence of subelements rooted in the
182
* mandatory Code subelement of a SOAP Fault.
183
*
184
* @param subcode a QName containing the Value of the Subcode.
185
*
186
* @exception SOAPException if there was an error in setting the Subcode
187
* @exception UnsupportedOperationException if this message does not
188
* support the SOAP 1.2 concept of Subcode.
189
*
190
* @since SAAJ 1.3
191
*/
192
public void appendFaultSubcode(QName subcode) throws SOAPException;
193
194
/**
195
* Gets the fault code for this <code>SOAPFault</code> object.
196
*
197
* @return a <code>String</code> with the fault code
198
* @see #getFaultCodeAsName
199
* @see #setFaultCode
200
*/
201
public String getFaultCode();
202
203
/**
204
* Sets this <code>SOAPFault</code> object with the given fault actor.
205
* <P>
206
* The fault actor is the recipient in the message path who caused the
207
* fault to happen.
208
* <P>
209
* If this <code>SOAPFault</code> supports SOAP 1.2 then this call is
210
* equivalent to {@link #setFaultRole(String)}
211
*
212
* @param faultActor a <code>String</code> identifying the actor that
213
* caused this <code>SOAPFault</code> object
214
* @see #getFaultActor
215
*
216
* @exception SOAPException if there was an error in adding the
217
* <code>faultActor</code> to the underlying XML tree.
218
*/
219
public void setFaultActor(String faultActor) throws SOAPException;
220
221
/**
222
* Gets the fault actor for this <code>SOAPFault</code> object.
223
* <P>
224
* If this <code>SOAPFault</code> supports SOAP 1.2 then this call is
225
* equivalent to {@link #getFaultRole()}
226
*
227
* @return a <code>String</code> giving the actor in the message path
228
* that caused this <code>SOAPFault</code> object
229
* @see #setFaultActor
230
*/
231
public String getFaultActor();
232
233
/**
234
* Sets the fault string for this <code>SOAPFault</code> object
235
* to the given string.
236
* <P>
237
* If this
238
* <code>SOAPFault</code> is part of a message that supports SOAP 1.2 then
239
* this call is equivalent to:
240
* <pre>
241
* addFaultReasonText(faultString, Locale.getDefault());
242
* </pre>
243
*
244
* @param faultString a <code>String</code> giving an explanation of
245
* the fault
246
* @see #getFaultString
247
*
248
* @exception SOAPException if there was an error in adding the
249
* <code>faultString</code> to the underlying XML tree.
250
*/
251
public void setFaultString(String faultString) throws SOAPException;
252
253
/**
254
* Sets the fault string for this <code>SOAPFault</code> object
255
* to the given string and localized to the given locale.
256
* <P>
257
* If this
258
* <code>SOAPFault</code> is part of a message that supports SOAP 1.2 then
259
* this call is equivalent to:
260
* <pre>
261
* addFaultReasonText(faultString, locale);
262
* </pre>
263
*
264
* @param faultString a <code>String</code> giving an explanation of
265
* the fault
266
* @param locale a {@link java.util.Locale Locale} object indicating
267
* the native language of the <code>faultString</code>
268
* @see #getFaultString
269
*
270
* @exception SOAPException if there was an error in adding the
271
* <code>faultString</code> to the underlying XML tree.
272
*
273
* @since SAAJ 1.2
274
*/
275
public void setFaultString(String faultString, Locale locale)
276
throws SOAPException;
277
278
/**
279
* Gets the fault string for this <code>SOAPFault</code> object.
280
* <P>
281
* If this
282
* <code>SOAPFault</code> is part of a message that supports SOAP 1.2 then
283
* this call is equivalent to:
284
* <pre>
285
* String reason = null;
286
* try {
287
* reason = (String) getFaultReasonTexts().next();
288
* } catch (SOAPException e) {}
289
* return reason;
290
* </pre>
291
*
292
* @return a <code>String</code> giving an explanation of
293
* the fault
294
* @see #setFaultString(String)
295
* @see #setFaultString(String, Locale)
296
*/
297
public String getFaultString();
298
299
/**
300
* Gets the locale of the fault string for this <code>SOAPFault</code>
301
* object.
302
* <P>
303
* If this
304
* <code>SOAPFault</code> is part of a message that supports SOAP 1.2 then
305
* this call is equivalent to:
306
* <pre>
307
* Locale locale = null;
308
* try {
309
* locale = (Locale) getFaultReasonLocales().next();
310
* } catch (SOAPException e) {}
311
* return locale;
312
* </pre>
313
*
314
* @return a <code>Locale</code> object indicating the native language of
315
* the fault string or <code>null</code> if no locale was specified
316
* @see #setFaultString(String, Locale)
317
*
318
* @since SAAJ 1.2
319
*/
320
public Locale getFaultStringLocale();
321
322
/**
323
* Returns true if this <code>SOAPFault</code> has a <code>Detail</code>
324
* subelement and false otherwise. Equivalent to
325
* <code>(getDetail()!=null)</code>.
326
*
327
* @return true if this <code>SOAPFault</code> has a <code>Detail</code>
328
* subelement and false otherwise.
329
*
330
* @since SAAJ 1.3
331
*/
332
public boolean hasDetail();
333
334
/**
335
* Returns the optional detail element for this <code>SOAPFault</code>
336
* object.
337
* <P>
338
* A <code>Detail</code> object carries application-specific error
339
* information, the scope of the error information is restricted to
340
* faults in the <code>SOAPBodyElement</code> objects if this is a
341
* SOAP 1.1 Fault.
342
*
343
* @return a <code>Detail</code> object with application-specific
344
* error information if present, null otherwise
345
*/
346
public Detail getDetail();
347
348
/**
349
* Creates an optional <code>Detail</code> object and sets it as the
350
* <code>Detail</code> object for this <code>SOAPFault</code>
351
* object.
352
* <P>
353
* It is illegal to add a detail when the fault already
354
* contains a detail. Therefore, this method should be called
355
* only after the existing detail has been removed.
356
*
357
* @return the new <code>Detail</code> object
358
*
359
* @exception SOAPException if this
360
* <code>SOAPFault</code> object already contains a
361
* valid <code>Detail</code> object
362
*/
363
public Detail addDetail() throws SOAPException;
364
365
/**
366
* Returns an <code>Iterator</code> over a distinct sequence of
367
* <code>Locale</code>s for which there are associated Reason Text items.
368
* Any of these <code>Locale</code>s can be used in a call to
369
* <code>getFaultReasonText</code> in order to obtain a localized version
370
* of the Reason Text string.
371
*
372
* @return an <code>Iterator</code> over a sequence of <code>Locale</code>
373
* objects for which there are associated Reason Text items.
374
*
375
* @exception SOAPException if there was an error in retrieving
376
* the fault Reason locales.
377
* @exception UnsupportedOperationException if this message does not
378
* support the SOAP 1.2 concept of Fault Reason.
379
*
380
* @since SAAJ 1.3
381
*/
382
public Iterator getFaultReasonLocales() throws SOAPException;
383
384
/**
385
* Returns an <code>Iterator</code> over a sequence of
386
* <code>String</code> objects containing all of the Reason Text items for
387
* this <code>SOAPFault</code>.
388
*
389
* @return an <code>Iterator</code> over env:Fault/env:Reason/env:Text items.
390
*
391
* @exception SOAPException if there was an error in retrieving
392
* the fault Reason texts.
393
* @exception UnsupportedOperationException if this message does not
394
* support the SOAP 1.2 concept of Fault Reason.
395
*
396
* @since SAAJ 1.3
397
*/
398
public Iterator getFaultReasonTexts() throws SOAPException;
399
400
/**
401
* Returns the Reason Text associated with the given <code>Locale</code>.
402
* If more than one such Reason Text exists the first matching Text is
403
* returned
404
*
405
* @param locale -- the <code>Locale</code> for which a localized
406
* Reason Text is desired
407
*
408
* @return the Reason Text associated with <code>locale</code>
409
*
410
* @see #getFaultString
411
*
412
* @exception SOAPException if there was an error in retrieving
413
* the fault Reason text for the specified locale .
414
* @exception UnsupportedOperationException if this message does not
415
* support the SOAP 1.2 concept of Fault Reason.
416
*
417
* @since SAAJ 1.3
418
*/
419
public String getFaultReasonText(Locale locale) throws SOAPException;
420
421
/**
422
* Appends or replaces a Reason Text item containing the specified
423
* text message and an <i>xml:lang</i> derived from
424
* <code>locale</code>. If a Reason Text item with this
425
* <i>xml:lang</i> already exists its text value will be replaced
426
* with <code>text</code>.
427
* The <code>locale</code> parameter should not be <code>null</code>
428
* <P>
429
* Code sample:
430
*
431
* <PRE>
432
* SOAPFault fault = ...;
433
* fault.addFaultReasonText("Version Mismatch", Locale.ENGLISH);
434
* </PRE>
435
*
436
* @param text -- reason message string
437
* @param locale -- Locale object representing the locale of the message
438
*
439
* @exception SOAPException if there was an error in adding the Reason text
440
* or the <code>locale</code> passed was <code>null</code>.
441
* @exception UnsupportedOperationException if this message does not
442
* support the SOAP 1.2 concept of Fault Reason.
443
*
444
* @since SAAJ 1.3
445
*/
446
public void addFaultReasonText(String text, java.util.Locale locale)
447
throws SOAPException;
448
449
/**
450
* Returns the optional Node element value for this
451
* <code>SOAPFault</code> object. The Node element is
452
* optional in SOAP 1.2.
453
*
454
* @return Content of the env:Fault/env:Node element as a String
455
* or <code>null</code> if none
456
*
457
* @exception UnsupportedOperationException if this message does not
458
* support the SOAP 1.2 concept of Fault Node.
459
*
460
* @since SAAJ 1.3
461
*/
462
public String getFaultNode();
463
464
/**
465
* Creates or replaces any existing Node element value for
466
* this <code>SOAPFault</code> object. The Node element
467
* is optional in SOAP 1.2.
468
*
469
* @exception SOAPException if there was an error in setting the
470
* Node for this <code>SOAPFault</code> object.
471
* @exception UnsupportedOperationException if this message does not
472
* support the SOAP 1.2 concept of Fault Node.
473
*
474
*
475
* @since SAAJ 1.3
476
*/
477
public void setFaultNode(String uri) throws SOAPException;
478
479
/**
480
* Returns the optional Role element value for this
481
* <code>SOAPFault</code> object. The Role element is
482
* optional in SOAP 1.2.
483
*
484
* @return Content of the env:Fault/env:Role element as a String
485
* or <code>null</code> if none
486
*
487
* @exception UnsupportedOperationException if this message does not
488
* support the SOAP 1.2 concept of Fault Role.
489
*
490
* @since SAAJ 1.3
491
*/
492
public String getFaultRole();
493
494
/**
495
* Creates or replaces any existing Role element value for
496
* this <code>SOAPFault</code> object. The Role element
497
* is optional in SOAP 1.2.
498
*
499
* @param uri - the URI of the Role
500
*
501
* @exception SOAPException if there was an error in setting the
502
* Role for this <code>SOAPFault</code> object.
503
*
504
* @exception UnsupportedOperationException if this message does not
505
* support the SOAP 1.2 concept of Fault Role.
506
*
507
* @since SAAJ 1.3
508
*/
509
public void setFaultRole(String uri) throws SOAPException;
510
511
}
512
513