src/share/jaxws_classes/javax/xml/bind/DatatypeConverterInterface.java

changeset 0
373ffda63c9a
child 637
9c07ef4934dd
equal deleted inserted replaced
-1:000000000000 0:373ffda63c9a
1 /*
2 * Copyright (c) 2003, 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 javax.xml.bind;
27
28 /**
29 * <p>
30 * The DatatypeConverterInterface is for JAXB provider use only. A
31 * JAXB provider must supply a class that implements this interface.
32 * JAXB Providers are required to call the
33 * {@link DatatypeConverter#setDatatypeConverter(DatatypeConverterInterface)
34 * DatatypeConverter.setDatatypeConverter} api at
35 * some point before the first marshal or unmarshal operation (perhaps during
36 * the call to JAXBContext.newInstance). This step is necessary to configure
37 * the converter that should be used to perform the print and parse
38 * functionality. Calling this api repeatedly will have no effect - the
39 * DatatypeConverter instance passed into the first invocation is the one that
40 * will be used from then on.
41 * </p>
42 *
43 * <p>
44 * This interface defines the parse and print methods. There is one
45 * parse and print method for each XML schema datatype specified in the
46 * the default binding Table 5-1 in the JAXB specification.
47 * </p>
48 *
49 * <p>
50 * The parse and print methods defined here are invoked by the static parse
51 * and print methods defined in the {@link DatatypeConverter DatatypeConverter}
52 * class.
53 * </p>
54 *
55 * <p>
56 * A parse method for a XML schema datatype must be capable of converting any
57 * lexical representation of the XML schema datatype ( specified by the
58 * <a href="http://www.w3.org/TR/xmlschema-2/"> XML Schema Part2: Datatypes
59 * specification</a> into a value in the value space of the XML schema datatype.
60 * If an error is encountered during conversion, then an IllegalArgumentException
61 * or a subclass of IllegalArgumentException must be thrown by the method.
62 *
63 * </p>
64 *
65 * <p>
66 * A print method for a XML schema datatype can output any lexical
67 * representation that is valid with respect to the XML schema datatype.
68 * If an error is encountered during conversion, then an IllegalArgumentException,
69 * or a subclass of IllegalArgumentException must be thrown by the method.
70 * </p>
71 *
72 * The prefix xsd: is used to refer to XML schema datatypes
73 * <a href="http://www.w3.org/TR/xmlschema-2/"> XML Schema Part2: Datatypes
74 * specification.</a>
75 *
76 * <p>
77 * @author <ul><li>Sekhar Vajjhala, Sun Microsystems, Inc.</li><li>Joe Fialli, Sun Microsystems Inc.</li><li>Kohsuke Kawaguchi, Sun Microsystems, Inc.</li><li>Ryan Shoemaker,Sun Microsystems Inc.</li></ul>
78 * @see DatatypeConverter
79 * @see ParseConversionEvent
80 * @see PrintConversionEvent
81 * @since JAXB1.0
82 */
83
84 public interface DatatypeConverterInterface {
85 /**
86 * <p>
87 * Convert the string argument into a string.
88 * @param lexicalXSDString
89 * A lexical representation of the XML Schema datatype xsd:string
90 * @return
91 * A string that is the same as the input string.
92 */
93 public String parseString( String lexicalXSDString );
94
95 /**
96 * <p>
97 * Convert the string argument into a BigInteger value.
98 * @param lexicalXSDInteger
99 * A string containing a lexical representation of
100 * xsd:integer.
101 * @return
102 * A BigInteger value represented by the string argument.
103 * @throws NumberFormatException <code>lexicalXSDInteger</code> is not a valid string representation of a {@link java.math.BigInteger} value.
104 */
105 public java.math.BigInteger parseInteger( String lexicalXSDInteger );
106
107 /**
108 * <p>
109 * Convert the string argument into an int value.
110 * @param lexicalXSDInt
111 * A string containing a lexical representation of
112 * xsd:int.
113 * @return
114 * An int value represented byte the string argument.
115 * @throws NumberFormatException <code>lexicalXSDInt</code> is not a valid string representation of an <code>int</code> value.
116 */
117 public int parseInt( String lexicalXSDInt );
118
119 /**
120 * <p>
121 * Converts the string argument into a long value.
122 * @param lexicalXSDLong
123 * A string containing lexical representation of
124 * xsd:long.
125 * @return
126 * A long value represented by the string argument.
127 * @throws NumberFormatException <code>lexicalXSDLong</code> is not a valid string representation of a <code>long</code> value.
128 */
129 public long parseLong( String lexicalXSDLong );
130
131 /**
132 * <p>
133 * Converts the string argument into a short value.
134 * @param lexicalXSDShort
135 * A string containing lexical representation of
136 * xsd:short.
137 * @return
138 * A short value represented by the string argument.
139 * @throws NumberFormatException <code>lexicalXSDShort</code> is not a valid string representation of a <code>short</code> value.
140 */
141 public short parseShort( String lexicalXSDShort );
142
143 /**
144 * <p>
145 * Converts the string argument into a BigDecimal value.
146 * @param lexicalXSDDecimal
147 * A string containing lexical representation of
148 * xsd:decimal.
149 * @return
150 * A BigDecimal value represented by the string argument.
151 * @throws NumberFormatException <code>lexicalXSDDecimal</code> is not a valid string representation of {@link java.math.BigDecimal}.
152 */
153 public java.math.BigDecimal parseDecimal( String lexicalXSDDecimal );
154
155 /**
156 * <p>
157 * Converts the string argument into a float value.
158 * @param lexicalXSDFloat
159 * A string containing lexical representation of
160 * xsd:float.
161 * @return
162 * A float value represented by the string argument.
163 * @throws NumberFormatException <code>lexicalXSDFloat</code> is not a valid string representation of a <code>float</code> value.
164 */
165 public float parseFloat( String lexicalXSDFloat );
166
167 /**
168 * <p>
169 * Converts the string argument into a double value.
170 * @param lexicalXSDDouble
171 * A string containing lexical representation of
172 * xsd:double.
173 * @return
174 * A double value represented by the string argument.
175 * @throws NumberFormatException <code>lexicalXSDDouble</code> is not a valid string representation of a <code>double</code> value.
176 */
177 public double parseDouble( String lexicalXSDDouble );
178
179 /**
180 * <p>
181 * Converts the string argument into a boolean value.
182 * @param lexicalXSDBoolean
183 * A string containing lexical representation of
184 * xsd:boolean.
185 * @return
186 * A boolean value represented by the string argument.
187 * @throws IllegalArgumentException if string parameter does not conform to lexical value space defined in XML Schema Part 2: Datatypes for xsd:boolean.
188 */
189 public boolean parseBoolean( String lexicalXSDBoolean );
190
191 /**
192 * <p>
193 * Converts the string argument into a byte value.
194 * @param lexicalXSDByte
195 * A string containing lexical representation of
196 * xsd:byte.
197 * @return
198 * A byte value represented by the string argument.
199 * @throws NumberFormatException <code>lexicalXSDByte</code> does not contain a parseable byte.
200 * @throws IllegalArgumentException if string parameter does not conform to lexical value space defined in XML Schema Part 2: Datatypes for xsd:byte.
201 */
202 public byte parseByte( String lexicalXSDByte );
203
204 /**
205 * <p>
206 * Converts the string argument into a QName value.
207 *
208 * <p>
209 * String parameter <tt>lexicalXSDQname</tt> must conform to lexical value space specifed at
210 * <a href="http://www.w3.org/TR/xmlschema-2/#QName">XML Schema Part 2:Datatypes specification:QNames</a>
211 *
212 * @param lexicalXSDQName
213 * A string containing lexical representation of xsd:QName.
214 * @param nsc
215 * A namespace context for interpreting a prefix within a QName.
216 * @return
217 * A QName value represented by the string argument.
218 * @throws IllegalArgumentException if string parameter does not conform to XML Schema Part 2 specification or
219 * if namespace prefix of <tt>lexicalXSDQname</tt> is not bound to a URI in NamespaceContext <tt>nsc</tt>.
220 */
221 public javax.xml.namespace.QName parseQName( String lexicalXSDQName,
222 javax.xml.namespace.NamespaceContext nsc);
223
224 /**
225 * <p>
226 * Converts the string argument into a Calendar value.
227 * @param lexicalXSDDateTime
228 * A string containing lexical representation of
229 * xsd:datetime.
230 * @return
231 * A Calendar object represented by the string argument.
232 * @throws IllegalArgumentException if string parameter does not conform to lexical value space defined in XML Schema Part 2: Datatypes for xsd:dateTime.
233 */
234 public java.util.Calendar parseDateTime( String lexicalXSDDateTime );
235
236 /**
237 * <p>
238 * Converts the string argument into an array of bytes.
239 * @param lexicalXSDBase64Binary
240 * A string containing lexical representation
241 * of xsd:base64Binary.
242 * @return
243 * An array of bytes represented by the string argument.
244 * @throws IllegalArgumentException if string parameter does not conform to lexical value space defined in XML Schema Part 2: Datatypes for xsd:base64Binary
245 */
246 public byte[] parseBase64Binary( String lexicalXSDBase64Binary );
247
248 /**
249 * <p>
250 * Converts the string argument into an array of bytes.
251 * @param lexicalXSDHexBinary
252 * A string containing lexical representation of
253 * xsd:hexBinary.
254 * @return
255 * An array of bytes represented by the string argument.
256 * @throws IllegalArgumentException if string parameter does not conform to lexical value space defined in XML Schema Part 2: Datatypes for xsd:hexBinary.
257 */
258 public byte[] parseHexBinary( String lexicalXSDHexBinary );
259
260 /**
261 * <p>
262 * Converts the string argument into a long value.
263 * @param lexicalXSDUnsignedInt
264 * A string containing lexical representation
265 * of xsd:unsignedInt.
266 * @return
267 * A long value represented by the string argument.
268 * @throws NumberFormatException if string parameter can not be parsed into a <tt>long</tt> value.
269 */
270 public long parseUnsignedInt( String lexicalXSDUnsignedInt );
271
272 /**
273 * <p>
274 * Converts the string argument into an int value.
275 * @param lexicalXSDUnsignedShort
276 * A string containing lexical
277 * representation of xsd:unsignedShort.
278 * @return
279 * An int value represented by the string argument.
280 * @throws NumberFormatException if string parameter can not be parsed into an <tt>int</tt> value.
281 */
282 public int parseUnsignedShort( String lexicalXSDUnsignedShort );
283
284 /**
285 * <p>
286 * Converts the string argument into a Calendar value.
287 * @param lexicalXSDTime
288 * A string containing lexical representation of
289 * xsd:Time.
290 * @return
291 * A Calendar value represented by the string argument.
292 * @throws IllegalArgumentException if string parameter does not conform to lexical value space defined in XML Schema Part 2: Datatypes for xsd:Time.
293 */
294 public java.util.Calendar parseTime( String lexicalXSDTime );
295
296 /**
297 * <p>
298 * Converts the string argument into a Calendar value.
299 * @param lexicalXSDDate
300 * A string containing lexical representation of
301 * xsd:Date.
302 * @return
303 * A Calendar value represented by the string argument.
304 * @throws IllegalArgumentException if string parameter does not conform to lexical value space defined in XML Schema Part 2: Datatypes for xsd:Date.
305 */
306 public java.util.Calendar parseDate( String lexicalXSDDate );
307
308 /**
309 * <p>
310 * Return a string containing the lexical representation of the
311 * simple type.
312 * @param lexicalXSDAnySimpleType
313 * A string containing lexical
314 * representation of the simple type.
315 * @return
316 * A string containing the lexical representation of the
317 * simple type.
318 */
319 public String parseAnySimpleType( String lexicalXSDAnySimpleType );
320
321 /**
322 * <p>
323 * Converts the string argument into a string.
324 * @param val
325 * A string value.
326 * @return
327 * A string containing a lexical representation of xsd:string
328 */
329 public String printString( String val );
330
331 /**
332 * <p>
333 * Converts a BigInteger value into a string.
334 * @param val
335 * A BigInteger value
336 * @return
337 * A string containing a lexical representation of xsd:integer
338 * @throws IllegalArgumentException <tt>val</tt> is null.
339 */
340 public String printInteger( java.math.BigInteger val );
341
342 /**
343 * <p>
344 * Converts an int value into a string.
345 * @param val
346 * An int value
347 * @return
348 * A string containing a lexical representation of xsd:int
349 */
350 public String printInt( int val );
351
352
353 /**
354 * <p>
355 * Converts a long value into a string.
356 * @param val
357 * A long value
358 * @return
359 * A string containing a lexical representation of xsd:long
360 */
361 public String printLong( long val );
362
363 /**
364 * <p>
365 * Converts a short value into a string.
366 * @param val
367 * A short value
368 * @return
369 * A string containing a lexical representation of xsd:short
370 */
371 public String printShort( short val );
372
373 /**
374 * <p>
375 * Converts a BigDecimal value into a string.
376 * @param val
377 * A BigDecimal value
378 * @return
379 * A string containing a lexical representation of xsd:decimal
380 * @throws IllegalArgumentException <tt>val</tt> is null.
381 */
382 public String printDecimal( java.math.BigDecimal val );
383
384 /**
385 * <p>
386 * Converts a float value into a string.
387 * @param val
388 * A float value
389 * @return
390 * A string containing a lexical representation of xsd:float
391 */
392 public String printFloat( float val );
393
394 /**
395 * <p>
396 * Converts a double value into a string.
397 * @param val
398 * A double value
399 * @return
400 * A string containing a lexical representation of xsd:double
401 */
402 public String printDouble( double val );
403
404 /**
405 * <p>
406 * Converts a boolean value into a string.
407 * @param val
408 * A boolean value
409 * @return
410 * A string containing a lexical representation of xsd:boolean
411 */
412 public String printBoolean( boolean val );
413
414 /**
415 * <p>
416 * Converts a byte value into a string.
417 * @param val
418 * A byte value
419 * @return
420 * A string containing a lexical representation of xsd:byte
421 */
422 public String printByte( byte val );
423
424 /**
425 * <p>
426 * Converts a QName instance into a string.
427 * @param val
428 * A QName value
429 * @param nsc
430 * A namespace context for interpreting a prefix within a QName.
431 * @return
432 * A string containing a lexical representation of QName
433 * @throws IllegalArgumentException if <tt>val</tt> is null or
434 * if <tt>nsc</tt> is non-null or <tt>nsc.getPrefix(nsprefixFromVal)</tt> is null.
435 */
436 public String printQName( javax.xml.namespace.QName val,
437 javax.xml.namespace.NamespaceContext nsc );
438
439 /**
440 * <p>
441 * Converts a Calendar value into a string.
442 * @param val
443 * A Calendar value
444 * @return
445 * A string containing a lexical representation of xsd:dateTime
446 * @throws IllegalArgumentException if <tt>val</tt> is null.
447 */
448 public String printDateTime( java.util.Calendar val );
449
450 /**
451 * <p>
452 * Converts an array of bytes into a string.
453 * @param val
454 * an array of bytes
455 * @return
456 * A string containing a lexical representation of xsd:base64Binary
457 * @throws IllegalArgumentException if <tt>val</tt> is null.
458 */
459 public String printBase64Binary( byte[] val );
460
461 /**
462 * <p>
463 * Converts an array of bytes into a string.
464 * @param val
465 * an array of bytes
466 * @return
467 * A string containing a lexical representation of xsd:hexBinary
468 * @throws IllegalArgumentException if <tt>val</tt> is null.
469 */
470 public String printHexBinary( byte[] val );
471
472 /**
473 * <p>
474 * Converts a long value into a string.
475 * @param val
476 * A long value
477 * @return
478 * A string containing a lexical representation of xsd:unsignedInt
479 */
480 public String printUnsignedInt( long val );
481
482 /**
483 * <p>
484 * Converts an int value into a string.
485 * @param val
486 * An int value
487 * @return
488 * A string containing a lexical representation of xsd:unsignedShort
489 */
490 public String printUnsignedShort( int val );
491
492 /**
493 * <p>
494 * Converts a Calendar value into a string.
495 * @param val
496 * A Calendar value
497 * @return
498 * A string containing a lexical representation of xsd:time
499 * @throws IllegalArgumentException if <tt>val</tt> is null.
500 */
501 public String printTime( java.util.Calendar val );
502
503 /**
504 * <p>
505 * Converts a Calendar value into a string.
506 * @param val
507 * A Calendar value
508 * @return
509 * A string containing a lexical representation of xsd:date
510 * @throws IllegalArgumentException if <tt>val</tt> is null.
511 */
512 public String printDate( java.util.Calendar val );
513
514 /**
515 * <p>
516 * Converts a string value into a string.
517 * @param val
518 * A string value
519 * @return
520 * A string containing a lexical representation of xsd:AnySimpleType
521 */
522 public String printAnySimpleType( String val );
523 }

mercurial