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