001 //
002 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833
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: 2009.12.07 at 03:06:36 AM UTC
006 //
007
008
009 package org.jomc.model;
010
011 import java.io.ByteArrayInputStream;
012 import java.io.ByteArrayOutputStream;
013 import java.io.IOException;
014 import java.io.InvalidClassException;
015 import java.io.NotSerializableException;
016 import java.io.ObjectInputStream;
017 import java.io.ObjectOutputStream;
018 import java.io.OptionalDataException;
019 import java.io.Serializable;
020 import java.io.StreamCorruptedException;
021 import java.lang.reflect.Array;
022 import java.lang.reflect.InvocationTargetException;
023 import java.math.BigDecimal;
024 import java.math.BigInteger;
025 import java.util.ArrayList;
026 import java.util.Calendar;
027 import java.util.Currency;
028 import java.util.Date;
029 import java.util.Iterator;
030 import java.util.List;
031 import java.util.Locale;
032 import java.util.TimeZone;
033 import java.util.UUID;
034 import javax.annotation.Generated;
035 import javax.xml.bind.JAXBElement;
036 import javax.xml.bind.annotation.XmlAccessType;
037 import javax.xml.bind.annotation.XmlAccessorType;
038 import javax.xml.bind.annotation.XmlAnyElement;
039 import javax.xml.bind.annotation.XmlAttribute;
040 import javax.xml.bind.annotation.XmlSeeAlso;
041 import javax.xml.bind.annotation.XmlType;
042 import javax.xml.datatype.Duration;
043 import javax.xml.datatype.XMLGregorianCalendar;
044 import javax.xml.namespace.QName;
045 import org.w3c.dom.Element;
046
047
048 /**
049 *
050 * Model of a person.
051 *
052 * The 'Person' type defines attributes 'name' and 'mail'. Attribute 'name' holds the name of a person. Attribute 'mail'
053 * holds the mail address of a person.
054 *
055 *
056 * <p>Java class for Person complex type.
057 *
058 * <p>The following schema fragment specifies the expected content contained within this class.
059 *
060 * <pre>
061 * <complexType name="Person">
062 * <complexContent>
063 * <extension base="{http://jomc.org/model}ModelObject">
064 * <sequence>
065 * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
066 * </sequence>
067 * <attribute name="name" use="required" type="{http://jomc.org/model}String" />
068 * <attribute name="mail" type="{http://jomc.org/model}String" />
069 * </extension>
070 * </complexContent>
071 * </complexType>
072 * </pre>
073 *
074 *
075 */
076 @XmlAccessorType(XmlAccessType.FIELD)
077 @XmlType(name = "Person", propOrder = {
078 "any"
079 })
080 @XmlSeeAlso({
081 Author.class
082 })
083 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
084 public class Person
085 extends ModelObject
086 implements Cloneable
087 {
088
089 @XmlAnyElement(lax = true)
090 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
091 protected List<Object> any;
092 @XmlAttribute(required = true)
093 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
094 protected String name;
095 @XmlAttribute
096 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
097 protected String mail;
098
099 /**
100 * Creates a new {@code Person} instance.
101 *
102 */
103 public Person() {
104 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
105 super();
106 }
107
108 /**
109 * Creates a new {@code Person} instance by deeply copying a given {@code Person} instance.
110 *
111 *
112 * @param o
113 * The instance to copy.
114 * @throws NullPointerException
115 * if {@code o} is {@code null}.
116 */
117 public Person(final Person o) {
118 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
119 super(o);
120 if (o == null) {
121 throw new NullPointerException("Cannot create a copy of 'Person' from 'null'.");
122 }
123 // 'Any' collection.
124 copyAny(o.getAny(), getAny());
125 // CBuiltinLeafInfo: java.lang.String
126 this.name = o.getName();
127 // CBuiltinLeafInfo: java.lang.String
128 this.mail = o.getMail();
129 }
130
131 /**
132 * Gets the value of the any property.
133 *
134 * <p>
135 * This accessor method returns a reference to the live list,
136 * not a snapshot. Therefore any modification you make to the
137 * returned list will be present inside the JAXB object.
138 * This is why there is not a <CODE>set</CODE> method for the any property.
139 *
140 * <p>
141 * For example, to add a new item, do as follows:
142 * <pre>
143 * getAny().add(newItem);
144 * </pre>
145 *
146 *
147 * <p>
148 * Objects of the following type(s) are allowed in the list
149 * {@link Element }
150 * {@link Object }
151 *
152 *
153 */
154 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
155 public List<Object> getAny() {
156 if (any == null) {
157 any = new ArrayList<Object>();
158 }
159 return this.any;
160 }
161
162 /**
163 * Name of this person.
164 *
165 * @return
166 * possible object is
167 * {@link String }
168 *
169 */
170 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
171 public String getName() {
172 return name;
173 }
174
175 /**
176 * Sets the value of the name property.
177 *
178 * @param value
179 * allowed object is
180 * {@link String }
181 *
182 */
183 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
184 public void setName(String value) {
185 this.name = value;
186 }
187
188 /**
189 * Mail address of this person or {@code null}.
190 *
191 * @return
192 * possible object is
193 * {@link String }
194 *
195 */
196 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
197 public String getMail() {
198 return mail;
199 }
200
201 /**
202 * Sets the value of the mail property.
203 *
204 * @param value
205 * allowed object is
206 * {@link String }
207 *
208 */
209 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
210 public void setMail(String value) {
211 this.mail = value;
212 }
213
214 /**
215 * Copies all values of property {@code Any} deeply.
216 *
217 * @param target
218 * The target to copy {@code source} to.
219 * @param source
220 * The source to copy from.
221 * @throws NullPointerException
222 * if {@code source} or {@code target} is {@code null}.
223 */
224 @SuppressWarnings("unchecked")
225 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
226 private static void copyAny(final List<Object> source, final List<Object> target) {
227 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
228 if (!source.isEmpty()) {
229 for (Iterator it = source.iterator(); it.hasNext(); ) {
230 final Object next = it.next();
231 if (next instanceof Element) {
232 // CWildcardTypeInfo: org.w3c.dom.Element
233 target.add(((Element)((Element) next).cloneNode(true)));
234 continue;
235 }
236 if (next instanceof Object) {
237 // CBuiltinLeafInfo: java.lang.Object
238 target.add(copyOfObject(((Object) next)));
239 continue;
240 }
241 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
242 throw new AssertionError((("Unexpected instance '"+ next)+"' for property 'Any' of class 'org.jomc.model.Person'."));
243 }
244 }
245 }
246
247 /**
248 * Creates and returns a deep copy of a given object.
249 *
250 * @param o
251 * The instance to copy or {@code null}.
252 * @return
253 * A deep copy of {@code o} or {@code null} if {@code o} is {@code null}.
254 */
255 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
256 private static Object copyOfObject(final Object o) {
257 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
258 if (o!= null) {
259 if (o.getClass().isPrimitive()) {
260 return o;
261 }
262 if (o.getClass().isArray()) {
263 return copyOfArray(o);
264 }
265 if (o instanceof Boolean) {
266 return o;
267 }
268 if (o instanceof Byte) {
269 return o;
270 }
271 if (o instanceof Character) {
272 return o;
273 }
274 if (o instanceof Double) {
275 return o;
276 }
277 if (o instanceof Enum) {
278 return o;
279 }
280 if (o instanceof Float) {
281 return o;
282 }
283 if (o instanceof Integer) {
284 return o;
285 }
286 if (o instanceof Long) {
287 return o;
288 }
289 if (o instanceof Short) {
290 return o;
291 }
292 if (o instanceof String) {
293 return o;
294 }
295 if (o instanceof BigDecimal) {
296 return o;
297 }
298 if (o instanceof BigInteger) {
299 return o;
300 }
301 if (o instanceof UUID) {
302 return o;
303 }
304 if (o instanceof QName) {
305 return o;
306 }
307 if (o instanceof Duration) {
308 return o;
309 }
310 if (o instanceof Currency) {
311 return o;
312 }
313 if (o instanceof XMLGregorianCalendar) {
314 return ((XMLGregorianCalendar) o).clone();
315 }
316 if (o instanceof Date) {
317 return ((Date) o).clone();
318 }
319 if (o instanceof Calendar) {
320 return ((Calendar) o).clone();
321 }
322 if (o instanceof TimeZone) {
323 return ((TimeZone) o).clone();
324 }
325 if (o instanceof Locale) {
326 return ((Locale) o).clone();
327 }
328 if (o instanceof Element) {
329 return ((Element)((Element) o).cloneNode(true));
330 }
331 if (o instanceof JAXBElement) {
332 return copyOFJAXBElement(((JAXBElement) o));
333 }
334 try {
335 return o.getClass().getMethod("clone", ((Class[]) null)).invoke(o, ((Object[]) null));
336 } catch (NoSuchMethodException e) {
337 if (o instanceof Serializable) {
338 return copyOfSerializable(((Serializable) o));
339 }
340 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
341 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
342 } catch (IllegalAccessException e) {
343 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
344 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
345 } catch (InvocationTargetException e) {
346 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
347 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
348 } catch (SecurityException e) {
349 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
350 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
351 } catch (IllegalArgumentException e) {
352 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
353 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
354 } catch (ExceptionInInitializerError e) {
355 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
356 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
357 }
358 }
359 return null;
360 }
361
362 /**
363 * Creates and returns a deep copy of a given array.
364 *
365 * @param array
366 * The array to copy or {@code null}.
367 * @return
368 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
369 */
370 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
371 private static Object copyOfArray(final Object array) {
372 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
373 if (array!= null) {
374 if (array.getClass() == boolean[].class) {
375 return copyOf(((boolean[]) array));
376 }
377 if (array.getClass() == byte[].class) {
378 return copyOf(((byte[]) array));
379 }
380 if (array.getClass() == char[].class) {
381 return copyOf(((char[]) array));
382 }
383 if (array.getClass() == double[].class) {
384 return copyOf(((double[]) array));
385 }
386 if (array.getClass() == float[].class) {
387 return copyOf(((float[]) array));
388 }
389 if (array.getClass() == int[].class) {
390 return copyOf(((int[]) array));
391 }
392 if (array.getClass() == long[].class) {
393 return copyOf(((long[]) array));
394 }
395 if (array.getClass() == short[].class) {
396 return copyOf(((short[]) array));
397 }
398 final int len = Array.getLength(array);
399 final Object copy = Array.newInstance(array.getClass().getComponentType(), len);
400 for (int i = (len- 1); (i >= 0); i--) {
401 Array.set(copy, i, copyOfObject(Array.get(array, i)));
402 }
403 return copy;
404 }
405 return null;
406 }
407
408 /**
409 * Creates and returns a deep copy of a given array.
410 *
411 * @param array
412 * The array to copy or {@code null}.
413 * @return
414 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
415 */
416 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
417 private static boolean[] copyOf(final boolean[] array) {
418 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
419 if (array!= null) {
420 final boolean[] copy = ((boolean[]) Array.newInstance(array.getClass().getComponentType(), array.length));
421 System.arraycopy(array, 0, copy, 0, array.length);
422 return copy;
423 }
424 return null;
425 }
426
427 /**
428 * Creates and returns a deep copy of a given array.
429 *
430 * @param array
431 * The array to copy or {@code null}.
432 * @return
433 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
434 */
435 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
436 private static byte[] copyOf(final byte[] array) {
437 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
438 if (array!= null) {
439 final byte[] copy = ((byte[]) Array.newInstance(array.getClass().getComponentType(), array.length));
440 System.arraycopy(array, 0, copy, 0, array.length);
441 return copy;
442 }
443 return null;
444 }
445
446 /**
447 * Creates and returns a deep copy of a given array.
448 *
449 * @param array
450 * The array to copy or {@code null}.
451 * @return
452 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
453 */
454 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
455 private static char[] copyOf(final char[] array) {
456 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
457 if (array!= null) {
458 final char[] copy = ((char[]) Array.newInstance(array.getClass().getComponentType(), array.length));
459 System.arraycopy(array, 0, copy, 0, array.length);
460 return copy;
461 }
462 return null;
463 }
464
465 /**
466 * Creates and returns a deep copy of a given array.
467 *
468 * @param array
469 * The array to copy or {@code null}.
470 * @return
471 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
472 */
473 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
474 private static double[] copyOf(final double[] array) {
475 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
476 if (array!= null) {
477 final double[] copy = ((double[]) Array.newInstance(array.getClass().getComponentType(), array.length));
478 System.arraycopy(array, 0, copy, 0, array.length);
479 return copy;
480 }
481 return null;
482 }
483
484 /**
485 * Creates and returns a deep copy of a given array.
486 *
487 * @param array
488 * The array to copy or {@code null}.
489 * @return
490 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
491 */
492 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
493 private static float[] copyOf(final float[] array) {
494 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
495 if (array!= null) {
496 final float[] copy = ((float[]) Array.newInstance(array.getClass().getComponentType(), array.length));
497 System.arraycopy(array, 0, copy, 0, array.length);
498 return copy;
499 }
500 return null;
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 = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
512 private static int[] copyOf(final int[] array) {
513 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
514 if (array!= null) {
515 final int[] copy = ((int[]) Array.newInstance(array.getClass().getComponentType(), array.length));
516 System.arraycopy(array, 0, copy, 0, array.length);
517 return copy;
518 }
519 return null;
520 }
521
522 /**
523 * Creates and returns a deep copy of a given array.
524 *
525 * @param array
526 * The array to copy or {@code null}.
527 * @return
528 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
529 */
530 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
531 private static long[] copyOf(final long[] array) {
532 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
533 if (array!= null) {
534 final long[] copy = ((long[]) Array.newInstance(array.getClass().getComponentType(), array.length));
535 System.arraycopy(array, 0, copy, 0, array.length);
536 return copy;
537 }
538 return null;
539 }
540
541 /**
542 * Creates and returns a deep copy of a given array.
543 *
544 * @param array
545 * The array to copy or {@code null}.
546 * @return
547 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
548 */
549 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
550 private static short[] copyOf(final short[] array) {
551 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
552 if (array!= null) {
553 final short[] copy = ((short[]) Array.newInstance(array.getClass().getComponentType(), array.length));
554 System.arraycopy(array, 0, copy, 0, array.length);
555 return copy;
556 }
557 return null;
558 }
559
560 /**
561 * Creates and returns a deep copy of a given {@code JAXBElement} instance.
562 *
563 * @param element
564 * The instance to copy or {@code null}.
565 * @return
566 * A deep copy of {@code element} or {@code null} if {@code element} is {@code null}.
567 */
568 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
569 private static JAXBElement copyOFJAXBElement(final JAXBElement element) {
570 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
571 if (element!= null) {
572 final JAXBElement copy = new JAXBElement(element.getName(), element.getDeclaredType(), element.getScope(), element.getValue());
573 copy.setNil(element.isNil());
574 copy.setValue(copyOfObject(copy.getValue()));
575 return copy;
576 }
577 return null;
578 }
579
580 /**
581 * Creates and returns a deep copy of a given {@code Serializable}.
582 *
583 * @param serializable
584 * The instance to copy or {@code null}.
585 * @return
586 * A deep copy of {@code serializable} or {@code null} if {@code serializable} is {@code null}.
587 */
588 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
589 private static Serializable copyOfSerializable(final Serializable serializable) {
590 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
591 if (serializable!= null) {
592 try {
593 final ByteArrayOutputStream byteArrayOutput = new ByteArrayOutputStream();
594 final ObjectOutputStream out = new ObjectOutputStream(byteArrayOutput);
595 out.writeObject(serializable);
596 out.close();
597 final ByteArrayInputStream byteArrayInput = new ByteArrayInputStream(byteArrayOutput.toByteArray());
598 final ObjectInputStream in = new ObjectInputStream(byteArrayInput);
599 final Serializable copy = ((Serializable) in.readObject());
600 in.close();
601 return copy;
602 } catch (SecurityException e) {
603 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
604 } catch (ClassNotFoundException e) {
605 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
606 } catch (InvalidClassException e) {
607 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
608 } catch (NotSerializableException e) {
609 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
610 } catch (StreamCorruptedException e) {
611 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
612 } catch (OptionalDataException e) {
613 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
614 } catch (IOException e) {
615 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
616 }
617 }
618 return null;
619 }
620
621 /**
622 * Creates and returns a deep copy of this object.
623 *
624 *
625 * @return
626 * A deep copy of this object.
627 */
628 @Override
629 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
630 public Person clone() {
631 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
632 return new Person(this);
633 }
634
635 }