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