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.XmlElement; 016import javax.xml.bind.annotation.XmlSeeAlso; 017import javax.xml.bind.annotation.XmlType; 018import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; 019import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; 020import javax.xml.datatype.XMLGregorianCalendar; 021 022 023/** 024 * Base model object. 025 * 026 * <p>Java class for ModelObject complex type. 027 * 028 * <p>The following schema fragment specifies the expected content contained within this class. 029 * 030 * <pre> 031 * <complexType name="ModelObject"> 032 * <complexContent> 033 * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 034 * <sequence> 035 * <element ref="{http://jomc.org/model}documentation" minOccurs="0"/> 036 * <element ref="{http://jomc.org/model}authors" minOccurs="0"/> 037 * </sequence> 038 * <attribute name="modelVersion" type="{http://jomc.org/model}Version" default="1.2" /> 039 * <attribute name="createDate" type="{http://jomc.org/model}DateTime" /> 040 * <attribute name="deprecated" type="{http://jomc.org/model}Flag" default="false" /> 041 * </restriction> 042 * </complexContent> 043 * </complexType> 044 * </pre> 045 * 046 * 047 */ 048@XmlAccessorType(XmlAccessType.FIELD) 049@XmlType(name = "ModelObject", namespace = "http://jomc.org/model", propOrder = { 050 "documentation", 051 "authors" 052}) 053@XmlSeeAlso({ 054 Argument.class, 055 Module.class, 056 Implementations.class, 057 Property.class, 058 Properties.class, 059 Instances.class, 060 Persons.class, 061 Messages.class, 062 Specifications.class, 063 Message.class, 064 Person.class, 065 Authors.class, 066 Arguments.class, 067 Dependencies.class, 068 Implementation.class, 069 Specification.class, 070 Instance.class, 071 Modules.class, 072 ImplementationReference.class, 073 SpecificationReference.class, 074 MessageReference.class, 075 PropertyReference.class 076}) 077@Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 078public class ModelObject implements Cloneable 079{ 080 081 @XmlElement(namespace = "http://jomc.org/model") 082 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 083 protected Texts documentation; 084 @XmlElement(namespace = "http://jomc.org/model") 085 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 086 protected Authors authors; 087 @XmlAttribute(name = "modelVersion") 088 @XmlJavaTypeAdapter(CollapsedStringAdapter.class) 089 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 090 protected String modelVersion; 091 @XmlAttribute(name = "createDate") 092 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 093 protected XMLGregorianCalendar createDate; 094 @XmlAttribute(name = "deprecated") 095 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 096 protected Boolean deprecated; 097 098 /** 099 * Creates a new {@code ModelObject} instance. 100 * 101 */ 102 public ModelObject() { 103 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 104 super(); 105 } 106 107 /** 108 * Creates a new {@code ModelObject} instance by deeply copying a given {@code ModelObject} instance. 109 * 110 * 111 * @param o 112 * The instance to copy. 113 * @throws NullPointerException 114 * if {@code o} is {@code null}. 115 */ 116 public ModelObject(final ModelObject o) { 117 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 118 super(); 119 if (o == null) { 120 throw new NullPointerException("Cannot create a copy of 'ModelObject' from 'null'."); 121 } 122 // CClassInfo: org.jomc.model.Texts 123 this.documentation = ((o.documentation == null)?null:((o.getDocumentation() == null)?null:o.getDocumentation().clone())); 124 // CClassInfo: org.jomc.model.Authors 125 this.authors = ((o.authors == null)?null:((o.getAuthors() == null)?null:o.getAuthors().clone())); 126 // CBuiltinLeafInfo: java.lang.String 127 this.modelVersion = ((o.modelVersion == null)?null:o.getModelVersion()); 128 // CBuiltinLeafInfo: javax.xml.datatype.XMLGregorianCalendar 129 this.createDate = ((o.createDate == null)?null:((o.getCreateDate() == null)?null:((XMLGregorianCalendar) o.getCreateDate().clone()))); 130 // CBuiltinLeafInfo: java.lang.Boolean 131 this.deprecated = ((o.deprecated == null)?null:o.isDeprecated()); 132 } 133 134 /** 135 * Documentation of this object or {@code null}. 136 * 137 * @return 138 * possible object is 139 * {@link Texts } 140 * 141 */ 142 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 143 public Texts getDocumentation() { 144 return documentation; 145 } 146 147 /** 148 * Sets the value of the documentation property. 149 * 150 * @param value 151 * allowed object is 152 * {@link Texts } 153 * 154 */ 155 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 156 public void setDocumentation(Texts value) { 157 this.documentation = value; 158 } 159 160 /** 161 * Authors of this object or {@code null}. 162 * 163 * @return 164 * possible object is 165 * {@link Authors } 166 * 167 */ 168 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 169 public Authors getAuthors() { 170 return authors; 171 } 172 173 /** 174 * Sets the value of the authors property. 175 * 176 * @param value 177 * allowed object is 178 * {@link Authors } 179 * 180 */ 181 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 182 public void setAuthors(Authors value) { 183 this.authors = value; 184 } 185 186 /** 187 * Model version of this object. 188 * 189 * @return 190 * possible object is 191 * {@link String } 192 * 193 */ 194 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 195 public String getModelVersion() { 196 if (modelVersion == null) { 197 return "1.2"; 198 } else { 199 return modelVersion; 200 } 201 } 202 203 /** 204 * Sets the value of the modelVersion property. 205 * 206 * @param value 207 * allowed object is 208 * {@link String } 209 * 210 */ 211 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 212 public void setModelVersion(String value) { 213 this.modelVersion = value; 214 } 215 216 /** 217 * The date this object got created or {@code null}. 218 * 219 * @return 220 * possible object is 221 * {@link XMLGregorianCalendar } 222 * 223 */ 224 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 225 public XMLGregorianCalendar getCreateDate() { 226 return createDate; 227 } 228 229 /** 230 * Sets the value of the createDate property. 231 * 232 * @param value 233 * allowed object is 234 * {@link XMLGregorianCalendar } 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 void setCreateDate(XMLGregorianCalendar value) { 239 this.createDate = value; 240 } 241 242 /** 243 * {@code true}, if this object is deprecated. 244 * 245 * @return 246 * possible object is 247 * {@link Boolean } 248 * 249 */ 250 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 251 public boolean isDeprecated() { 252 if (deprecated == null) { 253 return false; 254 } else { 255 return deprecated; 256 } 257 } 258 259 /** 260 * Sets the value of the deprecated property. 261 * 262 * @param value 263 * allowed object is 264 * {@link Boolean } 265 * 266 */ 267 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 268 public void setDeprecated(Boolean value) { 269 this.deprecated = value; 270 } 271 272 /** 273 * Creates and returns a deep copy of this object. 274 * 275 * 276 * @return 277 * A deep copy of this object. 278 */ 279 @Override 280 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 281 public ModelObject clone() { 282 try { 283 { 284 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 285 final ModelObject clone = ((ModelObject) super.clone()); 286 // CClassInfo: org.jomc.model.Texts 287 clone.documentation = ((this.documentation == null)?null:((this.getDocumentation() == null)?null:this.getDocumentation().clone())); 288 // CClassInfo: org.jomc.model.Authors 289 clone.authors = ((this.authors == null)?null:((this.getAuthors() == null)?null:this.getAuthors().clone())); 290 // CBuiltinLeafInfo: java.lang.String 291 clone.modelVersion = ((this.modelVersion == null)?null:this.getModelVersion()); 292 // CBuiltinLeafInfo: javax.xml.datatype.XMLGregorianCalendar 293 clone.createDate = ((this.createDate == null)?null:((this.getCreateDate() == null)?null:((XMLGregorianCalendar) this.getCreateDate().clone()))); 294 // CBuiltinLeafInfo: java.lang.Boolean 295 clone.deprecated = ((this.deprecated == null)?null:this.isDeprecated()); 296 return clone; 297 } 298 } catch (CloneNotSupportedException e) { 299 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ 300 throw new AssertionError(e); 301 } 302 } 303 304 /** Public identifier of the object management and configuration model. */ 305 public static final String MODEL_PUBLIC_ID = "http://jomc.org/model"; 306 307 /** 308 * Gets a single {@code JAXBElement} matching a namespace URI and local part from a given list of objects. 309 * 310 * @param any The list to search. 311 * @param namespaceURI The namespace URI of the {@code JAXBElement} to return. 312 * @param localPart The local part of the {@code JAXBElement} to return. 313 * 314 * @return The {@code JAXBElement} matching {@code namespaceURI} and {@code localPart} from the {@code any} list or 315 * {@code null} if no such element is found. 316 * 317 * @throws NullPointerException if {@code any}, {@code namespaceURI} or {@code localPart} is {@code null}. 318 * @throws IllegalStateException if {@code any} contains more than one matching element. 319 * 320 * @deprecated As of JOMC 1.1, please use method {@link #getAnyElement(java.util.List, java.lang.String, java.lang.String, java.lang.Class)}. 321 * This method will be removed in version 2.0. 322 */ 323 @Deprecated 324 protected javax.xml.bind.JAXBElement getAnyElement( final java.util.List<Object> any, final String namespaceURI, 325 final String localPart ) 326 { 327 if ( any == null ) 328 { 329 throw new NullPointerException( "any" ); 330 } 331 if ( namespaceURI == null ) 332 { 333 throw new NullPointerException( "namespaceURI" ); 334 } 335 if ( localPart == null ) 336 { 337 throw new NullPointerException( "localPart" ); 338 } 339 340 javax.xml.bind.JAXBElement<?> anyElement = null; 341 342 for ( int i = 0, s0 = any.size(); i < s0; i++ ) 343 { 344 final Object o = any.get( i ); 345 346 if ( o instanceof javax.xml.bind.JAXBElement<?> ) 347 { 348 final javax.xml.bind.JAXBElement<?> e = (javax.xml.bind.JAXBElement<?>) o; 349 350 if ( namespaceURI.equals( e.getName().getNamespaceURI() ) 351 && localPart.equals( e.getName().getLocalPart() ) ) 352 { 353 if ( anyElement == null ) 354 { 355 anyElement = e; 356 } 357 else 358 { 359 throw new IllegalStateException( getMessage( "nonUniqueElement", this.getClass().getName(), 360 namespaceURI, localPart ) ); 361 362 } 363 } 364 } 365 } 366 367 return anyElement; 368 } 369 370 /** 371 * Gets a list containing all {@code JAXBElement}s matching a namespace URI and local part from a given list of 372 * objects. 373 * 374 * @param any The list to search. 375 * @param namespaceURI The namespace URI of the {@code JAXBElement}s to return. 376 * @param localPart The local part of the {@code JAXBElement}s to return. 377 * 378 * @return An unmodifiable list of all {@code JAXBElement}s matching {@code namespaceURI} and {@code localPart} from 379 * the {@code any} list - an empty list if no such elements are found. 380 * 381 * @throws NullPointerException if {@code any}, {@code namespaceURI} or {@code localPart} is {@code null}. 382 * 383 * @deprecated As of JOMC 1.1, please use method {@link #getAnyElements(java.util.List, java.lang.String, java.lang.String, java.lang.Class)}. 384 * This method will be removed in version 2.0. 385 */ 386 @Deprecated 387 protected java.util.List<javax.xml.bind.JAXBElement> getAnyElements( final java.util.List<Object> any, 388 final String namespaceURI, 389 final String localPart ) 390 { 391 if ( any == null ) 392 { 393 throw new NullPointerException( "any" ); 394 } 395 if ( namespaceURI == null ) 396 { 397 throw new NullPointerException( "namespaceURI" ); 398 } 399 if ( localPart == null ) 400 { 401 throw new NullPointerException( "localPart" ); 402 } 403 404 final java.util.List<javax.xml.bind.JAXBElement> anyElements = 405 new java.util.ArrayList<javax.xml.bind.JAXBElement>( any.size() ); 406 407 for ( int i = 0, s0 = any.size(); i < s0; i++ ) 408 { 409 final Object o = any.get( i ); 410 411 if ( o instanceof javax.xml.bind.JAXBElement<?> ) 412 { 413 final javax.xml.bind.JAXBElement<?> e = (javax.xml.bind.JAXBElement<?>) o; 414 415 if ( namespaceURI.equals( e.getName().getNamespaceURI() ) 416 && localPart.equals( e.getName().getLocalPart() ) ) 417 { 418 anyElements.add( e ); 419 } 420 } 421 } 422 423 return java.util.Collections.unmodifiableList( anyElements ); 424 } 425 426 /** 427 * Gets a single {@code JAXBElement} matching a namespace URI and local part from a given list of objects. 428 * 429 * @param any The list to search. 430 * @param namespaceURI The namespace URI of the {@code JAXBElement} to return. 431 * @param localPart The local part of the {@code JAXBElement} to return. 432 * @param type The class of the type the element is bound to. 433 * @param <T> The type the element is bound to. 434 * 435 * @return The {@code JAXBElement} matching {@code namespaceURI} and {@code localPart} from the {@code any} list or 436 * {@code null} if no such element is found. 437 * 438 * @throws NullPointerException if {@code any}, {@code namespaceURI}, {@code localPart} or {@code type} is 439 * {@code null}. 440 * @throws IllegalStateException if {@code any} contains more than one matching element. 441 * 442 * @since 1.1 443 */ 444 protected <T> javax.xml.bind.JAXBElement<T> getAnyElement( final java.util.List<Object> any, 445 final String namespaceURI, 446 final String localPart, 447 final Class<T> type ) 448 { 449 if ( any == null ) 450 { 451 throw new NullPointerException( "any" ); 452 } 453 if ( namespaceURI == null ) 454 { 455 throw new NullPointerException( "namespaceURI" ); 456 } 457 if ( localPart == null ) 458 { 459 throw new NullPointerException( "localPart" ); 460 } 461 if ( type == null ) 462 { 463 throw new NullPointerException( "type" ); 464 } 465 466 javax.xml.bind.JAXBElement<?> anyElement = null; 467 468 for ( int i = 0, s0 = any.size(); i < s0; i++ ) 469 { 470 final Object o = any.get( i ); 471 472 if ( o instanceof javax.xml.bind.JAXBElement<?> ) 473 { 474 final javax.xml.bind.JAXBElement<?> e = (javax.xml.bind.JAXBElement<?>) o; 475 476 if ( namespaceURI.equals( e.getName().getNamespaceURI() ) 477 && localPart.equals( e.getName().getLocalPart() ) ) 478 { 479 if ( anyElement == null ) 480 { 481 anyElement = e; 482 } 483 else 484 { 485 throw new IllegalStateException( getMessage( "nonUniqueElement", this.getClass().getName(), 486 namespaceURI, localPart ) ); 487 488 } 489 } 490 } 491 } 492 493 if ( anyElement != null && anyElement.getValue() != null && anyElement.getValue().getClass().equals( type ) ) 494 { 495 @SuppressWarnings( "unchecked" ) final javax.xml.bind.JAXBElement<T> e = 496 (javax.xml.bind.JAXBElement<T>) anyElement; 497 498 return e; 499 } 500 501 return null; 502 } 503 504 /** 505 * Gets a list containing all {@code JAXBElement}s matching a namespace URI and local part from a given list of 506 * objects. 507 * 508 * @param any The list to search. 509 * @param namespaceURI The namespace URI of the {@code JAXBElement}s to return. 510 * @param localPart The local part of the {@code JAXBElement}s to return. 511 * @param type The class of the type the elements are bound to. 512 * @param <T> The type the elements are bound to. 513 * 514 * @return An unmodifiable list of all {@code JAXBElement}s matching {@code namespaceURI} and {@code localPart} from 515 * the {@code any} list - an empty list if no such elements are found. 516 * 517 * @throws NullPointerException if {@code any}, {@code namespaceURI}, {@code localPart} or {@code type} is 518 * {@code null}. 519 * 520 * @since 1.1 521 */ 522 protected <T> java.util.List<javax.xml.bind.JAXBElement<T>> getAnyElements( final java.util.List<Object> any, 523 final String namespaceURI, 524 final String localPart, 525 final Class<T> type ) 526 { 527 if ( any == null ) 528 { 529 throw new NullPointerException( "any" ); 530 } 531 if ( namespaceURI == null ) 532 { 533 throw new NullPointerException( "namespaceURI" ); 534 } 535 if ( localPart == null ) 536 { 537 throw new NullPointerException( "localPart" ); 538 } 539 if ( type == null ) 540 { 541 throw new NullPointerException( "type" ); 542 } 543 544 final java.util.List<javax.xml.bind.JAXBElement<T>> anyElements = 545 new java.util.ArrayList<javax.xml.bind.JAXBElement<T>>( any.size() ); 546 547 for ( int i = 0, s0 = any.size(); i < s0; i++ ) 548 { 549 final Object o = any.get( i ); 550 551 if ( o instanceof javax.xml.bind.JAXBElement<?> ) 552 { 553 final javax.xml.bind.JAXBElement<?> e = (javax.xml.bind.JAXBElement<?>) o; 554 555 if ( namespaceURI.equals( e.getName().getNamespaceURI() ) 556 && localPart.equals( e.getName().getLocalPart() ) 557 && e.getValue() != null && e.getValue().getClass().equals( type ) ) 558 { 559 @SuppressWarnings( "unchecked" ) final javax.xml.bind.JAXBElement<T> anyElement = 560 (javax.xml.bind.JAXBElement<T>) e; 561 562 anyElements.add( anyElement ); 563 } 564 } 565 } 566 567 return java.util.Collections.unmodifiableList( anyElements ); 568 } 569 570 /** 571 * Gets a single object matching a class from a given list of objects. 572 * 573 * @param any The list to search. 574 * @param clazz The class to return an instance of. 575 * @param <T> The type of the object to return. 576 * 577 * @return The instance of {@code clazz} from the {@code any} list or {@code null}, if no such instance is found. 578 * 579 * @throws NullPointerException if {@code any} or {@code clazz} is {@code null}. 580 * @throws IllegalStateException if {@code any} contains more than one matching object. 581 */ 582 protected <T> T getAnyObject( final java.util.List<Object> any, final Class<T> clazz ) 583 { 584 if ( any == null ) 585 { 586 throw new NullPointerException( "any" ); 587 } 588 if ( clazz == null ) 589 { 590 throw new NullPointerException( "clazz" ); 591 } 592 593 T anyObject = null; 594 595 for ( int i = 0, s0 = any.size(); i < s0; i++ ) 596 { 597 Object o = any.get( i ); 598 599 if ( o instanceof javax.xml.bind.JAXBElement<?> ) 600 { 601 o = ( (javax.xml.bind.JAXBElement<?>) o ).getValue(); 602 } 603 604 if ( clazz.equals( o.getClass() ) ) 605 { 606 if ( anyObject == null ) 607 { 608 @SuppressWarnings( "unchecked" ) final T object = (T) o; 609 anyObject = object; 610 } 611 else 612 { 613 throw new IllegalStateException( getMessage( "nonUniqueObject", this.getClass().getName(), 614 clazz.getName() ) ); 615 616 } 617 } 618 } 619 620 return anyObject; 621 } 622 623 /** 624 * Gets a list containing all objects matching a class from a given list of objects. 625 * 626 * @param any The list to search. 627 * @param clazz The class to return all instances of. 628 * @param <T> The type of the objects to return. 629 * 630 * @return An unmodifiable list of all instances of {@code clazz} from the {@code any} list - an empty list if no 631 * such objects are found. 632 * 633 * @throws NullPointerException if {@code any} or {@code clazz} is {@code null}. 634 */ 635 protected <T> java.util.List<T> getAnyObjects( final java.util.List<Object> any, final Class<T> clazz ) 636 { 637 if ( any == null ) 638 { 639 throw new NullPointerException( "any" ); 640 } 641 if ( clazz == null ) 642 { 643 throw new NullPointerException( "namespaceURI" ); 644 } 645 646 final java.util.List<T> anyElements = new java.util.ArrayList<T>( any.size() ); 647 648 for ( int i = 0, s0 = any.size(); i < s0; i++ ) 649 { 650 Object o = any.get( i ); 651 652 if ( o instanceof javax.xml.bind.JAXBElement<?> ) 653 { 654 o = ( (javax.xml.bind.JAXBElement<?>) o ).getValue(); 655 } 656 657 if ( clazz.equals( o.getClass() ) ) 658 { 659 @SuppressWarnings( "unchecked" ) final T object = (T) o; 660 anyElements.add( object ); 661 } 662 } 663 664 return java.util.Collections.unmodifiableList( anyElements ); 665 } 666 667 private static String getMessage( final String key, final Object... args ) 668 { 669 return java.text.MessageFormat.format( java.util.ResourceBundle.getBundle( 670 ModelObject.class.getName().replace( '.', '/' ), java.util.Locale.getDefault() ). 671 getString( key ), args ); 672 673 } 674 675}