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