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.io.ByteArrayInputStream; 012import java.io.ByteArrayOutputStream; 013import java.io.File; 014import java.io.IOException; 015import java.io.InvalidClassException; 016import java.io.NotSerializableException; 017import java.io.ObjectInputStream; 018import java.io.ObjectOutputStream; 019import java.io.OptionalDataException; 020import java.io.Serializable; 021import java.io.StreamCorruptedException; 022import java.lang.reflect.Array; 023import java.lang.reflect.InvocationTargetException; 024import java.math.BigDecimal; 025import java.math.BigInteger; 026import java.net.MalformedURLException; 027import java.net.URI; 028import java.net.URISyntaxException; 029import java.net.URL; 030import java.util.ArrayList; 031import java.util.Calendar; 032import java.util.Currency; 033import java.util.Date; 034import java.util.Iterator; 035import java.util.List; 036import java.util.Locale; 037import java.util.TimeZone; 038import java.util.UUID; 039import javax.activation.MimeType; 040import javax.activation.MimeTypeParseException; 041import javax.annotation.Generated; 042import javax.xml.bind.JAXBElement; 043import javax.xml.bind.annotation.XmlAccessType; 044import javax.xml.bind.annotation.XmlAccessorType; 045import javax.xml.bind.annotation.XmlAnyElement; 046import javax.xml.bind.annotation.XmlAttribute; 047import javax.xml.bind.annotation.XmlElement; 048import javax.xml.bind.annotation.XmlType; 049import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; 050import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; 051import javax.xml.datatype.Duration; 052import javax.xml.datatype.XMLGregorianCalendar; 053import javax.xml.namespace.QName; 054import org.w3c.dom.Element; 055 056 057/** 058 * 059 * Model of a message. 060 * 061 * The 'Message' type defines attributes 'name', 'final' and 'override'. Attribute 'name' holds a name uniquely identifying 062 * the message in a set of messages. Attribute 'final' flags a message the final node in an inheritance hierarchy. 063 * Attribute 'override' flags a message as intended to override a super-message. A message defines a localizable template 064 * and format arguments. 065 * 066 * 067 * <p>Java class for Message complex type. 068 * 069 * <p>The following schema fragment specifies the expected content contained within this class. 070 * 071 * <pre> 072 * <complexType name="Message"> 073 * <complexContent> 074 * <extension base="{http://jomc.org/model}ModelObject"> 075 * <sequence> 076 * <element ref="{http://jomc.org/model}template"/> 077 * <element ref="{http://jomc.org/model}arguments" minOccurs="0"/> 078 * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/> 079 * </sequence> 080 * <attribute name="name" use="required" type="{http://jomc.org/model}Identifier" /> 081 * <attribute name="final" type="{http://jomc.org/model}Flag" default="false" /> 082 * <attribute name="override" type="{http://jomc.org/model}Flag" default="false" /> 083 * </extension> 084 * </complexContent> 085 * </complexType> 086 * </pre> 087 * 088 * 089 */ 090@XmlAccessorType(XmlAccessType.FIELD) 091@XmlType(name = "Message", namespace = "http://jomc.org/model", propOrder = { 092 "template", 093 "arguments", 094 "any" 095}) 096@Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 097public class Message 098 extends ModelObject 099 implements Cloneable, Inheritable 100{ 101 102 @XmlElement(namespace = "http://jomc.org/model", required = true) 103 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 104 protected Texts template; 105 @XmlElement(namespace = "http://jomc.org/model") 106 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 107 protected Arguments arguments; 108 @XmlAnyElement(lax = true) 109 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 110 protected List<Object> any; 111 @XmlAttribute(name = "name", required = true) 112 @XmlJavaTypeAdapter(CollapsedStringAdapter.class) 113 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 114 protected String name; 115 @XmlAttribute(name = "final") 116 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 117 protected Boolean _final; 118 @XmlAttribute(name = "override") 119 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 120 protected Boolean override; 121 122 /** 123 * Creates a new {@code Message} instance. 124 * 125 */ 126 public Message() { 127 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 128 super(); 129 } 130 131 /** 132 * Creates a new {@code Message} instance by deeply copying a given {@code Message} instance. 133 * 134 * 135 * @param o 136 * The instance to copy. 137 * @throws NullPointerException 138 * if {@code o} is {@code null}. 139 */ 140 public Message(final Message o) { 141 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 142 super(o); 143 if (o == null) { 144 throw new NullPointerException("Cannot create a copy of 'Message' from 'null'."); 145 } 146 // CClassInfo: org.jomc.model.Texts 147 this.template = ((o.template == null)?null:((o.getTemplate() == null)?null:o.getTemplate().clone())); 148 // CClassInfo: org.jomc.model.Arguments 149 this.arguments = ((o.arguments == null)?null:((o.getArguments() == null)?null:o.getArguments().clone())); 150 // 'Any' collection. 151 if (o.any!= null) { 152 copyAny(o.getAny(), this.getAny()); 153 } 154 // CBuiltinLeafInfo: java.lang.String 155 this.name = ((o.name == null)?null:o.getName()); 156 // CBuiltinLeafInfo: java.lang.Boolean 157 this._final = ((o._final == null)?null:o.isFinal()); 158 // CBuiltinLeafInfo: java.lang.Boolean 159 this.override = ((o.override == null)?null:o.isOverride()); 160 } 161 162 /** 163 * The localizable template of this message. 164 * 165 * @return 166 * possible object is 167 * {@link Texts } 168 * 169 */ 170 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 171 public Texts getTemplate() { 172 return template; 173 } 174 175 /** 176 * Sets the value of the template property. 177 * 178 * @param value 179 * allowed object is 180 * {@link Texts } 181 * 182 */ 183 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 184 public void setTemplate(Texts value) { 185 this.template = value; 186 } 187 188 /** 189 * The format arguments of this message or {@code null}. 190 * 191 * @return 192 * possible object is 193 * {@link Arguments } 194 * 195 */ 196 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 197 public Arguments getArguments() { 198 return arguments; 199 } 200 201 /** 202 * Sets the value of the arguments property. 203 * 204 * @param value 205 * allowed object is 206 * {@link Arguments } 207 * 208 */ 209 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 210 public void setArguments(Arguments value) { 211 this.arguments = value; 212 } 213 214 /** 215 * Gets the value of the any property. 216 * 217 * <p> 218 * This accessor method returns a reference to the live list, 219 * not a snapshot. Therefore any modification you make to the 220 * returned list will be present inside the JAXB object. 221 * This is why there is not a <CODE>set</CODE> method for the any property. 222 * 223 * <p> 224 * For example, to add a new item, do as follows: 225 * <pre> 226 * getAny().add(newItem); 227 * </pre> 228 * 229 * 230 * <p> 231 * Objects of the following type(s) are allowed in the list 232 * {@link Object } 233 * {@link Element } 234 * 235 * 236 */ 237 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 238 public List<Object> getAny() { 239 if (any == null) { 240 any = new ArrayList<Object>(); 241 } 242 return this.any; 243 } 244 245 /** 246 * The name of this message. 247 * 248 * @return 249 * possible object is 250 * {@link String } 251 * 252 */ 253 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 254 public String getName() { 255 return name; 256 } 257 258 /** 259 * Sets the value of the name property. 260 * 261 * @param value 262 * allowed object is 263 * {@link String } 264 * 265 */ 266 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 267 public void setName(String value) { 268 this.name = value; 269 } 270 271 /** 272 * {@code true}, if this message is the final node in an inheritance hierarchy. 273 * 274 * @return 275 * possible object is 276 * {@link Boolean } 277 * 278 */ 279 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 280 public boolean isFinal() { 281 if (_final == null) { 282 return false; 283 } else { 284 return _final; 285 } 286 } 287 288 /** 289 * Sets the value of the final property. 290 * 291 * @param value 292 * allowed object is 293 * {@link Boolean } 294 * 295 */ 296 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 297 public void setFinal(Boolean value) { 298 this._final = value; 299 } 300 301 /** 302 * {@code true}, if this message is intended to override a super message. 303 * 304 * @return 305 * possible object is 306 * {@link Boolean } 307 * 308 */ 309 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 310 public boolean isOverride() { 311 if (override == null) { 312 return false; 313 } else { 314 return override; 315 } 316 } 317 318 /** 319 * Sets the value of the override property. 320 * 321 * @param value 322 * allowed object is 323 * {@link Boolean } 324 * 325 */ 326 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 327 public void setOverride(Boolean value) { 328 this.override = value; 329 } 330 331 /** 332 * Copies all values of property {@code Any} deeply. 333 * 334 * @param source 335 * The source to copy from. 336 * @param target 337 * The target to copy {@code source} to. 338 * @throws NullPointerException 339 * if {@code target} is {@code null}. 340 */ 341 @SuppressWarnings("unchecked") 342 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 343 private static void copyAny(final List<Object> source, final List<Object> target) { 344 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 345 if ((source!= null)&&(!source.isEmpty())) { 346 for (final Iterator<?> it = source.iterator(); it.hasNext(); ) { 347 final Object next = it.next(); 348 if (next instanceof Element) { 349 // CWildcardTypeInfo: org.w3c.dom.Element 350 target.add(((Element)((Element) next).cloneNode(true))); 351 continue; 352 } 353 if (next instanceof Object) { 354 // CBuiltinLeafInfo: java.lang.Object 355 target.add(copyOf(((Object) next))); 356 continue; 357 } 358 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ 359 throw new AssertionError((("Unexpected instance '"+ next)+"' for property 'Any' of class 'org.jomc.model.Message'.")); 360 } 361 } 362 } 363 364 /** 365 * Creates and returns a deep copy of a given object. 366 * 367 * @param o 368 * The instance to copy or {@code null}. 369 * @return 370 * A deep copy of {@code o} or {@code null} if {@code o} is {@code null}. 371 */ 372 @SuppressWarnings("unchecked") 373 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 374 private static Object copyOf(final Object o) { 375 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 376 try { 377 if (o!= null) { 378 if (o.getClass().isPrimitive()) { 379 return o; 380 } 381 if (o.getClass().isArray()) { 382 return copyOfArray(o); 383 } 384 // Immutable types. 385 if (o instanceof Boolean) { 386 return o; 387 } 388 if (o instanceof Byte) { 389 return o; 390 } 391 if (o instanceof Character) { 392 return o; 393 } 394 if (o instanceof Double) { 395 return o; 396 } 397 if (o instanceof Enum) { 398 return o; 399 } 400 if (o instanceof Float) { 401 return o; 402 } 403 if (o instanceof Integer) { 404 return o; 405 } 406 if (o instanceof Long) { 407 return o; 408 } 409 if (o instanceof Short) { 410 return o; 411 } 412 if (o instanceof String) { 413 return o; 414 } 415 if (o instanceof BigDecimal) { 416 return o; 417 } 418 if (o instanceof BigInteger) { 419 return o; 420 } 421 if (o instanceof UUID) { 422 return o; 423 } 424 if (o instanceof QName) { 425 return o; 426 } 427 if (o instanceof Duration) { 428 return o; 429 } 430 if (o instanceof Currency) { 431 return o; 432 } 433 // String based types. 434 if (o instanceof File) { 435 return new File(o.toString()); 436 } 437 if (o instanceof URI) { 438 return new URI(o.toString()); 439 } 440 if (o instanceof URL) { 441 return new URL(o.toString()); 442 } 443 if (o instanceof MimeType) { 444 return new MimeType(o.toString()); 445 } 446 // Cloneable types. 447 if (o instanceof XMLGregorianCalendar) { 448 return ((XMLGregorianCalendar) o).clone(); 449 } 450 if (o instanceof Date) { 451 return ((Date) o).clone(); 452 } 453 if (o instanceof Calendar) { 454 return ((Calendar) o).clone(); 455 } 456 if (o instanceof TimeZone) { 457 return ((TimeZone) o).clone(); 458 } 459 if (o instanceof Locale) { 460 return ((Locale) o).clone(); 461 } 462 if (o instanceof Element) { 463 return ((Element)((Element) o).cloneNode(true)); 464 } 465 if (o instanceof JAXBElement) { 466 return copyOf(((JAXBElement) o)); 467 } 468 try { 469 return o.getClass().getMethod("clone", ((Class[]) null)).invoke(o, ((Object[]) null)); 470 } catch (NoSuchMethodException e) { 471 if (o instanceof Serializable) { 472 return copyOf(((Serializable) o)); 473 } 474 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ 475 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 476 } catch (IllegalAccessException e) { 477 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ 478 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 479 } catch (InvocationTargetException e) { 480 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ 481 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 482 } catch (SecurityException e) { 483 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ 484 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 485 } catch (IllegalArgumentException e) { 486 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ 487 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 488 } catch (ExceptionInInitializerError e) { 489 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ 490 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 491 } 492 } 493 return null; 494 } catch (MalformedURLException e) { 495 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 496 } catch (MimeTypeParseException e) { 497 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 498 } catch (URISyntaxException e) { 499 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 500 } 501 } 502 503 /** 504 * Creates and returns a deep copy of a given array. 505 * 506 * @param array 507 * The array to copy or {@code null}. 508 * @return 509 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 510 */ 511 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 512 private static Object copyOfArray(final Object array) { 513 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 514 if (array!= null) { 515 if (array.getClass() == boolean[].class) { 516 return copyOf(((boolean[]) array)); 517 } 518 if (array.getClass() == byte[].class) { 519 return copyOf(((byte[]) array)); 520 } 521 if (array.getClass() == char[].class) { 522 return copyOf(((char[]) array)); 523 } 524 if (array.getClass() == double[].class) { 525 return copyOf(((double[]) array)); 526 } 527 if (array.getClass() == float[].class) { 528 return copyOf(((float[]) array)); 529 } 530 if (array.getClass() == int[].class) { 531 return copyOf(((int[]) array)); 532 } 533 if (array.getClass() == long[].class) { 534 return copyOf(((long[]) array)); 535 } 536 if (array.getClass() == short[].class) { 537 return copyOf(((short[]) array)); 538 } 539 final int len = Array.getLength(array); 540 final Object copy = Array.newInstance(array.getClass().getComponentType(), len); 541 for (int i = (len- 1); (i >= 0); i--) { 542 Array.set(copy, i, copyOf(Array.get(array, i))); 543 } 544 return copy; 545 } 546 return null; 547 } 548 549 /** 550 * Creates and returns a deep copy of a given array. 551 * 552 * @param array 553 * The array to copy or {@code null}. 554 * @return 555 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 556 */ 557 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 558 private static boolean[] copyOf(final boolean[] array) { 559 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 560 if (array!= null) { 561 final boolean[] copy = ((boolean[]) Array.newInstance(array.getClass().getComponentType(), array.length)); 562 System.arraycopy(array, 0, copy, 0, array.length); 563 return copy; 564 } 565 return null; 566 } 567 568 /** 569 * Creates and returns a deep copy of a given array. 570 * 571 * @param array 572 * The array to copy or {@code null}. 573 * @return 574 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 575 */ 576 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 577 private static byte[] copyOf(final byte[] array) { 578 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 579 if (array!= null) { 580 final byte[] copy = ((byte[]) Array.newInstance(array.getClass().getComponentType(), array.length)); 581 System.arraycopy(array, 0, copy, 0, array.length); 582 return copy; 583 } 584 return null; 585 } 586 587 /** 588 * Creates and returns a deep copy of a given array. 589 * 590 * @param array 591 * The array to copy or {@code null}. 592 * @return 593 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 594 */ 595 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 596 private static char[] copyOf(final char[] array) { 597 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 598 if (array!= null) { 599 final char[] copy = ((char[]) Array.newInstance(array.getClass().getComponentType(), array.length)); 600 System.arraycopy(array, 0, copy, 0, array.length); 601 return copy; 602 } 603 return null; 604 } 605 606 /** 607 * Creates and returns a deep copy of a given array. 608 * 609 * @param array 610 * The array to copy or {@code null}. 611 * @return 612 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 613 */ 614 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 615 private static double[] copyOf(final double[] array) { 616 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 617 if (array!= null) { 618 final double[] copy = ((double[]) Array.newInstance(array.getClass().getComponentType(), array.length)); 619 System.arraycopy(array, 0, copy, 0, array.length); 620 return copy; 621 } 622 return null; 623 } 624 625 /** 626 * Creates and returns a deep copy of a given array. 627 * 628 * @param array 629 * The array to copy or {@code null}. 630 * @return 631 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 632 */ 633 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 634 private static float[] copyOf(final float[] array) { 635 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 636 if (array!= null) { 637 final float[] copy = ((float[]) Array.newInstance(array.getClass().getComponentType(), array.length)); 638 System.arraycopy(array, 0, copy, 0, array.length); 639 return copy; 640 } 641 return null; 642 } 643 644 /** 645 * Creates and returns a deep copy of a given array. 646 * 647 * @param array 648 * The array to copy or {@code null}. 649 * @return 650 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 651 */ 652 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 653 private static int[] copyOf(final int[] array) { 654 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 655 if (array!= null) { 656 final int[] copy = ((int[]) Array.newInstance(array.getClass().getComponentType(), array.length)); 657 System.arraycopy(array, 0, copy, 0, array.length); 658 return copy; 659 } 660 return null; 661 } 662 663 /** 664 * Creates and returns a deep copy of a given array. 665 * 666 * @param array 667 * The array to copy or {@code null}. 668 * @return 669 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 670 */ 671 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 672 private static long[] copyOf(final long[] array) { 673 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 674 if (array!= null) { 675 final long[] copy = ((long[]) Array.newInstance(array.getClass().getComponentType(), array.length)); 676 System.arraycopy(array, 0, copy, 0, array.length); 677 return copy; 678 } 679 return null; 680 } 681 682 /** 683 * Creates and returns a deep copy of a given array. 684 * 685 * @param array 686 * The array to copy or {@code null}. 687 * @return 688 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 689 */ 690 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 691 private static short[] copyOf(final short[] array) { 692 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 693 if (array!= null) { 694 final short[] copy = ((short[]) Array.newInstance(array.getClass().getComponentType(), array.length)); 695 System.arraycopy(array, 0, copy, 0, array.length); 696 return copy; 697 } 698 return null; 699 } 700 701 /** 702 * Creates and returns a deep copy of a given {@code JAXBElement} instance. 703 * 704 * @param element 705 * The instance to copy or {@code null}. 706 * @return 707 * A deep copy of {@code element} or {@code null} if {@code element} is {@code null}. 708 */ 709 @SuppressWarnings("unchecked") 710 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 711 private static JAXBElement copyOf(final JAXBElement element) { 712 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 713 if (element!= null) { 714 final JAXBElement copy = new JAXBElement(element.getName(), element.getDeclaredType(), element.getScope(), element.getValue()); 715 copy.setNil(element.isNil()); 716 copy.setValue(copyOf(copy.getValue())); 717 return copy; 718 } 719 return null; 720 } 721 722 /** 723 * Creates and returns a deep copy of a given {@code Serializable}. 724 * 725 * @param serializable 726 * The instance to copy or {@code null}. 727 * @return 728 * A deep copy of {@code serializable} or {@code null} if {@code serializable} is {@code null}. 729 */ 730 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 731 private static Serializable copyOf(final Serializable serializable) { 732 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 733 if (serializable!= null) { 734 try { 735 final ByteArrayOutputStream byteArrayOutput = new ByteArrayOutputStream(); 736 final ObjectOutputStream out = new ObjectOutputStream(byteArrayOutput); 737 out.writeObject(serializable); 738 out.close(); 739 final ByteArrayInputStream byteArrayInput = new ByteArrayInputStream(byteArrayOutput.toByteArray()); 740 final ObjectInputStream in = new ObjectInputStream(byteArrayInput); 741 final Serializable copy = ((Serializable) in.readObject()); 742 in.close(); 743 return copy; 744 } catch (SecurityException e) { 745 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e)); 746 } catch (ClassNotFoundException e) { 747 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e)); 748 } catch (InvalidClassException e) { 749 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e)); 750 } catch (NotSerializableException e) { 751 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e)); 752 } catch (StreamCorruptedException e) { 753 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e)); 754 } catch (OptionalDataException e) { 755 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e)); 756 } catch (IOException e) { 757 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e)); 758 } 759 } 760 return null; 761 } 762 763 /** 764 * Creates and returns a deep copy of this object. 765 * 766 * 767 * @return 768 * A deep copy of this object. 769 */ 770 @Override 771 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 772 public Message clone() { 773 { 774 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 775 final Message clone = ((Message) super.clone()); 776 // CClassInfo: org.jomc.model.Texts 777 clone.template = ((this.template == null)?null:((this.getTemplate() == null)?null:this.getTemplate().clone())); 778 // CClassInfo: org.jomc.model.Arguments 779 clone.arguments = ((this.arguments == null)?null:((this.getArguments() == null)?null:this.getArguments().clone())); 780 // 'Any' collection. 781 if (this.any!= null) { 782 clone.any = null; 783 copyAny(this.getAny(), clone.getAny()); 784 } 785 // CBuiltinLeafInfo: java.lang.String 786 clone.name = ((this.name == null)?null:this.getName()); 787 // CBuiltinLeafInfo: java.lang.Boolean 788 clone._final = ((this._final == null)?null:this.isFinal()); 789 // CBuiltinLeafInfo: java.lang.Boolean 790 clone.override = ((this.override == null)?null:this.isOverride()); 791 return clone; 792 } 793 } 794 795 /** 796 * System's line separator. 797 * @since 1.2 798 */ 799 @javax.xml.bind.annotation.XmlTransient 800 private static final String LINE_SEPARATOR = System.getProperty( "line.separator", "\n" ); 801 802 /** 803 * Gets a single {@code JAXBElement} matching a namespace URI and local part from the {@code any} property of the 804 * instance. 805 * 806 * @param namespaceURI The namespace URI of the {@code JAXBElement} to return. 807 * @param localPart The local part of the {@code JAXBElement} to return. 808 * 809 * @return The {@code JAXBElement} matching {@code namespaceURI} and {@code localPart} from the {@code any} property 810 * of the instance or {@code null}, if no such element is found. 811 * 812 * @throws NullPointerException if {@code namespaceURI} or {@code localPart} is {@code null}. 813 * @throws IllegalStateException if the {@code any} property contains more than one matching element. 814 * 815 * @see #getAnyElement(java.util.List, java.lang.String, java.lang.String) 816 * 817 * @deprecated As of JOMC 1.1, please use method {@link #getAnyElement(java.lang.String, java.lang.String, java.lang.Class)}. 818 * This method will be removed in version 2.0. 819 */ 820 @Deprecated 821 public javax.xml.bind.JAXBElement getAnyElement( final String namespaceURI, final String localPart ) 822 { 823 return this.getAnyElement( this.getAny(), namespaceURI, localPart ); 824 } 825 826 /** 827 * Gets a list containing all {@code JAXBElement}s matching a namespace URI and local part from the {@code any} 828 * property of the instance. 829 * 830 * @param namespaceURI The namespace URI of the {@code JAXBElement}s to return. 831 * @param localPart The local part of the {@code JAXBElement}s to return. 832 * 833 * @return An unmodifiable list of all {@code JAXBElement}s matching {@code namespaceURI} and {@code localPart} from 834 * the {@code any} property of the instance - an empty list if no such elements are found. 835 * 836 * @throws NullPointerException if {@code namespaceURI} or {@code localPart} is {@code null}. 837 * 838 * @see #getAnyElements(java.util.List, java.lang.String, java.lang.String) 839 * 840 * @deprecated As of JOMC 1.1, please use method {@link #getAnyElements(java.lang.String, java.lang.String, java.lang.Class)}. 841 * This method will be removed in version 2.0. 842 */ 843 @Deprecated 844 public java.util.List<javax.xml.bind.JAXBElement> getAnyElements( final String namespaceURI, 845 final String localPart ) 846 { 847 return this.getAnyElements( this.getAny(), namespaceURI, localPart ); 848 } 849 850 /** 851 * Gets a single {@code JAXBElement} matching a namespace URI and local part from the {@code any} property of the 852 * instance. 853 * 854 * @param namespaceURI The namespace URI of the {@code JAXBElement} to return. 855 * @param localPart The local part of the {@code JAXBElement} to return. 856 * @param type The class of the type the element is bound to. 857 * @param <T> The type the element is bound to. 858 * 859 * @return The {@code JAXBElement} matching {@code namespaceURI} and {@code localPart} from the {@code any} property 860 * of the instance or {@code null}, if no such element is found. 861 * 862 * @throws NullPointerException if {@code namespaceURI}, {@code localPart} or {@code type} is {@code null}. 863 * @throws IllegalStateException if the {@code any} property contains more than one matching element. 864 * 865 * @see #getAnyElement(java.util.List, java.lang.String, java.lang.String, java.lang.Class) 866 * 867 * @since 1.1 868 */ 869 public <T> javax.xml.bind.JAXBElement<T> getAnyElement( final String namespaceURI, final String localPart, 870 final Class<T> type ) 871 { 872 return this.getAnyElement( this.getAny(), namespaceURI, localPart, type ); 873 } 874 875 /** 876 * Gets a list containing all {@code JAXBElement}s matching a namespace URI and local part from the {@code any} 877 * property of the instance. 878 * 879 * @param namespaceURI The namespace URI of the {@code JAXBElement}s to return. 880 * @param localPart The local part of the {@code JAXBElement}s to return. 881 * @param type The class of the type the elements are bound to. 882 * @param <T> The type the elements are bound to. 883 * 884 * @return An unmodifiable list of all {@code JAXBElement}s matching {@code namespaceURI} and {@code localPart} from 885 * the {@code any} property of the instance - an empty list if no such elements are found. 886 * 887 * @throws NullPointerException if {@code namespaceURI}, {@code localPart} or {@code type} is {@code null}. 888 * 889 * @see #getAnyElements(java.util.List, java.lang.String, java.lang.String, java.lang.Class) 890 * 891 * @since 1.1 892 */ 893 public <T> java.util.List<javax.xml.bind.JAXBElement<T>> getAnyElements( final String namespaceURI, 894 final String localPart, 895 final Class<T> type ) 896 { 897 return this.getAnyElements( this.getAny(), namespaceURI, localPart, type ); 898 } 899 900 /** 901 * Gets a single object matching a given class from the {@code any} property of the instance. 902 * 903 * @param clazz The class to return an instance of. 904 * @param <T> The type of the object to return. 905 * 906 * @return The instance of {@code clazz} from the {@code any} property of the instance or {@code null}, if no such 907 * instance is found. 908 * 909 * @throws NullPointerException if {@code clazz} is {@code null}. 910 * @throws IllegalStateException if the {@code any} property contains more than one matching object. 911 * 912 * @see #getAnyObject(java.util.List, java.lang.Class) 913 */ 914 public <T> T getAnyObject( final Class<T> clazz ) 915 { 916 return this.getAnyObject( this.getAny(), clazz ); 917 } 918 919 /** 920 * Gets a list containing all objects matching a given class from the {@code any} property of the instance. 921 * 922 * @param clazz The class to return all instances of. 923 * @param <T> The type of the objects to return. 924 * 925 * @return An unmodifiable list of all instances of {@code clazz} from the {@code any} property of the instance - 926 * an empty list if no such objects are found. 927 * 928 * @throws NullPointerException if {@code clazz} is {@code null}. 929 * 930 * @see #getAnyObjects(java.util.List, java.lang.Class) 931 */ 932 public <T> java.util.List<T> getAnyObjects( final Class<T> clazz ) 933 { 934 return this.getAnyObjects( this.getAny(), clazz ); 935 } 936 937 /** 938 * Gets a Java {@code MessageFormat} instance for a given locale. 939 * 940 * @param locale The locale to get a Java {@code MessageFormat} instance for. 941 * 942 * @return A Java {@code MessageFormat} instance for {@code locale}. 943 * 944 * @throws NullPointerException if {@code locale} is {@code null}. 945 * @throws ModelObjectException if compiling the template of the message for {@code locale} to a 946 * {@code MessageFormat} fails. 947 * 948 * @see #getTemplate() 949 * 950 * @since 1.2 951 */ 952 public java.text.MessageFormat getJavaMessage( final Locale locale ) throws ModelObjectException 953 { 954 if ( locale == null ) 955 { 956 throw new NullPointerException( "locale" ); 957 } 958 959 final Text text = this.getTemplate().getText( locale.getLanguage().toLowerCase( Locale.ENGLISH ) ); 960 final StringBuilder builder = new StringBuilder( text.getValue().length() ); 961 String pattern = null; 962 java.io.BufferedReader reader = null; 963 964 try 965 { 966 reader = new java.io.BufferedReader( new java.io.StringReader( text.getValue() ) ); 967 968 for ( String line = reader.readLine(); line != null; line = reader.readLine() ) 969 { 970 builder.append( LINE_SEPARATOR ).append( line ); 971 } 972 973 reader.close(); 974 reader = null; 975 976 pattern = builder.length() > 0 ? builder.substring( LINE_SEPARATOR.length() ) : builder.toString(); 977 return new java.text.MessageFormat( pattern, locale ); 978 } 979 catch ( final IllegalArgumentException e ) 980 { 981 throw new ModelObjectException( getMessage( "javaMessageParseException", pattern, getMessage( e ) ), e ); 982 } 983 catch ( final java.io.IOException e ) 984 { 985 throw new AssertionError( e ); 986 } 987 finally 988 { 989 try 990 { 991 if ( reader != null ) 992 { 993 reader.close(); 994 } 995 } 996 catch ( final java.io.IOException e ) 997 { 998 throw new AssertionError( e ); 999 } 1000 } 1001 } 1002 1003 /** 1004 * Gets the Java getter method name of the message. 1005 * 1006 * @return The Java getter method name of the message. 1007 * 1008 * @throws ModelObjectException if compiling the name of the message to a {@code JavaIdentifier} fails. 1009 * 1010 * @since 1.4 1011 * 1012 * @see #getName() 1013 */ 1014 public JavaIdentifier getJavaGetterMethodName() throws ModelObjectException 1015 { 1016 try 1017 { 1018 return JavaIdentifier.parse( "get" + JavaIdentifier.normalize( 1019 this.getName() != null ? this.getName() : "", JavaIdentifier.NormalizationMode.CAMEL_CASE ) ); 1020 1021 } 1022 catch ( final java.text.ParseException e ) 1023 { 1024 throw new ModelObjectException( getMessage( "javaIdentifierParseException", this.getName(), 1025 getMessage( e ) ), e ); 1026 1027 } 1028 } 1029 1030 /** 1031 * Gets the Java setter method name of the message. 1032 * 1033 * @return The Java setter method name of the message. 1034 * 1035 * @throws ModelObjectException if compiling the name of the message to a {@code JavaIdentifier} fails. 1036 * 1037 * @since 1.4 1038 * 1039 * @see #getName() 1040 */ 1041 public JavaIdentifier getJavaSetterMethodName() throws ModelObjectException 1042 { 1043 try 1044 { 1045 return JavaIdentifier.parse( "set" + JavaIdentifier.normalize( 1046 this.getName() != null ? this.getName() : "", JavaIdentifier.NormalizationMode.CAMEL_CASE ) ); 1047 1048 } 1049 catch ( final java.text.ParseException e ) 1050 { 1051 throw new ModelObjectException( getMessage( "javaIdentifierParseException", this.getName(), 1052 getMessage( e ) ), e ); 1053 1054 } 1055 } 1056 1057 /** 1058 * Gets the Java variable name of the message. 1059 * 1060 * @return The Java variable name of the message. 1061 * 1062 * @throws ModelObjectException if compiling the name of the message to a {@code JavaIdentifier} fails. 1063 * 1064 * @since 1.4 1065 * 1066 * @see #getName() 1067 */ 1068 public JavaIdentifier getJavaVariableName() throws ModelObjectException 1069 { 1070 try 1071 { 1072 return JavaIdentifier.normalize( this.getName() != null ? this.getName() : "", 1073 JavaIdentifier.NormalizationMode.VARIABLE_NAME_CONVENTION ); 1074 1075 } 1076 catch ( final java.text.ParseException e ) 1077 { 1078 throw new ModelObjectException( getMessage( "javaIdentifierParseException", this.getName(), 1079 getMessage( e ) ), e ); 1080 1081 } 1082 } 1083 1084 /** 1085 * Gets the Java constant name of the message. 1086 * 1087 * @return The Java constant name of the message. 1088 * 1089 * @throws ModelObjectException if compiling the name of the message to a {@code JavaIdentifier} fails. 1090 * 1091 * @since 1.4 1092 * 1093 * @see #getName() 1094 */ 1095 public JavaIdentifier getJavaConstantName() throws ModelObjectException 1096 { 1097 try 1098 { 1099 return JavaIdentifier.normalize( this.getName() != null ? this.getName() : "", 1100 JavaIdentifier.NormalizationMode.CONSTANT_NAME_CONVENTION ); 1101 1102 } 1103 catch ( final java.text.ParseException e ) 1104 { 1105 throw new ModelObjectException( getMessage( "javaIdentifierParseException", this.getName(), 1106 getMessage( e ) ), e ); 1107 1108 } 1109 } 1110 1111 private static String getMessage( final Throwable t ) 1112 { 1113 return t != null 1114 ? t.getMessage() != null && t.getMessage().trim().length() > 0 1115 ? t.getMessage() 1116 : getMessage( t.getCause() ) 1117 : null; 1118 1119 } 1120 1121 private static String getMessage( final String key, final Object... arguments ) 1122 { 1123 return java.text.MessageFormat.format( java.util.ResourceBundle.getBundle( 1124 Message.class.getName().replace( '.', '/' ), java.util.Locale.getDefault() ). 1125 getString( key ), arguments ); 1126 1127 } 1128 1129}