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.util.ArrayList;
012 import java.util.Iterator;
013 import java.util.List;
014 import javax.annotation.Generated;
015 import javax.xml.bind.annotation.XmlAccessType;
016 import javax.xml.bind.annotation.XmlAccessorType;
017 import javax.xml.bind.annotation.XmlType;
018
019
020 /**
021 * List of properties.
022 *
023 * <p>Java class for Properties complex type.
024 *
025 * <p>The following schema fragment specifies the expected content contained within this class.
026 *
027 * <pre>
028 * <complexType name="Properties">
029 * <complexContent>
030 * <extension base="{http://jomc.org/model}ModelObject">
031 * <sequence>
032 * <element ref="{http://jomc.org/model}property" maxOccurs="unbounded" minOccurs="0"/>
033 * <element name="reference" type="{http://jomc.org/model}PropertyReference" maxOccurs="unbounded" minOccurs="0"/>
034 * </sequence>
035 * </extension>
036 * </complexContent>
037 * </complexType>
038 * </pre>
039 *
040 *
041 */
042 @XmlAccessorType(XmlAccessType.FIELD)
043 @XmlType(name = "Properties", propOrder = {
044 "property",
045 "reference"
046 })
047 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
048 public class Properties
049 extends ModelObject
050 implements Cloneable
051 {
052
053 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
054 protected List<Property> property;
055 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
056 protected List<PropertyReference> reference;
057
058 /**
059 * Creates a new {@code Properties} instance.
060 *
061 */
062 public Properties() {
063 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
064 super();
065 }
066
067 /**
068 * Creates a new {@code Properties} instance by deeply copying a given {@code Properties} instance.
069 *
070 *
071 * @param o
072 * The instance to copy.
073 * @throws NullPointerException
074 * if {@code o} is {@code null}.
075 */
076 public Properties(final Properties o) {
077 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
078 super(o);
079 if (o == null) {
080 throw new NullPointerException("Cannot create a copy of 'Properties' from 'null'.");
081 }
082 // 'Property' collection.
083 copyProperty(o.getProperty(), getProperty());
084 // 'Reference' collection.
085 copyReference(o.getReference(), getReference());
086 }
087
088 /**
089 * Gets the value of the property property.
090 *
091 * <p>
092 * This accessor method returns a reference to the live list,
093 * not a snapshot. Therefore any modification you make to the
094 * returned list will be present inside the JAXB object.
095 * This is why there is not a <CODE>set</CODE> method for the property property.
096 *
097 * <p>
098 * For example, to add a new item, do as follows:
099 * <pre>
100 * getProperty().add(newItem);
101 * </pre>
102 *
103 *
104 * <p>
105 * Objects of the following type(s) are allowed in the list
106 * {@link Property }
107 *
108 *
109 */
110 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
111 public List<Property> getProperty() {
112 if (property == null) {
113 property = new ArrayList<Property>();
114 }
115 return this.property;
116 }
117
118 /**
119 * Gets the value of the reference property.
120 *
121 * <p>
122 * This accessor method returns a reference to the live list,
123 * not a snapshot. Therefore any modification you make to the
124 * returned list will be present inside the JAXB object.
125 * This is why there is not a <CODE>set</CODE> method for the reference property.
126 *
127 * <p>
128 * For example, to add a new item, do as follows:
129 * <pre>
130 * getReference().add(newItem);
131 * </pre>
132 *
133 *
134 * <p>
135 * Objects of the following type(s) are allowed in the list
136 * {@link PropertyReference }
137 *
138 *
139 */
140 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
141 public List<PropertyReference> getReference() {
142 if (reference == null) {
143 reference = new ArrayList<PropertyReference>();
144 }
145 return this.reference;
146 }
147
148 /**
149 * Copies all values of property {@code Property} deeply.
150 *
151 * @param target
152 * The target to copy {@code source} to.
153 * @param source
154 * The source to copy from.
155 * @throws NullPointerException
156 * if {@code source} or {@code target} is {@code null}.
157 */
158 @SuppressWarnings("unchecked")
159 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
160 private static void copyProperty(final List<Property> source, final List<Property> target) {
161 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
162 if (!source.isEmpty()) {
163 for (Iterator it = source.iterator(); it.hasNext(); ) {
164 final Object next = it.next();
165 if (next instanceof Property) {
166 // CClassInfo: org.jomc.model.Property
167 target.add(((Property) next).clone());
168 continue;
169 }
170 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
171 throw new AssertionError((("Unexpected instance '"+ next)+"' for property 'Property' of class 'org.jomc.model.Properties'."));
172 }
173 }
174 }
175
176 /**
177 * Copies all values of property {@code Reference} deeply.
178 *
179 * @param target
180 * The target to copy {@code source} to.
181 * @param source
182 * The source to copy from.
183 * @throws NullPointerException
184 * if {@code source} or {@code target} is {@code null}.
185 */
186 @SuppressWarnings("unchecked")
187 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
188 private static void copyReference(final List<PropertyReference> source, final List<PropertyReference> target) {
189 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
190 if (!source.isEmpty()) {
191 for (Iterator it = source.iterator(); it.hasNext(); ) {
192 final Object next = it.next();
193 if (next instanceof PropertyReference) {
194 // CClassInfo: org.jomc.model.PropertyReference
195 target.add(((PropertyReference) next).clone());
196 continue;
197 }
198 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
199 throw new AssertionError((("Unexpected instance '"+ next)+"' for property 'Reference' of class 'org.jomc.model.Properties'."));
200 }
201 }
202 }
203
204 /**
205 * Creates and returns a deep copy of this object.
206 *
207 *
208 * @return
209 * A deep copy of this object.
210 */
211 @Override
212 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833")
213 public Properties clone() {
214 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000
215 return new Properties(this);
216 }
217
218 /**
219 * Gets a property for a given name from the list of properties.
220 *
221 * @param name The name of the property to return.
222 *
223 * @return The property with name {@code name} from the list or
224 * {@code null}, if no property matching {@code name} is found.
225 *
226 * @throws NullPointerException if {@code name} is {@code null}.
227 *
228 * @see #getProperty()
229 */
230 public Property getProperty( final String name )
231 {
232 if ( name == null )
233 {
234 throw new NullPointerException( "name" );
235 }
236
237 for ( Property p : this.getProperty() )
238 {
239 if ( name.equals( p.getName() ) )
240 {
241 return p;
242 }
243 }
244
245 return null;
246 }
247
248 /**
249 * Gets a property reference for a given name from the list of references.
250 *
251 * @param name The name of the property reference to return.
252 *
253 * @return The property reference with name {@code name} from the list or
254 * {@code null}, if no property reference matching {@code name} is found.
255 *
256 * @throws NullPointerException if {@code name} is {@code null}.
257 *
258 * @see #getReference()
259 */
260 public PropertyReference getReference( final String name )
261 {
262 if ( name == null )
263 {
264 throw new NullPointerException( "name" );
265 }
266
267 for ( PropertyReference r : this.getReference() )
268 {
269 if ( name.equals( r.getName() ) )
270 {
271 return r;
272 }
273 }
274
275 return null;
276 }
277
278
279 }