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