View Javadoc

1   //
2   // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-2 
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: 2013.04.21 at 08:43:16 PM CEST 
6   //
7   
8   
9   package org.jomc.model;
10  
11  import java.util.ArrayList;
12  import java.util.Iterator;
13  import java.util.List;
14  import javax.annotation.Generated;
15  import javax.xml.bind.annotation.XmlAccessType;
16  import javax.xml.bind.annotation.XmlAccessorType;
17  import javax.xml.bind.annotation.XmlElement;
18  import javax.xml.bind.annotation.XmlType;
19  
20  
21  /**
22   * List of instances.
23   * 
24   * <p>Java class for Instances complex type.
25   * 
26   * <p>The following schema fragment specifies the expected content contained within this class.
27   * 
28   * <pre>
29   * &lt;complexType name="Instances">
30   *   &lt;complexContent>
31   *     &lt;extension base="{http://jomc.org/model}ModelObject">
32   *       &lt;sequence>
33   *         &lt;element ref="{http://jomc.org/model}instance" maxOccurs="unbounded" minOccurs="0"/>
34   *       &lt;/sequence>
35   *     &lt;/extension>
36   *   &lt;/complexContent>
37   * &lt;/complexType>
38   * </pre>
39   * 
40   * 
41   */
42  @XmlAccessorType(XmlAccessType.FIELD)
43  @XmlType(name = "Instances", namespace = "http://jomc.org/model", propOrder = {
44      "instance"
45  })
46  @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-04-21T08:43:16+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
47  public class Instances
48      extends ModelObject
49      implements Cloneable
50  {
51  
52      @XmlElement(namespace = "http://jomc.org/model")
53      @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-04-21T08:43:16+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
54      protected List<Instance> instance;
55  
56      /**
57       * Creates a new {@code Instances} instance.
58       * 
59       */
60      public Instances() {
61          // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000
62          super();
63      }
64  
65      /**
66       * Creates a new {@code Instances} instance by deeply copying a given {@code Instances} instance.
67       * 
68       * 
69       * @param o
70       *     The instance to copy.
71       * @throws NullPointerException
72       *     if {@code o} is {@code null}.
73       */
74      public Instances(final Instances o) {
75          // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000
76          super(o);
77          if (o == null) {
78              throw new NullPointerException("Cannot create a copy of 'Instances' from 'null'.");
79          }
80          // 'Instance' collection.
81          if (o.instance!= null) {
82              copyInstance(o.getInstance(), this.getInstance());
83          }
84      }
85  
86      /**
87       * Gets the value of the instance property.
88       * 
89       * <p>
90       * This accessor method returns a reference to the live list,
91       * not a snapshot. Therefore any modification you make to the
92       * returned list will be present inside the JAXB object.
93       * This is why there is not a <CODE>set</CODE> method for the instance property.
94       * 
95       * <p>
96       * For example, to add a new item, do as follows:
97       * <pre>
98       *    getInstance().add(newItem);
99       * </pre>
100      * 
101      * 
102      * <p>
103      * Objects of the following type(s) are allowed in the list
104      * {@link Instance }
105      * 
106      * 
107      */
108     @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-04-21T08:43:16+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
109     public List<Instance> getInstance() {
110         if (instance == null) {
111             instance = new ArrayList<Instance>();
112         }
113         return this.instance;
114     }
115 
116     /**
117      * Copies all values of property {@code Instance} deeply.
118      * 
119      * @param source
120      *     The source to copy from.
121      * @param target
122      *     The target to copy {@code source} to.
123      * @throws NullPointerException
124      *     if {@code target} is {@code null}.
125      */
126     @SuppressWarnings("unchecked")
127     @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-04-21T08:43:16+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
128     private static void copyInstance(final List<Instance> source, final List<Instance> target) {
129         // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000
130         if ((source!= null)&&(!source.isEmpty())) {
131             for (final Iterator<?> it = source.iterator(); it.hasNext(); ) {
132                 final Object next = it.next();
133                 if (next instanceof Instance) {
134                     // CClassInfo: org.jomc.model.Instance
135                     target.add(((Instance) next).clone());
136                     continue;
137                 }
138                 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
139                 throw new AssertionError((("Unexpected instance '"+ next)+"' for property 'Instance' of class 'org.jomc.model.Instances'."));
140             }
141         }
142     }
143 
144     /**
145      * Creates and returns a deep copy of this object.
146      * 
147      * 
148      * @return
149      *     A deep copy of this object.
150      */
151     @Override
152     @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-04-21T08:43:16+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
153     public Instances clone() {
154         {
155             // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000
156             final Instances clone = ((Instances) super.clone());
157             // 'Instance' collection.
158             if (this.instance!= null) {
159                 clone.instance = null;
160                 copyInstance(this.getInstance(), clone.getInstance());
161             }
162             return clone;
163         }
164     }
165     
166     /**
167      * Gets an instance for a given identifier from the list of instances.
168      *
169      * @param identifier The identifier of the instance to return.
170      *
171      * @return The first matching instance or {@code null}, if no such instance is found.
172      *
173      * @throws NullPointerException if {@code identifier} is {@code null}.
174      *
175      * @see #getInstance()
176      * @see Instance#getIdentifier()
177      */
178     public Instance getInstance( final String identifier )
179     {
180         if ( identifier == null )
181         {
182             throw new NullPointerException( "identifier" );
183         }
184 
185         for ( int i = 0, s0 = this.getInstance().size(); i < s0; i++ )
186         {
187             final Instance current = this.getInstance().get( i );
188 
189             if ( identifier.equals( current.getIdentifier() ) )
190             {
191                 return current;
192             }
193         }
194 
195         return null;
196     }
197       
198 }