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