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.01.03 at 05:01:35 AM CET
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.XmlAttribute;
18 import javax.xml.bind.annotation.XmlElement;
19 import javax.xml.bind.annotation.XmlType;
20 import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
21 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
22
23
24 /**
25 * List of texts.
26 *
27 * <p>Java class for Texts complex type.
28 *
29 * <p>The following schema fragment specifies the expected content contained within this class.
30 *
31 * <pre>
32 * <complexType name="Texts">
33 * <complexContent>
34 * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
35 * <sequence>
36 * <element ref="{http://jomc.org/model}text" maxOccurs="unbounded"/>
37 * </sequence>
38 * <attribute name="defaultLanguage" use="required" type="{http://jomc.org/model}Language" />
39 * </restriction>
40 * </complexContent>
41 * </complexType>
42 * </pre>
43 *
44 *
45 */
46 @XmlAccessorType(XmlAccessType.FIELD)
47 @XmlType(name = "Texts", namespace = "http://jomc.org/model", propOrder = {
48 "text"
49 })
50 @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-01-03T05:01:35+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
51 public class Texts implements Cloneable
52 {
53
54 @XmlElement(namespace = "http://jomc.org/model", required = true)
55 @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-01-03T05:01:35+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
56 protected List<Text> text;
57 @XmlAttribute(name = "defaultLanguage", required = true)
58 @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
59 @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-01-03T05:01:35+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
60 protected String defaultLanguage;
61
62 /**
63 * Creates a new {@code Texts} instance.
64 *
65 */
66 public Texts() {
67 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000
68 super();
69 }
70
71 /**
72 * Creates a new {@code Texts} instance by deeply copying a given {@code Texts} instance.
73 *
74 *
75 * @param o
76 * The instance to copy.
77 * @throws NullPointerException
78 * if {@code o} is {@code null}.
79 */
80 public Texts(final Texts o) {
81 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000
82 super();
83 if (o == null) {
84 throw new NullPointerException("Cannot create a copy of 'Texts' from 'null'.");
85 }
86 // 'Text' collection.
87 if (o.text!= null) {
88 copyText(o.getText(), this.getText());
89 }
90 // CBuiltinLeafInfo: java.lang.String
91 this.defaultLanguage = ((o.defaultLanguage == null)?null:o.getDefaultLanguage());
92 }
93
94 /**
95 * Gets the value of the text property.
96 *
97 * <p>
98 * This accessor method returns a reference to the live list,
99 * not a snapshot. Therefore any modification you make to the
100 * returned list will be present inside the JAXB object.
101 * This is why there is not a <CODE>set</CODE> method for the text property.
102 *
103 * <p>
104 * For example, to add a new item, do as follows:
105 * <pre>
106 * getText().add(newItem);
107 * </pre>
108 *
109 *
110 * <p>
111 * Objects of the following type(s) are allowed in the list
112 * {@link Text }
113 *
114 *
115 */
116 @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-01-03T05:01:35+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
117 public List<Text> getText() {
118 if (text == null) {
119 text = new ArrayList<Text>();
120 }
121 return this.text;
122 }
123
124 /**
125 * Default text of this list.
126 *
127 * @return
128 * possible object is
129 * {@link String }
130 *
131 */
132 @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-01-03T05:01:35+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
133 public String getDefaultLanguage() {
134 return defaultLanguage;
135 }
136
137 /**
138 * Sets the value of the defaultLanguage property.
139 *
140 * @param value
141 * allowed object is
142 * {@link String }
143 *
144 */
145 @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-01-03T05:01:35+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
146 public void setDefaultLanguage(String value) {
147 this.defaultLanguage = value;
148 }
149
150 /**
151 * Copies all values of property {@code Text} deeply.
152 *
153 * @param source
154 * The source to copy from.
155 * @param target
156 * The target to copy {@code source} to.
157 * @throws NullPointerException
158 * if {@code target} is {@code null}.
159 */
160 @SuppressWarnings("unchecked")
161 @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-01-03T05:01:35+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
162 private static void copyText(final List<Text> source, final List<Text> target) {
163 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000
164 if ((source!= null)&&(!source.isEmpty())) {
165 for (final Iterator<?> it = source.iterator(); it.hasNext(); ) {
166 final Object next = it.next();
167 if (next instanceof Text) {
168 // CClassInfo: org.jomc.model.Text
169 target.add(((Text) next).clone());
170 continue;
171 }
172 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
173 throw new AssertionError((("Unexpected instance '"+ next)+"' for property 'Text' of class 'org.jomc.model.Texts'."));
174 }
175 }
176 }
177
178 /**
179 * Creates and returns a deep copy of this object.
180 *
181 *
182 * @return
183 * A deep copy of this object.
184 */
185 @Override
186 @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-01-03T05:01:35+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
187 public Texts clone() {
188 try {
189 {
190 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000
191 final Texts clone = ((Texts) super.clone());
192 // 'Text' collection.
193 if (this.text!= null) {
194 clone.text = null;
195 copyText(this.getText(), clone.getText());
196 }
197 // CBuiltinLeafInfo: java.lang.String
198 clone.defaultLanguage = ((this.defaultLanguage == null)?null:this.getDefaultLanguage());
199 return clone;
200 }
201 } catch (CloneNotSupportedException e) {
202 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/
203 throw new AssertionError(e);
204 }
205 }
206
207 /**
208 * Gets a text for a given language from the list of texts.
209 *
210 * @param language The language of the text to return.
211 *
212 * @return The first matching text or the default text, if no such text is found.
213 *
214 * @throws NullPointerException if {@code language} is {@code null}.
215 *
216 * @see #getText()
217 * @see #getDefaultLanguage()
218 * @see Text#getLanguage()
219 */
220 public Text getText( final String language )
221 {
222 if ( language == null )
223 {
224 throw new NullPointerException( "language" );
225 }
226
227 Text defaultText = null;
228
229 for ( int i = 0, s0 = this.getText().size(); i < s0; i++ )
230 {
231 final Text t = this.getText().get( i );
232
233 if ( t.getLanguage().equalsIgnoreCase( this.getDefaultLanguage() ) )
234 {
235 defaultText = t;
236 }
237 if ( t.getLanguage().equalsIgnoreCase( language ) )
238 {
239 return t;
240 }
241 }
242
243 return defaultText;
244 }
245
246 /**
247 * Gets a text for a given locale from the list of texts.
248 *
249 * @param locale The locale of the text to return.
250 *
251 * @return The first matching text or the default text, if no such text is found.
252 *
253 * @throws NullPointerException if {@code locale} is {@code null}.
254 *
255 * @see #getText()
256 * @see #getDefaultLanguage()
257 * @see Text#getLanguage()
258 *
259 * @since 1.4
260 */
261 public Text getText( final java.util.Locale locale )
262 {
263 if ( locale == null )
264 {
265 throw new NullPointerException( "locale" );
266 }
267
268 Text defaultText = null;
269
270 for ( int i = 0, s0 = this.getText().size(); i < s0; i++ )
271 {
272 final Text t = this.getText().get( i );
273
274 if ( t.getLanguage().equalsIgnoreCase( this.getDefaultLanguage() ) )
275 {
276 defaultText = t;
277 }
278 if ( t.getLanguage().equalsIgnoreCase( locale.getLanguage() ) )
279 {
280 return t;
281 }
282 }
283
284 return defaultText;
285 }
286
287 }