001 //
002 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-2
003 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
004 // Any modifications to this file will be lost upon recompilation of the source schema.
005 // Generated on: 2012.04.26 at 04:53:34 AM CEST
006 //
007
008
009 package org.jomc.model;
010
011 import java.io.ByteArrayInputStream;
012 import java.io.ByteArrayOutputStream;
013 import java.io.File;
014 import java.io.IOException;
015 import java.io.InvalidClassException;
016 import java.io.NotSerializableException;
017 import java.io.ObjectInputStream;
018 import java.io.ObjectOutputStream;
019 import java.io.OptionalDataException;
020 import java.io.Serializable;
021 import java.io.StreamCorruptedException;
022 import java.lang.reflect.Array;
023 import java.lang.reflect.InvocationTargetException;
024 import java.math.BigDecimal;
025 import java.math.BigInteger;
026 import java.net.MalformedURLException;
027 import java.net.URI;
028 import java.net.URISyntaxException;
029 import java.net.URL;
030 import java.util.ArrayList;
031 import java.util.Calendar;
032 import java.util.Currency;
033 import java.util.Date;
034 import java.util.Iterator;
035 import java.util.List;
036 import java.util.Locale;
037 import java.util.TimeZone;
038 import java.util.UUID;
039 import javax.activation.MimeType;
040 import javax.activation.MimeTypeParseException;
041 import javax.annotation.Generated;
042 import javax.xml.bind.JAXBElement;
043 import javax.xml.bind.annotation.XmlAccessType;
044 import javax.xml.bind.annotation.XmlAccessorType;
045 import javax.xml.bind.annotation.XmlAnyElement;
046 import javax.xml.bind.annotation.XmlAttribute;
047 import javax.xml.bind.annotation.XmlElement;
048 import javax.xml.bind.annotation.XmlType;
049 import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
050 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
051 import javax.xml.datatype.Duration;
052 import javax.xml.datatype.XMLGregorianCalendar;
053 import javax.xml.namespace.QName;
054 import org.w3c.dom.Element;
055
056
057 /**
058 *
059 * Model of a message.
060 *
061 * The 'Message' type defines attributes 'name', 'final' and 'override'. Attribute 'name' holds a name uniquely identifying
062 * the message in a set of messages. Attribute 'final' flags a message the final node in an inheritance hierarchy.
063 * Attribute 'override' flags a message as intended to override a super-message. A message defines a localizable template
064 * and format arguments.
065 *
066 *
067 * <p>Java class for Message complex type.
068 *
069 * <p>The following schema fragment specifies the expected content contained within this class.
070 *
071 * <pre>
072 * <complexType name="Message">
073 * <complexContent>
074 * <extension base="{http://jomc.org/model}ModelObject">
075 * <sequence>
076 * <element ref="{http://jomc.org/model}template"/>
077 * <element ref="{http://jomc.org/model}arguments" minOccurs="0"/>
078 * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
079 * </sequence>
080 * <attribute name="name" use="required" type="{http://jomc.org/model}Identifier" />
081 * <attribute name="final" type="{http://jomc.org/model}Flag" default="false" />
082 * <attribute name="override" type="{http://jomc.org/model}Flag" default="false" />
083 * </extension>
084 * </complexContent>
085 * </complexType>
086 * </pre>
087 *
088 *
089 */
090 @XmlAccessorType(XmlAccessType.FIELD)
091 @XmlType(name = "Message", namespace = "http://jomc.org/model", propOrder = {
092 "template",
093 "arguments",
094 "any"
095 })
096 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
097 public class Message
098 extends ModelObject
099 implements Cloneable, Inheritable
100 {
101
102 @XmlElement(namespace = "http://jomc.org/model", required = true)
103 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
104 protected Texts template;
105 @XmlElement(namespace = "http://jomc.org/model")
106 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
107 protected Arguments arguments;
108 @XmlAnyElement(lax = true)
109 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
110 protected List<Object> any;
111 @XmlAttribute(name = "name", required = true)
112 @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
113 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
114 protected String name;
115 @XmlAttribute(name = "final")
116 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
117 protected Boolean _final;
118 @XmlAttribute(name = "override")
119 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
120 protected Boolean override;
121
122 /**
123 * Creates a new {@code Message} instance.
124 *
125 */
126 public Message() {
127 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
128 super();
129 }
130
131 /**
132 * Creates a new {@code Message} instance by deeply copying a given {@code Message} instance.
133 *
134 *
135 * @param o
136 * The instance to copy.
137 * @throws NullPointerException
138 * if {@code o} is {@code null}.
139 */
140 public Message(final Message o) {
141 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
142 super(o);
143 if (o == null) {
144 throw new NullPointerException("Cannot create a copy of 'Message' from 'null'.");
145 }
146 // CClassInfo: org.jomc.model.Texts
147 this.template = ((o.template == null)?null:((o.getTemplate() == null)?null:o.getTemplate().clone()));
148 // CClassInfo: org.jomc.model.Arguments
149 this.arguments = ((o.arguments == null)?null:((o.getArguments() == null)?null:o.getArguments().clone()));
150 // 'Any' collection.
151 if (o.any!= null) {
152 copyAny(o.getAny(), this.getAny());
153 }
154 // CBuiltinLeafInfo: java.lang.String
155 this.name = ((o.name == null)?null:o.getName());
156 // CBuiltinLeafInfo: java.lang.Boolean
157 this._final = ((o._final == null)?null:o.isFinal());
158 // CBuiltinLeafInfo: java.lang.Boolean
159 this.override = ((o.override == null)?null:o.isOverride());
160 }
161
162 /**
163 * The localizable template of this message.
164 *
165 * @return
166 * possible object is
167 * {@link Texts }
168 *
169 */
170 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
171 public Texts getTemplate() {
172 return template;
173 }
174
175 /**
176 * Sets the value of the template property.
177 *
178 * @param value
179 * allowed object is
180 * {@link Texts }
181 *
182 */
183 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
184 public void setTemplate(Texts value) {
185 this.template = value;
186 }
187
188 /**
189 * The format arguments of this message or {@code null}.
190 *
191 * @return
192 * possible object is
193 * {@link Arguments }
194 *
195 */
196 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
197 public Arguments getArguments() {
198 return arguments;
199 }
200
201 /**
202 * Sets the value of the arguments property.
203 *
204 * @param value
205 * allowed object is
206 * {@link Arguments }
207 *
208 */
209 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
210 public void setArguments(Arguments value) {
211 this.arguments = value;
212 }
213
214 /**
215 * Gets the value of the any property.
216 *
217 * <p>
218 * This accessor method returns a reference to the live list,
219 * not a snapshot. Therefore any modification you make to the
220 * returned list will be present inside the JAXB object.
221 * This is why there is not a <CODE>set</CODE> method for the any property.
222 *
223 * <p>
224 * For example, to add a new item, do as follows:
225 * <pre>
226 * getAny().add(newItem);
227 * </pre>
228 *
229 *
230 * <p>
231 * Objects of the following type(s) are allowed in the list
232 * {@link Object }
233 * {@link Element }
234 *
235 *
236 */
237 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
238 public List<Object> getAny() {
239 if (any == null) {
240 any = new ArrayList<Object>();
241 }
242 return this.any;
243 }
244
245 /**
246 * The name of this message.
247 *
248 * @return
249 * possible object is
250 * {@link String }
251 *
252 */
253 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
254 public String getName() {
255 return name;
256 }
257
258 /**
259 * Sets the value of the name property.
260 *
261 * @param value
262 * allowed object is
263 * {@link String }
264 *
265 */
266 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
267 public void setName(String value) {
268 this.name = value;
269 }
270
271 /**
272 * {@code true}, if this message is the final node in an inheritance hierarchy.
273 *
274 * @return
275 * possible object is
276 * {@link Boolean }
277 *
278 */
279 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
280 public boolean isFinal() {
281 if (_final == null) {
282 return false;
283 } else {
284 return _final;
285 }
286 }
287
288 /**
289 * Sets the value of the final property.
290 *
291 * @param value
292 * allowed object is
293 * {@link Boolean }
294 *
295 */
296 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
297 public void setFinal(Boolean value) {
298 this._final = value;
299 }
300
301 /**
302 * {@code true}, if this message is intended to override a super message.
303 *
304 * @return
305 * possible object is
306 * {@link Boolean }
307 *
308 */
309 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
310 public boolean isOverride() {
311 if (override == null) {
312 return false;
313 } else {
314 return override;
315 }
316 }
317
318 /**
319 * Sets the value of the override property.
320 *
321 * @param value
322 * allowed object is
323 * {@link Boolean }
324 *
325 */
326 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
327 public void setOverride(Boolean value) {
328 this.override = value;
329 }
330
331 /**
332 * Copies all values of property {@code Any} deeply.
333 *
334 * @param source
335 * The source to copy from.
336 * @param target
337 * The target to copy {@code source} to.
338 * @throws NullPointerException
339 * if {@code target} is {@code null}.
340 */
341 @SuppressWarnings("unchecked")
342 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
343 private static void copyAny(final List<Object> source, final List<Object> target) {
344 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
345 if ((source!= null)&&(!source.isEmpty())) {
346 for (final Iterator<?> it = source.iterator(); it.hasNext(); ) {
347 final Object next = it.next();
348 if (next instanceof Element) {
349 // CWildcardTypeInfo: org.w3c.dom.Element
350 target.add(((Element)((Element) next).cloneNode(true)));
351 continue;
352 }
353 if (next instanceof Object) {
354 // CBuiltinLeafInfo: java.lang.Object
355 target.add(copyOf(((Object) next)));
356 continue;
357 }
358 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
359 throw new AssertionError((("Unexpected instance '"+ next)+"' for property 'Any' of class 'org.jomc.model.Message'."));
360 }
361 }
362 }
363
364 /**
365 * Creates and returns a deep copy of a given object.
366 *
367 * @param o
368 * The instance to copy or {@code null}.
369 * @return
370 * A deep copy of {@code o} or {@code null} if {@code o} is {@code null}.
371 */
372 @SuppressWarnings("unchecked")
373 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
374 private static Object copyOf(final Object o) {
375 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
376 try {
377 if (o!= null) {
378 if (o.getClass().isPrimitive()) {
379 return o;
380 }
381 if (o.getClass().isArray()) {
382 return copyOfArray(o);
383 }
384 // Immutable types.
385 if (o instanceof Boolean) {
386 return o;
387 }
388 if (o instanceof Byte) {
389 return o;
390 }
391 if (o instanceof Character) {
392 return o;
393 }
394 if (o instanceof Double) {
395 return o;
396 }
397 if (o instanceof Enum) {
398 return o;
399 }
400 if (o instanceof Float) {
401 return o;
402 }
403 if (o instanceof Integer) {
404 return o;
405 }
406 if (o instanceof Long) {
407 return o;
408 }
409 if (o instanceof Short) {
410 return o;
411 }
412 if (o instanceof String) {
413 return o;
414 }
415 if (o instanceof BigDecimal) {
416 return o;
417 }
418 if (o instanceof BigInteger) {
419 return o;
420 }
421 if (o instanceof UUID) {
422 return o;
423 }
424 if (o instanceof QName) {
425 return o;
426 }
427 if (o instanceof Duration) {
428 return o;
429 }
430 if (o instanceof Currency) {
431 return o;
432 }
433 // String based types.
434 if (o instanceof File) {
435 return new File(o.toString());
436 }
437 if (o instanceof URI) {
438 return new URI(o.toString());
439 }
440 if (o instanceof URL) {
441 return new URL(o.toString());
442 }
443 if (o instanceof MimeType) {
444 return new MimeType(o.toString());
445 }
446 // Cloneable types.
447 if (o instanceof XMLGregorianCalendar) {
448 return ((XMLGregorianCalendar) o).clone();
449 }
450 if (o instanceof Date) {
451 return ((Date) o).clone();
452 }
453 if (o instanceof Calendar) {
454 return ((Calendar) o).clone();
455 }
456 if (o instanceof TimeZone) {
457 return ((TimeZone) o).clone();
458 }
459 if (o instanceof Locale) {
460 return ((Locale) o).clone();
461 }
462 if (o instanceof Element) {
463 return ((Element)((Element) o).cloneNode(true));
464 }
465 if (o instanceof JAXBElement) {
466 return copyOf(((JAXBElement) o));
467 }
468 try {
469 return o.getClass().getMethod("clone", ((Class[]) null)).invoke(o, ((Object[]) null));
470 } catch (NoSuchMethodException e) {
471 if (o instanceof Serializable) {
472 return copyOf(((Serializable) o));
473 }
474 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
475 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
476 } catch (IllegalAccessException e) {
477 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
478 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
479 } catch (InvocationTargetException e) {
480 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
481 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
482 } catch (SecurityException e) {
483 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
484 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
485 } catch (IllegalArgumentException e) {
486 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
487 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
488 } catch (ExceptionInInitializerError e) {
489 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
490 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
491 }
492 }
493 return null;
494 } catch (MalformedURLException e) {
495 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
496 } catch (URISyntaxException e) {
497 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
498 } catch (MimeTypeParseException e) {
499 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
500 }
501 }
502
503 /**
504 * Creates and returns a deep copy of a given array.
505 *
506 * @param array
507 * The array to copy or {@code null}.
508 * @return
509 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
510 */
511 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
512 private static Object copyOfArray(final Object array) {
513 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
514 if (array!= null) {
515 if (array.getClass() == boolean[].class) {
516 return copyOf(((boolean[]) array));
517 }
518 if (array.getClass() == byte[].class) {
519 return copyOf(((byte[]) array));
520 }
521 if (array.getClass() == char[].class) {
522 return copyOf(((char[]) array));
523 }
524 if (array.getClass() == double[].class) {
525 return copyOf(((double[]) array));
526 }
527 if (array.getClass() == float[].class) {
528 return copyOf(((float[]) array));
529 }
530 if (array.getClass() == int[].class) {
531 return copyOf(((int[]) array));
532 }
533 if (array.getClass() == long[].class) {
534 return copyOf(((long[]) array));
535 }
536 if (array.getClass() == short[].class) {
537 return copyOf(((short[]) array));
538 }
539 final int len = Array.getLength(array);
540 final Object copy = Array.newInstance(array.getClass().getComponentType(), len);
541 for (int i = (len- 1); (i >= 0); i--) {
542 Array.set(copy, i, copyOf(Array.get(array, i)));
543 }
544 return copy;
545 }
546 return null;
547 }
548
549 /**
550 * Creates and returns a deep copy of a given array.
551 *
552 * @param array
553 * The array to copy or {@code null}.
554 * @return
555 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
556 */
557 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
558 private static boolean[] copyOf(final boolean[] array) {
559 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
560 if (array!= null) {
561 final boolean[] copy = ((boolean[]) Array.newInstance(array.getClass().getComponentType(), array.length));
562 System.arraycopy(array, 0, copy, 0, array.length);
563 return copy;
564 }
565 return null;
566 }
567
568 /**
569 * Creates and returns a deep copy of a given array.
570 *
571 * @param array
572 * The array to copy or {@code null}.
573 * @return
574 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
575 */
576 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
577 private static byte[] copyOf(final byte[] array) {
578 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
579 if (array!= null) {
580 final byte[] copy = ((byte[]) Array.newInstance(array.getClass().getComponentType(), array.length));
581 System.arraycopy(array, 0, copy, 0, array.length);
582 return copy;
583 }
584 return null;
585 }
586
587 /**
588 * Creates and returns a deep copy of a given array.
589 *
590 * @param array
591 * The array to copy or {@code null}.
592 * @return
593 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
594 */
595 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
596 private static char[] copyOf(final char[] array) {
597 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
598 if (array!= null) {
599 final char[] copy = ((char[]) Array.newInstance(array.getClass().getComponentType(), array.length));
600 System.arraycopy(array, 0, copy, 0, array.length);
601 return copy;
602 }
603 return null;
604 }
605
606 /**
607 * Creates and returns a deep copy of a given array.
608 *
609 * @param array
610 * The array to copy or {@code null}.
611 * @return
612 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
613 */
614 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
615 private static double[] copyOf(final double[] array) {
616 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
617 if (array!= null) {
618 final double[] copy = ((double[]) Array.newInstance(array.getClass().getComponentType(), array.length));
619 System.arraycopy(array, 0, copy, 0, array.length);
620 return copy;
621 }
622 return null;
623 }
624
625 /**
626 * Creates and returns a deep copy of a given array.
627 *
628 * @param array
629 * The array to copy or {@code null}.
630 * @return
631 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
632 */
633 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
634 private static float[] copyOf(final float[] array) {
635 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
636 if (array!= null) {
637 final float[] copy = ((float[]) Array.newInstance(array.getClass().getComponentType(), array.length));
638 System.arraycopy(array, 0, copy, 0, array.length);
639 return copy;
640 }
641 return null;
642 }
643
644 /**
645 * Creates and returns a deep copy of a given array.
646 *
647 * @param array
648 * The array to copy or {@code null}.
649 * @return
650 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
651 */
652 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
653 private static int[] copyOf(final int[] array) {
654 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
655 if (array!= null) {
656 final int[] copy = ((int[]) Array.newInstance(array.getClass().getComponentType(), array.length));
657 System.arraycopy(array, 0, copy, 0, array.length);
658 return copy;
659 }
660 return null;
661 }
662
663 /**
664 * Creates and returns a deep copy of a given array.
665 *
666 * @param array
667 * The array to copy or {@code null}.
668 * @return
669 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
670 */
671 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
672 private static long[] copyOf(final long[] array) {
673 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
674 if (array!= null) {
675 final long[] copy = ((long[]) Array.newInstance(array.getClass().getComponentType(), array.length));
676 System.arraycopy(array, 0, copy, 0, array.length);
677 return copy;
678 }
679 return null;
680 }
681
682 /**
683 * Creates and returns a deep copy of a given array.
684 *
685 * @param array
686 * The array to copy or {@code null}.
687 * @return
688 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
689 */
690 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
691 private static short[] copyOf(final short[] array) {
692 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
693 if (array!= null) {
694 final short[] copy = ((short[]) Array.newInstance(array.getClass().getComponentType(), array.length));
695 System.arraycopy(array, 0, copy, 0, array.length);
696 return copy;
697 }
698 return null;
699 }
700
701 /**
702 * Creates and returns a deep copy of a given {@code JAXBElement} instance.
703 *
704 * @param element
705 * The instance to copy or {@code null}.
706 * @return
707 * A deep copy of {@code element} or {@code null} if {@code element} is {@code null}.
708 */
709 @SuppressWarnings("unchecked")
710 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
711 private static JAXBElement copyOf(final JAXBElement element) {
712 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
713 if (element!= null) {
714 final JAXBElement copy = new JAXBElement(element.getName(), element.getDeclaredType(), element.getScope(), element.getValue());
715 copy.setNil(element.isNil());
716 copy.setValue(copyOf(copy.getValue()));
717 return copy;
718 }
719 return null;
720 }
721
722 /**
723 * Creates and returns a deep copy of a given {@code Serializable}.
724 *
725 * @param serializable
726 * The instance to copy or {@code null}.
727 * @return
728 * A deep copy of {@code serializable} or {@code null} if {@code serializable} is {@code null}.
729 */
730 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
731 private static Serializable copyOf(final Serializable serializable) {
732 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
733 if (serializable!= null) {
734 try {
735 final ByteArrayOutputStream byteArrayOutput = new ByteArrayOutputStream();
736 final ObjectOutputStream out = new ObjectOutputStream(byteArrayOutput);
737 out.writeObject(serializable);
738 out.close();
739 final ByteArrayInputStream byteArrayInput = new ByteArrayInputStream(byteArrayOutput.toByteArray());
740 final ObjectInputStream in = new ObjectInputStream(byteArrayInput);
741 final Serializable copy = ((Serializable) in.readObject());
742 in.close();
743 return copy;
744 } catch (SecurityException e) {
745 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
746 } catch (ClassNotFoundException e) {
747 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
748 } catch (InvalidClassException e) {
749 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
750 } catch (NotSerializableException e) {
751 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
752 } catch (StreamCorruptedException e) {
753 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
754 } catch (OptionalDataException e) {
755 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
756 } catch (IOException e) {
757 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
758 }
759 }
760 return null;
761 }
762
763 /**
764 * Creates and returns a deep copy of this object.
765 *
766 *
767 * @return
768 * A deep copy of this object.
769 */
770 @Override
771 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
772 public Message clone() {
773 {
774 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
775 final Message clone = ((Message) super.clone());
776 // CClassInfo: org.jomc.model.Texts
777 clone.template = ((this.template == null)?null:((this.getTemplate() == null)?null:this.getTemplate().clone()));
778 // CClassInfo: org.jomc.model.Arguments
779 clone.arguments = ((this.arguments == null)?null:((this.getArguments() == null)?null:this.getArguments().clone()));
780 // 'Any' collection.
781 if (this.any!= null) {
782 clone.any = null;
783 copyAny(this.getAny(), clone.getAny());
784 }
785 // CBuiltinLeafInfo: java.lang.String
786 clone.name = ((this.name == null)?null:this.getName());
787 // CBuiltinLeafInfo: java.lang.Boolean
788 clone._final = ((this._final == null)?null:this.isFinal());
789 // CBuiltinLeafInfo: java.lang.Boolean
790 clone.override = ((this.override == null)?null:this.isOverride());
791 return clone;
792 }
793 }
794
795 /**
796 * System's line separator.
797 * @since 1.2
798 */
799 @javax.xml.bind.annotation.XmlTransient
800 private static final String LINE_SEPARATOR = System.getProperty( "line.separator", "\n" );
801
802 /**
803 * Gets a single {@code JAXBElement} matching a namespace URI and local part from the {@code any} property of the
804 * instance.
805 *
806 * @param namespaceURI The namespace URI of the {@code JAXBElement} to return.
807 * @param localPart The local part of the {@code JAXBElement} to return.
808 *
809 * @return The {@code JAXBElement} matching {@code namespaceURI} and {@code localPart} from the {@code any} property
810 * of the instance or {@code null}, if no such element is found.
811 *
812 * @throws NullPointerException if {@code namespaceURI} or {@code localPart} is {@code null}.
813 * @throws IllegalStateException if the {@code any} property contains more than one matching element.
814 *
815 * @see #getAnyElement(java.util.List, java.lang.String, java.lang.String)
816 *
817 * @deprecated As of JOMC 1.1, please use method {@link #getAnyElement(java.lang.String, java.lang.String, java.lang.Class)}.
818 * This method will be removed in version 2.0.
819 */
820 @Deprecated
821 public javax.xml.bind.JAXBElement getAnyElement( final String namespaceURI, final String localPart )
822 {
823 return this.getAnyElement( this.getAny(), namespaceURI, localPart );
824 }
825
826 /**
827 * Gets a list containing all {@code JAXBElement}s matching a namespace URI and local part from the {@code any}
828 * property of the instance.
829 *
830 * @param namespaceURI The namespace URI of the {@code JAXBElement}s to return.
831 * @param localPart The local part of the {@code JAXBElement}s to return.
832 *
833 * @return An unmodifiable list of all {@code JAXBElement}s matching {@code namespaceURI} and {@code localPart} from
834 * the {@code any} property of the instance - an empty list if no such elements are found.
835 *
836 * @throws NullPointerException if {@code namespaceURI} or {@code localPart} is {@code null}.
837 *
838 * @see #getAnyElements(java.util.List, java.lang.String, java.lang.String)
839 *
840 * @deprecated As of JOMC 1.1, please use method {@link #getAnyElements(java.lang.String, java.lang.String, java.lang.Class)}.
841 * This method will be removed in version 2.0.
842 */
843 @Deprecated
844 public java.util.List<javax.xml.bind.JAXBElement> getAnyElements( final String namespaceURI,
845 final String localPart )
846 {
847 return this.getAnyElements( this.getAny(), namespaceURI, localPart );
848 }
849
850 /**
851 * Gets a single {@code JAXBElement} matching a namespace URI and local part from the {@code any} property of the
852 * instance.
853 *
854 * @param namespaceURI The namespace URI of the {@code JAXBElement} to return.
855 * @param localPart The local part of the {@code JAXBElement} to return.
856 * @param type The class of the type the element is bound to.
857 * @param <T> The type the element is bound to.
858 *
859 * @return The {@code JAXBElement} matching {@code namespaceURI} and {@code localPart} from the {@code any} property
860 * of the instance or {@code null}, if no such element is found.
861 *
862 * @throws NullPointerException if {@code namespaceURI}, {@code localPart} or {@code type} is {@code null}.
863 * @throws IllegalStateException if the {@code any} property contains more than one matching element.
864 *
865 * @see #getAnyElement(java.util.List, java.lang.String, java.lang.String, java.lang.Class)
866 *
867 * @since 1.1
868 */
869 public <T> javax.xml.bind.JAXBElement<T> getAnyElement( final String namespaceURI, final String localPart,
870 final Class<T> type )
871 {
872 return this.getAnyElement( this.getAny(), namespaceURI, localPart, type );
873 }
874
875 /**
876 * Gets a list containing all {@code JAXBElement}s matching a namespace URI and local part from the {@code any}
877 * property of the instance.
878 *
879 * @param namespaceURI The namespace URI of the {@code JAXBElement}s to return.
880 * @param localPart The local part of the {@code JAXBElement}s to return.
881 * @param type The class of the type the elements are bound to.
882 * @param <T> The type the elements are bound to.
883 *
884 * @return An unmodifiable list of all {@code JAXBElement}s matching {@code namespaceURI} and {@code localPart} from
885 * the {@code any} property of the instance - an empty list if no such elements are found.
886 *
887 * @throws NullPointerException if {@code namespaceURI}, {@code localPart} or {@code type} is {@code null}.
888 *
889 * @see #getAnyElements(java.util.List, java.lang.String, java.lang.String, java.lang.Class)
890 *
891 * @since 1.1
892 */
893 public <T> java.util.List<javax.xml.bind.JAXBElement<T>> getAnyElements( final String namespaceURI,
894 final String localPart,
895 final Class<T> type )
896 {
897 return this.getAnyElements( this.getAny(), namespaceURI, localPart, type );
898 }
899
900 /**
901 * Gets a single object matching a given class from the {@code any} property of the instance.
902 *
903 * @param clazz The class to return an instance of.
904 * @param <T> The type of the object to return.
905 *
906 * @return The instance of {@code clazz} from the {@code any} property of the instance or {@code null}, if no such
907 * instance is found.
908 *
909 * @throws NullPointerException if {@code clazz} is {@code null}.
910 * @throws IllegalStateException if the {@code any} property contains more than one matching object.
911 *
912 * @see #getAnyObject(java.util.List, java.lang.Class)
913 */
914 public <T> T getAnyObject( final Class<T> clazz )
915 {
916 return this.getAnyObject( this.getAny(), clazz );
917 }
918
919 /**
920 * Gets a list containing all objects matching a given class from the {@code any} property of the instance.
921 *
922 * @param clazz The class to return all instances of.
923 * @param <T> The type of the objects to return.
924 *
925 * @return An unmodifiable list of all instances of {@code clazz} from the {@code any} property of the instance -
926 * an empty list if no such objects are found.
927 *
928 * @throws NullPointerException if {@code clazz} is {@code null}.
929 *
930 * @see #getAnyObjects(java.util.List, java.lang.Class)
931 */
932 public <T> java.util.List<T> getAnyObjects( final Class<T> clazz )
933 {
934 return this.getAnyObjects( this.getAny(), clazz );
935 }
936
937 /**
938 * Gets a Java {@code MessageFormat} instance for a given locale.
939 *
940 * @param locale The locale to get a Java {@code MessageFormat} instance for.
941 *
942 * @return A Java {@code MessageFormat} instance for {@code locale}.
943 *
944 * @throws NullPointerException if {@code locale} is {@code null}.
945 *
946 * @see #getTemplate()
947 *
948 * @since 1.2
949 */
950 public java.text.MessageFormat getJavaMessage( final Locale locale )
951 {
952 if ( locale == null )
953 {
954 throw new NullPointerException( "locale" );
955 }
956
957 try
958 {
959 final Text text = this.getTemplate().getText( locale.getLanguage().toLowerCase( Locale.ENGLISH ) );
960 final StringBuilder builder = new StringBuilder( text.getValue().length() );
961 final java.io.BufferedReader reader = new java.io.BufferedReader(
962 new java.io.StringReader( text.getValue() ) );
963
964 String line;
965 while ( ( line = reader.readLine() ) != null )
966 {
967 builder.append( LINE_SEPARATOR ).append( line );
968 }
969
970 return new java.text.MessageFormat( builder.length() > 0
971 ? builder.substring( LINE_SEPARATOR.length() )
972 : builder.toString(), locale );
973
974 }
975 catch ( final java.io.IOException e )
976 {
977 throw new AssertionError( e );
978 }
979 }
980
981 }