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: 2014.11.18 at 07:01:01 AM CET |
6 | // |
7 | |
8 | |
9 | package org.jomc.model; |
10 | |
11 | import javax.annotation.Generated; |
12 | import javax.xml.bind.annotation.XmlAccessType; |
13 | import javax.xml.bind.annotation.XmlAccessorType; |
14 | import javax.xml.bind.annotation.XmlAttribute; |
15 | import javax.xml.bind.annotation.XmlType; |
16 | import javax.xml.bind.annotation.XmlValue; |
17 | import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; |
18 | import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; |
19 | |
20 | |
21 | /** |
22 | * |
23 | * Model of text. |
24 | * |
25 | * The 'Text' type defines attributes 'language', 'type' and 'value'. Attribute 'language' holds the language key |
26 | * identifying the text in a set of texts. Attribute 'type' specifies a Multipurpose Internet Mail Extension (MIME) type, |
27 | * as defined in RFC 2045 and 2046. Attribute 'value' holds the text of the type corresponding to the language. |
28 | * |
29 | * |
30 | * <p>Java class for Text complex type. |
31 | * |
32 | * <p>The following schema fragment specifies the expected content contained within this class. |
33 | * |
34 | * <pre> |
35 | * <complexType name="Text"> |
36 | * <simpleContent> |
37 | * <extension base="<http://jomc.org/model>String"> |
38 | * <attribute name="language" use="required" type="{http://jomc.org/model}Language" /> |
39 | * <attribute name="type" type="{http://jomc.org/model}MimeType" default="text/plain" /> |
40 | * </extension> |
41 | * </simpleContent> |
42 | * </complexType> |
43 | * </pre> |
44 | * |
45 | * |
46 | */ |
47 | @XmlAccessorType(XmlAccessType.FIELD) |
48 | @XmlType(name = "Text", namespace = "http://jomc.org/model", propOrder = { |
49 | "value" |
50 | }) |
51 | @Generated(value = "com.sun.tools.xjc.Driver", date = "2014-11-18T07:01:01+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") |
52 | public class Text implements Cloneable |
53 | { |
54 | |
55 | @XmlValue |
56 | @Generated(value = "com.sun.tools.xjc.Driver", date = "2014-11-18T07:01:01+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") |
57 | protected String value; |
58 | @XmlAttribute(name = "language", required = true) |
59 | @XmlJavaTypeAdapter(CollapsedStringAdapter.class) |
60 | @Generated(value = "com.sun.tools.xjc.Driver", date = "2014-11-18T07:01:01+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") |
61 | protected String language; |
62 | @XmlAttribute(name = "type") |
63 | @XmlJavaTypeAdapter(CollapsedStringAdapter.class) |
64 | @Generated(value = "com.sun.tools.xjc.Driver", date = "2014-11-18T07:01:01+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") |
65 | protected String type; |
66 | |
67 | /** |
68 | * Creates a new {@code Text} instance. |
69 | * |
70 | */ |
71 | public Text() { |
72 | // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 |
73 | super(); |
74 | } |
75 | |
76 | /** |
77 | * Creates a new {@code Text} instance by deeply copying a given {@code Text} instance. |
78 | * |
79 | * |
80 | * @param o |
81 | * The instance to copy. |
82 | * @throws NullPointerException |
83 | * if {@code o} is {@code null}. |
84 | */ |
85 | public Text(final Text o) { |
86 | // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 |
87 | super(); |
88 | if (o == null) { |
89 | throw new NullPointerException("Cannot create a copy of 'Text' from 'null'."); |
90 | } |
91 | // CBuiltinLeafInfo: java.lang.String |
92 | this.value = ((o.value == null)?null:o.getValue()); |
93 | // CBuiltinLeafInfo: java.lang.String |
94 | this.language = ((o.language == null)?null:o.getLanguage()); |
95 | // CBuiltinLeafInfo: java.lang.String |
96 | this.type = ((o.type == null)?null:o.getType()); |
97 | } |
98 | |
99 | /** |
100 | * Gets the value of the value property. |
101 | * |
102 | * @return |
103 | * possible object is |
104 | * {@link String } |
105 | * |
106 | */ |
107 | @Generated(value = "com.sun.tools.xjc.Driver", date = "2014-11-18T07:01:01+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") |
108 | public String getValue() { |
109 | return value; |
110 | } |
111 | |
112 | /** |
113 | * Sets the value of the value property. |
114 | * |
115 | * @param value |
116 | * allowed object is |
117 | * {@link String } |
118 | * |
119 | */ |
120 | @Generated(value = "com.sun.tools.xjc.Driver", date = "2014-11-18T07:01:01+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") |
121 | public void setValue(String value) { |
122 | this.value = value; |
123 | } |
124 | |
125 | /** |
126 | * The language key of this text. |
127 | * |
128 | * @return |
129 | * possible object is |
130 | * {@link String } |
131 | * |
132 | */ |
133 | @Generated(value = "com.sun.tools.xjc.Driver", date = "2014-11-18T07:01:01+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") |
134 | public String getLanguage() { |
135 | return language; |
136 | } |
137 | |
138 | /** |
139 | * Sets the value of the language property. |
140 | * |
141 | * @param value |
142 | * allowed object is |
143 | * {@link String } |
144 | * |
145 | */ |
146 | @Generated(value = "com.sun.tools.xjc.Driver", date = "2014-11-18T07:01:01+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") |
147 | public void setLanguage(String value) { |
148 | this.language = value; |
149 | } |
150 | |
151 | /** |
152 | * The Multipurpose Internet Mail Extension (MIME) type, as defined in RFC 2045 and 2046. |
153 | * |
154 | * @return |
155 | * possible object is |
156 | * {@link String } |
157 | * |
158 | */ |
159 | @Generated(value = "com.sun.tools.xjc.Driver", date = "2014-11-18T07:01:01+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") |
160 | public String getType() { |
161 | if (type == null) { |
162 | return "text/plain"; |
163 | } else { |
164 | return type; |
165 | } |
166 | } |
167 | |
168 | /** |
169 | * Sets the value of the type property. |
170 | * |
171 | * @param value |
172 | * allowed object is |
173 | * {@link String } |
174 | * |
175 | */ |
176 | @Generated(value = "com.sun.tools.xjc.Driver", date = "2014-11-18T07:01:01+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") |
177 | public void setType(String value) { |
178 | this.type = value; |
179 | } |
180 | |
181 | /** |
182 | * Creates and returns a deep copy of this object. |
183 | * |
184 | * |
185 | * @return |
186 | * A deep copy of this object. |
187 | */ |
188 | @Override |
189 | @Generated(value = "com.sun.tools.xjc.Driver", date = "2014-11-18T07:01:01+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") |
190 | public Text clone() { |
191 | try { |
192 | { |
193 | // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 |
194 | final Text clone = ((Text) super.clone()); |
195 | // CBuiltinLeafInfo: java.lang.String |
196 | clone.value = ((this.value == null)?null:this.getValue()); |
197 | // CBuiltinLeafInfo: java.lang.String |
198 | clone.language = ((this.language == null)?null:this.getLanguage()); |
199 | // CBuiltinLeafInfo: java.lang.String |
200 | clone.type = ((this.type == null)?null:this.getType()); |
201 | return clone; |
202 | } |
203 | } catch (CloneNotSupportedException e) { |
204 | // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ |
205 | throw new AssertionError(e); |
206 | } |
207 | } |
208 | |
209 | /** |
210 | * Gets the mime-type of the text. |
211 | * |
212 | * @return The mime-type of the text. |
213 | * |
214 | * @throws ModelObjectException if compiling the type to a {@code MimeType} fails. |
215 | * |
216 | * @see #getType() |
217 | * |
218 | * @since 1.4 |
219 | */ |
220 | public javax.activation.MimeType getMimeType() throws ModelObjectException |
221 | { |
222 | try |
223 | { |
224 | return new javax.activation.MimeType( this.getType() ); |
225 | } |
226 | catch ( final javax.activation.MimeTypeParseException e ) |
227 | { |
228 | throw new ModelObjectException( getMessage( "mimeTypeParseException", this.getType(), |
229 | getMessage( e ) ), e ); |
230 | |
231 | } |
232 | } |
233 | |
234 | /** |
235 | * Formats the text to a Javadoc comment. |
236 | * |
237 | * @param lineSeparator String to use for separating lines. |
238 | * @param indentation String to prepend any lines with. |
239 | * |
240 | * @return The Javadoc comment of the text or {@code null}. |
241 | * |
242 | * @throws NullPointerException if {@code lineSeparator} or {@code indentation} is {@code null}. |
243 | * @throws ModelObjectException if compiling the referenced type to a {@code MimeType} fails. |
244 | * |
245 | * @since 1.4 |
246 | */ |
247 | public String getJavadocComment( final String lineSeparator, final String indentation ) throws ModelObjectException |
248 | { |
249 | if ( lineSeparator == null ) |
250 | { |
251 | throw new NullPointerException( "lineSeparator" ); |
252 | } |
253 | if ( indentation == null ) |
254 | { |
255 | throw new NullPointerException( "indentation" ); |
256 | } |
257 | |
258 | java.io.BufferedReader reader = null; |
259 | |
260 | try |
261 | { |
262 | String javadocComment = null; |
263 | |
264 | if ( this.getValue() != null ) |
265 | { |
266 | reader = new java.io.BufferedReader( new java.io.StringReader( this.getValue() ) ); |
267 | final StringBuilder builder = new StringBuilder( this.getValue().length() ); |
268 | final boolean escapeHtml = !this.getMimeType().match( "text/html" ); |
269 | |
270 | String line; |
271 | while ( ( line = reader.readLine() ) != null ) |
272 | { |
273 | if ( escapeHtml ) |
274 | { |
275 | builder.append( lineSeparator ).append( indentation ).append( " * " ). |
276 | append( line.replace( "&", "&" ).replace( "<", "<" ).replace( ">", ">" ). |
277 | replace( "\"", """ ).replace( "*", "∗" ) ); |
278 | |
279 | } |
280 | else |
281 | { |
282 | builder.append( lineSeparator ).append( indentation ).append( " * " ).append( line ); |
283 | } |
284 | } |
285 | |
286 | if ( builder.length() > 0 ) |
287 | { |
288 | javadocComment = |
289 | builder.substring( lineSeparator.length() + indentation.length() + " * ".length() ); |
290 | |
291 | } |
292 | |
293 | reader.close(); |
294 | reader = null; |
295 | } |
296 | |
297 | return javadocComment; |
298 | } |
299 | catch ( final javax.activation.MimeTypeParseException e ) |
300 | { |
301 | throw new AssertionError( e ); |
302 | } |
303 | catch ( final java.io.IOException e ) |
304 | { |
305 | throw new AssertionError( e ); |
306 | } |
307 | finally |
308 | { |
309 | try |
310 | { |
311 | if ( reader != null ) |
312 | { |
313 | reader.close(); |
314 | } |
315 | } |
316 | catch ( final java.io.IOException e ) |
317 | { |
318 | throw new AssertionError( e ); |
319 | } |
320 | } |
321 | } |
322 | |
323 | private static String getMessage( final Throwable t ) |
324 | { |
325 | return t != null |
326 | ? t.getMessage() != null && t.getMessage().trim().length() > 0 |
327 | ? t.getMessage() |
328 | : getMessage( t.getCause() ) |
329 | : null; |
330 | |
331 | } |
332 | |
333 | private static String getMessage( final String key, final Object... arguments ) |
334 | { |
335 | return java.text.MessageFormat.format( java.util.ResourceBundle.getBundle( |
336 | Text.class.getName().replace( '.', '/' ), java.util.Locale.getDefault() ). |
337 | getString( key ), arguments ); |
338 | |
339 | } |
340 | |
341 | } |