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 javax.annotation.Generated; 012import javax.xml.bind.annotation.XmlAccessType; 013import javax.xml.bind.annotation.XmlAccessorType; 014import javax.xml.bind.annotation.XmlAttribute; 015import javax.xml.bind.annotation.XmlType; 016import javax.xml.bind.annotation.XmlValue; 017import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; 018import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; 019 020 021/** 022 * 023 * Model of text. 024 * 025 * The 'Text' type defines attributes 'language', 'type' and 'value'. Attribute 'language' holds the language key 026 * identifying the text in a set of texts. Attribute 'type' specifies a Multipurpose Internet Mail Extension (MIME) type, 027 * as defined in RFC 2045 and 2046. Attribute 'value' holds the text of the type corresponding to the language. 028 * 029 * 030 * <p>Java class for Text complex type. 031 * 032 * <p>The following schema fragment specifies the expected content contained within this class. 033 * 034 * <pre> 035 * <complexType name="Text"> 036 * <simpleContent> 037 * <extension base="<http://jomc.org/model>String"> 038 * <attribute name="language" use="required" type="{http://jomc.org/model}Language" /> 039 * <attribute name="type" type="{http://jomc.org/model}MimeType" default="text/plain" /> 040 * </extension> 041 * </simpleContent> 042 * </complexType> 043 * </pre> 044 * 045 * 046 */ 047@XmlAccessorType(XmlAccessType.FIELD) 048@XmlType(name = "Text", namespace = "http://jomc.org/model", propOrder = { 049 "value" 050}) 051@Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 052public class Text implements Cloneable 053{ 054 055 @XmlValue 056 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 057 protected String value; 058 @XmlAttribute(name = "language", required = true) 059 @XmlJavaTypeAdapter(CollapsedStringAdapter.class) 060 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 061 protected String language; 062 @XmlAttribute(name = "type") 063 @XmlJavaTypeAdapter(CollapsedStringAdapter.class) 064 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 065 protected String type; 066 067 /** 068 * Creates a new {@code Text} instance. 069 * 070 */ 071 public Text() { 072 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 073 super(); 074 } 075 076 /** 077 * Creates a new {@code Text} instance by deeply copying a given {@code Text} instance. 078 * 079 * 080 * @param o 081 * The instance to copy. 082 * @throws NullPointerException 083 * if {@code o} is {@code null}. 084 */ 085 public Text(final Text o) { 086 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 087 super(); 088 if (o == null) { 089 throw new NullPointerException("Cannot create a copy of 'Text' from 'null'."); 090 } 091 // CBuiltinLeafInfo: java.lang.String 092 this.value = ((o.value == null)?null:o.getValue()); 093 // CBuiltinLeafInfo: java.lang.String 094 this.language = ((o.language == null)?null:o.getLanguage()); 095 // CBuiltinLeafInfo: java.lang.String 096 this.type = ((o.type == null)?null:o.getType()); 097 } 098 099 /** 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 = "2016-11-01T03:16:37+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 = "2016-11-01T03:16:37+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 = "2016-11-01T03:16:37+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 = "2016-11-01T03:16:37+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 = "2016-11-01T03:16:37+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 = "2016-11-01T03:16:37+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 = "2016-11-01T03:16:37+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 for ( String line = reader.readLine(); line != null; line = reader.readLine() ) 271 { 272 if ( escapeHtml ) 273 { 274 builder.append( lineSeparator ).append( indentation ).append( " * " ). 275 append( line.replace( "&", "&" ).replace( "<", "<" ).replace( ">", ">" ). 276 replace( "\"", """ ).replace( "*", "∗" ) ); 277 278 } 279 else 280 { 281 builder.append( lineSeparator ).append( indentation ).append( " * " ).append( line ); 282 } 283 } 284 285 if ( builder.length() > 0 ) 286 { 287 javadocComment = 288 builder.substring( lineSeparator.length() + indentation.length() + " * ".length() ); 289 290 } 291 292 reader.close(); 293 reader = null; 294 } 295 296 return javadocComment; 297 } 298 catch ( final javax.activation.MimeTypeParseException e ) 299 { 300 throw new AssertionError( e ); 301 } 302 catch ( final java.io.IOException e ) 303 { 304 throw new AssertionError( e ); 305 } 306 finally 307 { 308 try 309 { 310 if ( reader != null ) 311 { 312 reader.close(); 313 } 314 } 315 catch ( final java.io.IOException e ) 316 { 317 throw new AssertionError( e ); 318 } 319 } 320 } 321 322 private static String getMessage( final Throwable t ) 323 { 324 return t != null 325 ? t.getMessage() != null && t.getMessage().trim().length() > 0 326 ? t.getMessage() 327 : getMessage( t.getCause() ) 328 : null; 329 330 } 331 332 private static String getMessage( final String key, final Object... arguments ) 333 { 334 return java.text.MessageFormat.format( java.util.ResourceBundle.getBundle( 335 Text.class.getName().replace( '.', '/' ), java.util.Locale.getDefault() ). 336 getString( key ), arguments ); 337 338 } 339 340}