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 arguments. 022 * 023 * <p>Java class for Arguments complex type. 024 * 025 * <p>The following schema fragment specifies the expected content contained within this class. 026 * 027 * <pre> 028 * <complexType name="Arguments"> 029 * <complexContent> 030 * <extension base="{http://jomc.org/model}ModelObject"> 031 * <sequence> 032 * <element ref="{http://jomc.org/model}argument" maxOccurs="unbounded" minOccurs="0"/> 033 * </sequence> 034 * </extension> 035 * </complexContent> 036 * </complexType> 037 * </pre> 038 * 039 * 040 */ 041 @XmlAccessorType(XmlAccessType.FIELD) 042 @XmlType(name = "Arguments", propOrder = { 043 "argument" 044 }) 045 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833") 046 public class Arguments 047 extends ModelObject 048 implements Cloneable 049 { 050 051 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833") 052 protected List<Argument> argument; 053 054 /** 055 * Creates a new {@code Arguments} instance. 056 * 057 */ 058 public Arguments() { 059 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000 060 super(); 061 } 062 063 /** 064 * Creates a new {@code Arguments} instance by deeply copying a given {@code Arguments} instance. 065 * 066 * 067 * @param o 068 * The instance to copy. 069 * @throws NullPointerException 070 * if {@code o} is {@code null}. 071 */ 072 public Arguments(final Arguments o) { 073 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000 074 super(o); 075 if (o == null) { 076 throw new NullPointerException("Cannot create a copy of 'Arguments' from 'null'."); 077 } 078 // 'Argument' collection. 079 copyArgument(o.getArgument(), getArgument()); 080 } 081 082 /** 083 * Gets the value of the argument property. 084 * 085 * <p> 086 * This accessor method returns a reference to the live list, 087 * not a snapshot. Therefore any modification you make to the 088 * returned list will be present inside the JAXB object. 089 * This is why there is not a <CODE>set</CODE> method for the argument property. 090 * 091 * <p> 092 * For example, to add a new item, do as follows: 093 * <pre> 094 * getArgument().add(newItem); 095 * </pre> 096 * 097 * 098 * <p> 099 * Objects of the following type(s) are allowed in the list 100 * {@link Argument } 101 * 102 * 103 */ 104 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833") 105 public List<Argument> getArgument() { 106 if (argument == null) { 107 argument = new ArrayList<Argument>(); 108 } 109 return this.argument; 110 } 111 112 /** 113 * Copies all values of property {@code Argument} deeply. 114 * 115 * @param target 116 * The target to copy {@code source} to. 117 * @param source 118 * The source to copy from. 119 * @throws NullPointerException 120 * if {@code source} or {@code target} is {@code null}. 121 */ 122 @SuppressWarnings("unchecked") 123 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833") 124 private static void copyArgument(final List<Argument> source, final List<Argument> target) { 125 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000 126 if (!source.isEmpty()) { 127 for (Iterator it = source.iterator(); it.hasNext(); ) { 128 final Object next = it.next(); 129 if (next instanceof Argument) { 130 // CClassInfo: org.jomc.model.Argument 131 target.add(((Argument) next).clone()); 132 continue; 133 } 134 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ 135 throw new AssertionError((("Unexpected instance '"+ next)+"' for property 'Argument' of class 'org.jomc.model.Arguments'.")); 136 } 137 } 138 } 139 140 /** 141 * Creates and returns a deep copy of this object. 142 * 143 * 144 * @return 145 * A deep copy of this object. 146 */ 147 @Override 148 @Generated(value = "com.sun.tools.xjc.Driver", date = "2009-12-07T03:06:36+00:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-833") 149 public Arguments clone() { 150 // CC-XJC Version 1.2 Build 2009-11-15T21:50:02+0000 151 return new Arguments(this); 152 } 153 154 /** 155 * Gets an argument for a given name from the list of arguments. 156 * 157 * @param name The name of the argument to return. 158 * 159 * @return The argument with name {@code name} from the list or 160 * {@code null}, if no argument matching {@code name} is found. 161 * 162 * @throws NullPointerException if {@code name} is {@code null}. 163 * 164 * @see #getArgument() 165 */ 166 public Argument getArgument( final String name ) 167 { 168 if ( name == null ) 169 { 170 throw new NullPointerException( "name" ); 171 } 172 173 for ( Argument a : this.getArgument() ) 174 { 175 if ( name.equals( a.getName() ) ) 176 { 177 return a; 178 } 179 } 180 181 return null; 182 } 183 184 /** 185 * Gets an argument for a given index from the list of arguments. 186 * 187 * @param index The index of the argument to return. 188 * 189 * @return The argument at {@code index} from the list. 190 * 191 * @throws IndexOutOfBoundsException if {@code index} is negative, greater 192 * or equal to the size of the list of arguments. 193 * 194 * @see #getArgument() 195 */ 196 public Argument getArgument( final int index ) 197 { 198 if ( index < 0 || index >= this.getArgument().size() ) 199 { 200 throw new IndexOutOfBoundsException( Integer.toString( index ) ); 201 } 202 203 for ( Argument a : this.getArgument() ) 204 { 205 if ( index == a.getIndex() ) 206 { 207 return a; 208 } 209 } 210 211 return null; 212 } 213 214 215 }