EMMA Coverage Report (generated Tue Jun 29 17:42:06 CEST 2010)
[all classes][org.jomc.sdk.model]

COVERAGE SUMMARY FOR SOURCE FILE [ItemType.java]

nameclass, %method, %block, %line, %
ItemType.java100% (1/1)44%  (11/25)31%  (326/1061)34%  (81.5/238)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ItemType100% (1/1)44%  (11/25)31%  (326/1061)34%  (81.5/238)
copyOf (boolean []): boolean [] 0%   (0/1)0%   (0/22)0%   (0/5)
copyOf (byte []): byte [] 0%   (0/1)0%   (0/22)0%   (0/5)
copyOf (char []): char [] 0%   (0/1)0%   (0/22)0%   (0/5)
copyOf (double []): double [] 0%   (0/1)0%   (0/22)0%   (0/5)
copyOf (float []): float [] 0%   (0/1)0%   (0/22)0%   (0/5)
copyOf (int []): int [] 0%   (0/1)0%   (0/22)0%   (0/5)
copyOf (long []): long [] 0%   (0/1)0%   (0/22)0%   (0/5)
copyOf (short []): short [] 0%   (0/1)0%   (0/22)0%   (0/5)
copyOfArray (Object): Object 0%   (0/1)0%   (0/102)0%   (0/23)
copyOfSerializable (Serializable): Serializable 0%   (0/1)0%   (0/163)0%   (0/25)
getOtherAttributes (): Map 0%   (0/1)0%   (0/3)0%   (0/1)
setAny (Object): void 0%   (0/1)0%   (0/4)0%   (0/2)
setType (String): void 0%   (0/1)0%   (0/4)0%   (0/2)
setValue (String): void 0%   (0/1)0%   (0/4)0%   (0/2)
copyOfObject (Object): Object 100% (1/1)34%  (94/274)42%  (28/67)
copyAny (Object): Object 100% (1/1)39%  (13/33)71%  (5/7)
getJavaValue (ClassLoader): Object 100% (1/1)65%  (132/204)61%  (28.5/47)
ItemType (ItemType): void 100% (1/1)85%  (28/33)89%  (8/9)
copyOFJAXBElement (JAXBElement): JAXBElement 100% (1/1)93%  (25/27)83%  (5/6)
ItemType (): void 100% (1/1)100% (8/8)100% (3/3)
clone (): ItemType 100% (1/1)100% (5/5)100% (1/1)
getAny (): Object 100% (1/1)100% (3/3)100% (1/1)
getMessage (String, Object []): String 100% (1/1)100% (12/12)100% (1/1)
getType (): String 100% (1/1)100% (3/3)100% (1/1)
getValue (): String 100% (1/1)100% (3/3)100% (1/1)

1//
2// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 
3// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
4// Any modifications to this file will be lost upon recompilation of the source schema. 
5// Generated on: 2010.06.29 at 05:36:20 PM CEST 
6//
7 
8 
9package org.jomc.sdk.model;
10 
11import java.io.ByteArrayInputStream;
12import java.io.ByteArrayOutputStream;
13import java.io.IOException;
14import java.io.InvalidClassException;
15import java.io.NotSerializableException;
16import java.io.ObjectInputStream;
17import java.io.ObjectOutputStream;
18import java.io.OptionalDataException;
19import java.io.Serializable;
20import java.io.StreamCorruptedException;
21import java.lang.reflect.Array;
22import java.lang.reflect.InvocationTargetException;
23import java.math.BigDecimal;
24import java.math.BigInteger;
25import java.util.Calendar;
26import java.util.Currency;
27import java.util.Date;
28import java.util.HashMap;
29import java.util.Locale;
30import java.util.Map;
31import java.util.TimeZone;
32import java.util.UUID;
33import javax.annotation.Generated;
34import javax.xml.bind.JAXBElement;
35import javax.xml.bind.annotation.XmlAccessType;
36import javax.xml.bind.annotation.XmlAccessorType;
37import javax.xml.bind.annotation.XmlAnyAttribute;
38import javax.xml.bind.annotation.XmlAnyElement;
39import javax.xml.bind.annotation.XmlAttribute;
40import javax.xml.bind.annotation.XmlType;
41import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
42import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
43import javax.xml.datatype.Duration;
44import javax.xml.datatype.XMLGregorianCalendar;
45import javax.xml.namespace.QName;
46import org.w3c.dom.Element;
47 
48 
49/**
50 * 
51 * Model of an item.
52 * 
53 * The 'ItemType' type defines attributes 'type' and 'value'. Attribute 'type' holds an identifier of the type of the
54 * item. Attribute 'value' holds the item's value.
55 *       
56 * 
57 * <p>Java class for ItemType complex type.
58 * 
59 * <p>The following schema fragment specifies the expected content contained within this class.
60 * 
61 * <pre>
62 * &lt;complexType name="ItemType">
63 *   &lt;complexContent>
64 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
65 *       &lt;sequence>
66 *         &lt;any processContents='lax' minOccurs="0"/>
67 *       &lt;/sequence>
68 *       &lt;attribute name="type" type="{http://jomc.org/sdk/model}Identifier" />
69 *       &lt;attribute name="value" type="{http://jomc.org/sdk/model}String" />
70 *       &lt;anyAttribute processContents='lax'/>
71 *     &lt;/restriction>
72 *   &lt;/complexContent>
73 * &lt;/complexType>
74 * </pre>
75 * 
76 * 
77 */
78@XmlAccessorType(XmlAccessType.FIELD)
79@XmlType(name = "ItemType", propOrder = {
80    "any"
81})
82@Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
83public class ItemType implements Cloneable
84{
85 
86    @XmlAnyElement(lax = true)
87    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
88    protected Object any;
89    @XmlAttribute
90    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
91    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
92    protected String type;
93    @XmlAttribute
94    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
95    protected String value;
96    @XmlAnyAttribute
97    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
98    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
99 
100    /**
101     * Creates a new {@code ItemType} instance.
102     * 
103     */
104    public ItemType() {
105        // CC-XJC Version 1.3 Build 2010-02-27T15:04:03+0000
106        super();
107    }
108 
109    /**
110     * Creates a new {@code ItemType} instance by deeply copying a given {@code ItemType} instance.
111     * 
112     * 
113     * @param o
114     *     The instance to copy.
115     * @throws NullPointerException
116     *     if {@code o} is {@code null}.
117     */
118    public ItemType(final ItemType o) {
119        // CC-XJC Version 1.3 Build 2010-02-27T15:04:03+0000
120        super();
121        if (o == null) {
122            throw new NullPointerException("Cannot create a copy of 'ItemType' from 'null'.");
123        }
124        // 'Any' property.
125        this.any = copyAny(o.getAny());
126        // CBuiltinLeafInfo: java.lang.String
127        this.type = o.getType();
128        // CBuiltinLeafInfo: java.lang.String
129        this.value = o.getValue();
130        // Other attributes.
131        this.otherAttributes.putAll(o.otherAttributes);
132    }
133 
134    /**
135     * The object value of the item.
136     * 
137     * @return
138     *     possible object is
139     *     {@link Element }
140     *     {@link Object }
141     *     
142     */
143    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
144    public Object getAny() {
145        return any;
146    }
147 
148    /**
149     * Sets the value of the any property.
150     * 
151     * @param value
152     *     allowed object is
153     *     {@link Element }
154     *     {@link Object }
155     *     
156     */
157    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
158    public void setAny(Object value) {
159        this.any = value;
160    }
161 
162    /**
163     * The type of the item value.
164     * 
165     * @return
166     *     possible object is
167     *     {@link String }
168     *     
169     */
170    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
171    public String getType() {
172        return type;
173    }
174 
175    /**
176     * Sets the value of the type property.
177     * 
178     * @param value
179     *     allowed object is
180     *     {@link String }
181     *     
182     */
183    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
184    public void setType(String value) {
185        this.type = value;
186    }
187 
188    /**
189     * The string value of the item.
190     * 
191     * @return
192     *     possible object is
193     *     {@link String }
194     *     
195     */
196    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
197    public String getValue() {
198        return value;
199    }
200 
201    /**
202     * Sets the value of the value property.
203     * 
204     * @param value
205     *     allowed object is
206     *     {@link String }
207     *     
208     */
209    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
210    public void setValue(String value) {
211        this.value = value;
212    }
213 
214    /**
215     * Gets a map that contains attributes that aren't bound to any typed property on this class.
216     * 
217     * <p>
218     * the map is keyed by the name of the attribute and 
219     * the value is the string value of the attribute.
220     * 
221     * the map returned by this method is live, and you can add new attribute
222     * by updating the map directly. Because of this design, there's no setter.
223     * 
224     * 
225     * @return
226     *     always non-null
227     */
228    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
229    public Map<QName, String> getOtherAttributes() {
230        return otherAttributes;
231    }
232 
233    /**
234     * Creates and returns a deep copy of property {@code Any}.
235     * 
236     * @param source
237     *     The source to copy from or {@code null}.
238     * @return
239     *     A deep copy of {@code source} or {@code null} if {@code source} is {@code null}.
240     */
241    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
242    private static Object copyAny(final Object source) {
243        // CC-XJC Version 1.3 Build 2010-02-27T15:04:03+0000
244        if (source!= null) {
245            if (source instanceof Element) {
246                // CWildcardTypeInfo: org.w3c.dom.Element
247                return ((Element)((Element) source).cloneNode(true));
248            }
249            if (source instanceof Object) {
250                // CBuiltinLeafInfo: java.lang.Object
251                return copyOfObject(((Object) source));
252            }
253            // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
254            throw new AssertionError((("Unexpected instance '"+ source)+"' for property 'Any' of class 'org.jomc.sdk.model.ItemType'."));
255        }
256        return null;
257    }
258 
259    /**
260     * Creates and returns a deep copy of a given object.
261     * 
262     * @param o
263     *     The instance to copy or {@code null}.
264     * @return
265     *     A deep copy of {@code o} or {@code null} if {@code o} is {@code null}.
266     */
267    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
268    private static Object copyOfObject(final Object o) {
269        // CC-XJC Version 1.3 Build 2010-02-27T15:04:03+0000
270        if (o!= null) {
271            if (o.getClass().isPrimitive()) {
272                return o;
273            }
274            if (o.getClass().isArray()) {
275                return copyOfArray(o);
276            }
277            if (o instanceof Boolean) {
278                return o;
279            }
280            if (o instanceof Byte) {
281                return o;
282            }
283            if (o instanceof Character) {
284                return o;
285            }
286            if (o instanceof Double) {
287                return o;
288            }
289            if (o instanceof Enum) {
290                return o;
291            }
292            if (o instanceof Float) {
293                return o;
294            }
295            if (o instanceof Integer) {
296                return o;
297            }
298            if (o instanceof Long) {
299                return o;
300            }
301            if (o instanceof Short) {
302                return o;
303            }
304            if (o instanceof String) {
305                return o;
306            }
307            if (o instanceof BigDecimal) {
308                return o;
309            }
310            if (o instanceof BigInteger) {
311                return o;
312            }
313            if (o instanceof UUID) {
314                return o;
315            }
316            if (o instanceof QName) {
317                return o;
318            }
319            if (o instanceof Duration) {
320                return o;
321            }
322            if (o instanceof Currency) {
323                return o;
324            }
325            if (o instanceof XMLGregorianCalendar) {
326                return ((XMLGregorianCalendar) o).clone();
327            }
328            if (o instanceof Date) {
329                return ((Date) o).clone();
330            }
331            if (o instanceof Calendar) {
332                return ((Calendar) o).clone();
333            }
334            if (o instanceof TimeZone) {
335                return ((TimeZone) o).clone();
336            }
337            if (o instanceof Locale) {
338                return ((Locale) o).clone();
339            }
340            if (o instanceof Element) {
341                return ((Element)((Element) o).cloneNode(true));
342            }
343            if (o instanceof JAXBElement) {
344                return copyOFJAXBElement(((JAXBElement) o));
345            }
346            try {
347                return o.getClass().getMethod("clone", ((Class[]) null)).invoke(o, ((Object[]) null));
348            } catch (NoSuchMethodException e) {
349                if (o instanceof Serializable) {
350                    return copyOfSerializable(((Serializable) o));
351                }
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 (IllegalAccessException 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 (InvocationTargetException 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 (SecurityException 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            } catch (IllegalArgumentException e) {
364                // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
365                throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
366            } catch (ExceptionInInitializerError e) {
367                // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
368                throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e));
369            }
370        }
371        return null;
372    }
373 
374    /**
375     * Creates and returns a deep copy of a given array.
376     * 
377     * @param array
378     *     The array to copy or {@code null}.
379     * @return
380     *     A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
381     */
382    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
383    private static Object copyOfArray(final Object array) {
384        // CC-XJC Version 1.3 Build 2010-02-27T15:04:03+0000
385        if (array!= null) {
386            if (array.getClass() == boolean[].class) {
387                return copyOf(((boolean[]) array));
388            }
389            if (array.getClass() == byte[].class) {
390                return copyOf(((byte[]) array));
391            }
392            if (array.getClass() == char[].class) {
393                return copyOf(((char[]) array));
394            }
395            if (array.getClass() == double[].class) {
396                return copyOf(((double[]) array));
397            }
398            if (array.getClass() == float[].class) {
399                return copyOf(((float[]) array));
400            }
401            if (array.getClass() == int[].class) {
402                return copyOf(((int[]) array));
403            }
404            if (array.getClass() == long[].class) {
405                return copyOf(((long[]) array));
406            }
407            if (array.getClass() == short[].class) {
408                return copyOf(((short[]) array));
409            }
410            final int len = Array.getLength(array);
411            final Object copy = Array.newInstance(array.getClass().getComponentType(), len);
412            for (int i = (len- 1); (i >= 0); i--) {
413                Array.set(copy, i, copyOfObject(Array.get(array, i)));
414            }
415            return copy;
416        }
417        return null;
418    }
419 
420    /**
421     * Creates and returns a deep copy of a given array.
422     * 
423     * @param array
424     *     The array to copy or {@code null}.
425     * @return
426     *     A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
427     */
428    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
429    private static boolean[] copyOf(final boolean[] array) {
430        // CC-XJC Version 1.3 Build 2010-02-27T15:04:03+0000
431        if (array!= null) {
432            final boolean[] copy = ((boolean[]) Array.newInstance(array.getClass().getComponentType(), array.length));
433            System.arraycopy(array, 0, copy, 0, array.length);
434            return copy;
435        }
436        return null;
437    }
438 
439    /**
440     * Creates and returns a deep copy of a given array.
441     * 
442     * @param array
443     *     The array to copy or {@code null}.
444     * @return
445     *     A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
446     */
447    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
448    private static byte[] copyOf(final byte[] array) {
449        // CC-XJC Version 1.3 Build 2010-02-27T15:04:03+0000
450        if (array!= null) {
451            final byte[] copy = ((byte[]) Array.newInstance(array.getClass().getComponentType(), array.length));
452            System.arraycopy(array, 0, copy, 0, array.length);
453            return copy;
454        }
455        return null;
456    }
457 
458    /**
459     * Creates and returns a deep copy of a given array.
460     * 
461     * @param array
462     *     The array to copy or {@code null}.
463     * @return
464     *     A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
465     */
466    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
467    private static char[] copyOf(final char[] array) {
468        // CC-XJC Version 1.3 Build 2010-02-27T15:04:03+0000
469        if (array!= null) {
470            final char[] copy = ((char[]) Array.newInstance(array.getClass().getComponentType(), array.length));
471            System.arraycopy(array, 0, copy, 0, array.length);
472            return copy;
473        }
474        return null;
475    }
476 
477    /**
478     * Creates and returns a deep copy of a given array.
479     * 
480     * @param array
481     *     The array to copy or {@code null}.
482     * @return
483     *     A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
484     */
485    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
486    private static double[] copyOf(final double[] array) {
487        // CC-XJC Version 1.3 Build 2010-02-27T15:04:03+0000
488        if (array!= null) {
489            final double[] copy = ((double[]) Array.newInstance(array.getClass().getComponentType(), array.length));
490            System.arraycopy(array, 0, copy, 0, array.length);
491            return copy;
492        }
493        return null;
494    }
495 
496    /**
497     * Creates and returns a deep copy of a given array.
498     * 
499     * @param array
500     *     The array to copy or {@code null}.
501     * @return
502     *     A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
503     */
504    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
505    private static float[] copyOf(final float[] array) {
506        // CC-XJC Version 1.3 Build 2010-02-27T15:04:03+0000
507        if (array!= null) {
508            final float[] copy = ((float[]) Array.newInstance(array.getClass().getComponentType(), array.length));
509            System.arraycopy(array, 0, copy, 0, array.length);
510            return copy;
511        }
512        return null;
513    }
514 
515    /**
516     * Creates and returns a deep copy of a given array.
517     * 
518     * @param array
519     *     The array to copy or {@code null}.
520     * @return
521     *     A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
522     */
523    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
524    private static int[] copyOf(final int[] array) {
525        // CC-XJC Version 1.3 Build 2010-02-27T15:04:03+0000
526        if (array!= null) {
527            final int[] copy = ((int[]) Array.newInstance(array.getClass().getComponentType(), array.length));
528            System.arraycopy(array, 0, copy, 0, array.length);
529            return copy;
530        }
531        return null;
532    }
533 
534    /**
535     * Creates and returns a deep copy of a given array.
536     * 
537     * @param array
538     *     The array to copy or {@code null}.
539     * @return
540     *     A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
541     */
542    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
543    private static long[] copyOf(final long[] array) {
544        // CC-XJC Version 1.3 Build 2010-02-27T15:04:03+0000
545        if (array!= null) {
546            final long[] copy = ((long[]) Array.newInstance(array.getClass().getComponentType(), array.length));
547            System.arraycopy(array, 0, copy, 0, array.length);
548            return copy;
549        }
550        return null;
551    }
552 
553    /**
554     * Creates and returns a deep copy of a given array.
555     * 
556     * @param array
557     *     The array to copy or {@code null}.
558     * @return
559     *     A deep copy of {@code array} or {@code null} if {@code array} is {@code null}.
560     */
561    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
562    private static short[] copyOf(final short[] array) {
563        // CC-XJC Version 1.3 Build 2010-02-27T15:04:03+0000
564        if (array!= null) {
565            final short[] copy = ((short[]) Array.newInstance(array.getClass().getComponentType(), array.length));
566            System.arraycopy(array, 0, copy, 0, array.length);
567            return copy;
568        }
569        return null;
570    }
571 
572    /**
573     * Creates and returns a deep copy of a given {@code JAXBElement} instance.
574     * 
575     * @param element
576     *     The instance to copy or {@code null}.
577     * @return
578     *     A deep copy of {@code element} or {@code null} if {@code element} is {@code null}.
579     */
580    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
581    private static JAXBElement copyOFJAXBElement(final JAXBElement element) {
582        // CC-XJC Version 1.3 Build 2010-02-27T15:04:03+0000
583        if (element!= null) {
584            final JAXBElement copy = new JAXBElement(element.getName(), element.getDeclaredType(), element.getScope(), element.getValue());
585            copy.setNil(element.isNil());
586            copy.setValue(copyOfObject(copy.getValue()));
587            return copy;
588        }
589        return null;
590    }
591 
592    /**
593     * Creates and returns a deep copy of a given {@code Serializable}.
594     * 
595     * @param serializable
596     *     The instance to copy or {@code null}.
597     * @return
598     *     A deep copy of {@code serializable} or {@code null} if {@code serializable} is {@code null}.
599     */
600    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
601    private static Serializable copyOfSerializable(final Serializable serializable) {
602        // CC-XJC Version 1.3 Build 2010-02-27T15:04:03+0000
603        if (serializable!= null) {
604            try {
605                final ByteArrayOutputStream byteArrayOutput = new ByteArrayOutputStream();
606                final ObjectOutputStream out = new ObjectOutputStream(byteArrayOutput);
607                out.writeObject(serializable);
608                out.close();
609                final ByteArrayInputStream byteArrayInput = new ByteArrayInputStream(byteArrayOutput.toByteArray());
610                final ObjectInputStream in = new ObjectInputStream(byteArrayInput);
611                final Serializable copy = ((Serializable) in.readObject());
612                in.close();
613                return copy;
614            } catch (SecurityException e) {
615                throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
616            } catch (ClassNotFoundException e) {
617                throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
618            } catch (InvalidClassException e) {
619                throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
620            } catch (NotSerializableException e) {
621                throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
622            } catch (StreamCorruptedException e) {
623                throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
624            } catch (OptionalDataException e) {
625                throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
626            } catch (IOException e) {
627                throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e));
628            }
629        }
630        return null;
631    }
632 
633    /**
634     * Creates and returns a deep copy of this object.
635     * 
636     * 
637     * @return
638     *     A deep copy of this object.
639     */
640    @Override
641    @Generated(value = "com.sun.tools.xjc.Driver", date = "2010-06-29T05:36:20+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
642    public ItemType clone() {
643        // CC-XJC Version 1.3 Build 2010-02-27T15:04:03+0000
644        return new ItemType(this);
645    }
646    
647    /**
648     * Gets the Java value of the item.
649     * <p>The Java value of the item is computed based on the following rules:
650     * <ol>
651     * <li>If property {@code any} is set, the Java value is computed based on the object returned by method
652     * {@code getAny()} by possibly unwrapping any {@code JAXBElement} instances. If that object declares a
653     * <blockquote><pre>public Object getJavaValue( ClassLoader )</pre></blockquote> method, the value returned by this
654     * method is the object returned by a call to that method using reflection. If that object does not declare such a
655     * method, the value returned by this method is that (possibly unwrapped) object.</li>
656     * <li>If property {@code value} is set, the Java value is computed based on the values of properties {@code type}
657     * and {@code value}. If property {@code type} is not set or equals {@code java.lang.String}, the value returned
658     * by this method is the string value returned by method {@code getValue()}. If property {@code type} equals a name
659     * of a Java primitive type, an instance of the wrapper class corresponding to that primitive type name is returned
660     * instantiated by passing the value of property {@code value} to the public constructor taking a single
661     * {@code java.lang.String} argument of that wrapper class. For all other values of property {@code type} an
662     * instance of a class with a name equal to the value of property {@code type} is returned instantiated by passing
663     * the value of property {@code value} to the public constructor taking a single {@code java.lang.String} argument
664     * of that class.</li>
665     * <li>If properties {@code any} and {@code value} are both {@code null}, this method returns {@code null}.</li>
666     * </ol></p>
667     *
668     * @param classLoader The class loader to use for getting the Java value; {@code null} to use the platform's
669     * bootstrap class loader.
670     *
671     * @return The Java value of the item or {@code null}.
672     *
673     * @throws org.jomc.model.PropertyException if getting the Java value of the item fails.
674     */
675    public Object getJavaValue( final ClassLoader classLoader ) throws org.jomc.model.PropertyException
676    {
677        try
678        {
679            if ( this.getAny() != null )
680            {
681                if ( this.getType() == null )
682                {
683                    throw new org.jomc.model.PropertyException( getMessage( "objectWithoutType" ) );
684                }
685 
686                String typeName = this.getType();
687                final int idx = typeName.indexOf( "<" );
688                if ( idx != -1 )
689                {
690                    typeName = typeName.substring( 0, idx );
691                }
692 
693                final Class javaType = Class.forName( typeName, true, classLoader );
694                final Object anyObject = this.getAny() instanceof JAXBElement
695                                         ? ( (JAXBElement) this.getAny() ).getValue() : this.getAny();
696 
697                return ReflectionHelper.getJavaValue( classLoader, anyObject, javaType );
698            }
699 
700            Class javaType = String.class;
701            boolean primitive = false;
702 
703            if ( this.getType() != null )
704            {
705                if ( Boolean.TYPE.getName().equals( this.getType() ) )
706                {
707                    javaType = Boolean.class;
708                    primitive = true;
709                }
710                else if ( Byte.TYPE.getName().equals( this.getType() ) )
711                {
712                    javaType = Byte.class;
713                    primitive = true;
714                }
715                else if ( Character.TYPE.getName().equals( this.getType() ) )
716                {
717                    javaType = Character.class;
718                    primitive = true;
719                }
720                else if ( Double.TYPE.getName().equals( this.getType() ) )
721                {
722                    javaType = Double.class;
723                    primitive = true;
724                }
725                else if ( Float.TYPE.getName().equals( this.getType() ) )
726                {
727                    javaType = Float.class;
728                    primitive = true;
729                }
730                else if ( Integer.TYPE.getName().equals( this.getType() ) )
731                {
732                    javaType = Integer.class;
733                    primitive = true;
734                }
735                else if ( Long.TYPE.getName().equals( this.getType() ) )
736                {
737                    javaType = Long.class;
738                    primitive = true;
739                }
740                else if ( Short.TYPE.getName().equals( this.getType() ) )
741                {
742                    javaType = Short.class;
743                    primitive = true;
744                }
745                else
746                {
747                    String typeName = this.getType();
748                    final int idx = typeName.indexOf( "<" );
749                    if ( idx != -1 )
750                    {
751                        typeName = typeName.substring( 0, idx );
752                    }
753 
754                    javaType = Class.forName( typeName, true, classLoader );
755                }
756            }
757 
758            if ( this.getValue() == null && primitive )
759            {
760                throw new org.jomc.model.PropertyException( getMessage( "objectWithoutValue", this.getType() ) );
761            }
762 
763            return ReflectionHelper.getJavaValue( javaType, this.getValue() );
764        }
765        catch ( final ClassNotFoundException e )
766        {
767            throw new org.jomc.model.PropertyException( getMessage( "classNotFound", this.getType() ), e );
768        }
769    }
770 
771    private static String getMessage( final String key, final Object... arguments )
772    {
773        return java.text.MessageFormat.format( java.util.ResourceBundle.getBundle(
774            ItemType.class.getName().replace( '.', '/' ), java.util.Locale.getDefault() ).getString( key ), arguments );
775 
776    }
777 
778      
779}

[all classes][org.jomc.sdk.model]
EMMA 2.0.5312 (C) Vladimir Roubtsov