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 an implementation. 060 * 061 * The 'Implementation' type defines attributes 'identifier', 'name', 'class', 'classDeclaration', 'location', 'vendor', 062 * 'version', 'final', 'stateless' and 'abstract'. Attribute 'identifier' holds an identifier uniquely identifying the 063 * implementation in a set of implementations. Attribute 'name' holds a name uniquely identifying the implementation for 064 * its implemented specifications. Attribute 'class' holds an identifier of the class providing implementation instances. 065 * Attribute 'classDeclaration' flags the implementation declaring the class providing implementation instances. Attribute 066 * 'location' holds an URI of the location of instances of the implementation. Attribute 'vendor' holds vendor information 067 * for the vendor providing the implementation. Attribute 'version' holds a version of the implementation. Dependencies, 068 * messages, properties and specifications may be inherited from multiple parent implementations. The 'final' attribute 069 * flags an implementation the final node in an inheritance hierarchy. The 'stateless' attribute indicates that instances 070 * of the implementation do not retain state across operations. The 'abstract' attribute flags an implementation abstract. 071 * 072 * 073 * <p>Java class for Implementation complex type. 074 * 075 * <p>The following schema fragment specifies the expected content contained within this class. 076 * 077 * <pre> 078 * <complexType name="Implementation"> 079 * <complexContent> 080 * <extension base="{http://jomc.org/model}ModelObject"> 081 * <sequence> 082 * <element ref="{http://jomc.org/model}specifications" minOccurs="0"/> 083 * <element ref="{http://jomc.org/model}implementations" minOccurs="0"/> 084 * <element ref="{http://jomc.org/model}dependencies" minOccurs="0"/> 085 * <element ref="{http://jomc.org/model}properties" minOccurs="0"/> 086 * <element ref="{http://jomc.org/model}messages" minOccurs="0"/> 087 * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/> 088 * </sequence> 089 * <attribute name="identifier" use="required" type="{http://jomc.org/model}Identifier" /> 090 * <attribute name="name" use="required" type="{http://jomc.org/model}Identifier" /> 091 * <attribute name="class" type="{http://jomc.org/model}Identifier" /> 092 * <attribute name="location" type="{http://jomc.org/model}URI" /> 093 * <attribute name="vendor" type="{http://jomc.org/model}String" /> 094 * <attribute name="version" type="{http://jomc.org/model}Version" /> 095 * <attribute name="final" type="{http://jomc.org/model}Flag" default="false" /> 096 * <attribute name="stateless" type="{http://jomc.org/model}Flag" default="false" /> 097 * <attribute name="abstract" type="{http://jomc.org/model}Flag" default="false" /> 098 * <attribute name="classDeclaration" type="{http://jomc.org/model}Flag" default="false" /> 099 * </extension> 100 * </complexContent> 101 * </complexType> 102 * </pre> 103 * 104 * 105 */ 106@XmlAccessorType(XmlAccessType.FIELD) 107@XmlType(name = "Implementation", namespace = "http://jomc.org/model", propOrder = { 108 "specifications", 109 "implementations", 110 "dependencies", 111 "properties", 112 "messages", 113 "any" 114}) 115@Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 116public class Implementation 117 extends ModelObject 118 implements Cloneable 119{ 120 121 @XmlElement(namespace = "http://jomc.org/model") 122 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 123 protected Specifications specifications; 124 @XmlElement(namespace = "http://jomc.org/model") 125 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 126 protected Implementations implementations; 127 @XmlElement(namespace = "http://jomc.org/model") 128 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 129 protected Dependencies dependencies; 130 @XmlElement(namespace = "http://jomc.org/model") 131 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 132 protected Properties properties; 133 @XmlElement(namespace = "http://jomc.org/model") 134 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 135 protected Messages messages; 136 @XmlAnyElement(lax = true) 137 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 138 protected List<Object> any; 139 @XmlAttribute(name = "identifier", required = true) 140 @XmlJavaTypeAdapter(CollapsedStringAdapter.class) 141 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 142 protected String identifier; 143 @XmlAttribute(name = "name", required = true) 144 @XmlJavaTypeAdapter(CollapsedStringAdapter.class) 145 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 146 protected String name; 147 @XmlAttribute(name = "class") 148 @XmlJavaTypeAdapter(CollapsedStringAdapter.class) 149 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 150 protected String clazz; 151 @XmlAttribute(name = "location") 152 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 153 protected String location; 154 @XmlAttribute(name = "vendor") 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 protected String vendor; 157 @XmlAttribute(name = "version") 158 @XmlJavaTypeAdapter(CollapsedStringAdapter.class) 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 protected String version; 161 @XmlAttribute(name = "final") 162 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 163 protected Boolean _final; 164 @XmlAttribute(name = "stateless") 165 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 166 protected Boolean stateless; 167 @XmlAttribute(name = "abstract") 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 protected Boolean _abstract; 170 @XmlAttribute(name = "classDeclaration") 171 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 172 protected Boolean classDeclaration; 173 174 /** 175 * Creates a new {@code Implementation} instance. 176 * 177 */ 178 public Implementation() { 179 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 180 super(); 181 } 182 183 /** 184 * Creates a new {@code Implementation} instance by deeply copying a given {@code Implementation} instance. 185 * 186 * 187 * @param o 188 * The instance to copy. 189 * @throws NullPointerException 190 * if {@code o} is {@code null}. 191 */ 192 public Implementation(final Implementation o) { 193 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 194 super(o); 195 if (o == null) { 196 throw new NullPointerException("Cannot create a copy of 'Implementation' from 'null'."); 197 } 198 // CClassInfo: org.jomc.model.Specifications 199 this.specifications = ((o.specifications == null)?null:((o.getSpecifications() == null)?null:o.getSpecifications().clone())); 200 // CClassInfo: org.jomc.model.Implementations 201 this.implementations = ((o.implementations == null)?null:((o.getImplementations() == null)?null:o.getImplementations().clone())); 202 // CClassInfo: org.jomc.model.Dependencies 203 this.dependencies = ((o.dependencies == null)?null:((o.getDependencies() == null)?null:o.getDependencies().clone())); 204 // CClassInfo: org.jomc.model.Properties 205 this.properties = ((o.properties == null)?null:((o.getProperties() == null)?null:o.getProperties().clone())); 206 // CClassInfo: org.jomc.model.Messages 207 this.messages = ((o.messages == null)?null:((o.getMessages() == null)?null:o.getMessages().clone())); 208 // 'Any' collection. 209 if (o.any!= null) { 210 copyAny(o.getAny(), this.getAny()); 211 } 212 // CBuiltinLeafInfo: java.lang.String 213 this.identifier = ((o.identifier == null)?null:o.getIdentifier()); 214 // CBuiltinLeafInfo: java.lang.String 215 this.name = ((o.name == null)?null:o.getName()); 216 // CBuiltinLeafInfo: java.lang.String 217 this.clazz = ((o.clazz == null)?null:o.getClazz()); 218 // CBuiltinLeafInfo: java.lang.String 219 this.location = ((o.location == null)?null:o.getLocation()); 220 // CBuiltinLeafInfo: java.lang.String 221 this.vendor = ((o.vendor == null)?null:o.getVendor()); 222 // CBuiltinLeafInfo: java.lang.String 223 this.version = ((o.version == null)?null:o.getVersion()); 224 // CBuiltinLeafInfo: java.lang.Boolean 225 this._final = ((o._final == null)?null:o.isFinal()); 226 // CBuiltinLeafInfo: java.lang.Boolean 227 this.stateless = ((o.stateless == null)?null:o.isStateless()); 228 // CBuiltinLeafInfo: java.lang.Boolean 229 this._abstract = ((o._abstract == null)?null:o.isAbstract()); 230 // CBuiltinLeafInfo: java.lang.Boolean 231 this.classDeclaration = ((o.classDeclaration == null)?null:o.isClassDeclaration()); 232 } 233 234 /** 235 * References to specifications implemented by this implementation or {@code null}. 236 * 237 * @return 238 * possible object is 239 * {@link Specifications } 240 * 241 */ 242 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 243 public Specifications getSpecifications() { 244 return specifications; 245 } 246 247 /** 248 * Sets the value of the specifications property. 249 * 250 * @param value 251 * allowed object is 252 * {@link Specifications } 253 * 254 */ 255 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 256 public void setSpecifications(Specifications value) { 257 this.specifications = value; 258 } 259 260 /** 261 * References to implementations this implementation inherits from or {@code null}. 262 * 263 * @return 264 * possible object is 265 * {@link Implementations } 266 * 267 */ 268 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 269 public Implementations getImplementations() { 270 return implementations; 271 } 272 273 /** 274 * Sets the value of the implementations property. 275 * 276 * @param value 277 * allowed object is 278 * {@link Implementations } 279 * 280 */ 281 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 282 public void setImplementations(Implementations value) { 283 this.implementations = value; 284 } 285 286 /** 287 * Dependencies of this implementation or {@code null}. 288 * 289 * @return 290 * possible object is 291 * {@link Dependencies } 292 * 293 */ 294 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 295 public Dependencies getDependencies() { 296 return dependencies; 297 } 298 299 /** 300 * Sets the value of the dependencies property. 301 * 302 * @param value 303 * allowed object is 304 * {@link Dependencies } 305 * 306 */ 307 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 308 public void setDependencies(Dependencies value) { 309 this.dependencies = value; 310 } 311 312 /** 313 * Properties of this implementation or {@code null}. 314 * 315 * @return 316 * possible object is 317 * {@link Properties } 318 * 319 */ 320 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 321 public Properties getProperties() { 322 return properties; 323 } 324 325 /** 326 * Sets the value of the properties property. 327 * 328 * @param value 329 * allowed object is 330 * {@link Properties } 331 * 332 */ 333 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 334 public void setProperties(Properties value) { 335 this.properties = value; 336 } 337 338 /** 339 * Messages of this implementation or {@code null}. 340 * 341 * @return 342 * possible object is 343 * {@link Messages } 344 * 345 */ 346 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 347 public Messages getMessages() { 348 return messages; 349 } 350 351 /** 352 * Sets the value of the messages property. 353 * 354 * @param value 355 * allowed object is 356 * {@link Messages } 357 * 358 */ 359 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 360 public void setMessages(Messages value) { 361 this.messages = value; 362 } 363 364 /** 365 * Gets the value of the any property. 366 * 367 * <p> 368 * This accessor method returns a reference to the live list, 369 * not a snapshot. Therefore any modification you make to the 370 * returned list will be present inside the JAXB object. 371 * This is why there is not a <CODE>set</CODE> method for the any property. 372 * 373 * <p> 374 * For example, to add a new item, do as follows: 375 * <pre> 376 * getAny().add(newItem); 377 * </pre> 378 * 379 * 380 * <p> 381 * Objects of the following type(s) are allowed in the list 382 * {@link Object } 383 * {@link Element } 384 * 385 * 386 */ 387 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 388 public List<Object> getAny() { 389 if (any == null) { 390 any = new ArrayList<Object>(); 391 } 392 return this.any; 393 } 394 395 /** 396 * The identifier of this implementation. 397 * 398 * @return 399 * possible object is 400 * {@link String } 401 * 402 */ 403 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 404 public String getIdentifier() { 405 return identifier; 406 } 407 408 /** 409 * Sets the value of the identifier property. 410 * 411 * @param value 412 * allowed object is 413 * {@link String } 414 * 415 */ 416 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 417 public void setIdentifier(String value) { 418 this.identifier = value; 419 } 420 421 /** 422 * The name of this implementation. 423 * 424 * @return 425 * possible object is 426 * {@link String } 427 * 428 */ 429 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 430 public String getName() { 431 return name; 432 } 433 434 /** 435 * Sets the value of the name property. 436 * 437 * @param value 438 * allowed object is 439 * {@link String } 440 * 441 */ 442 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 443 public void setName(String value) { 444 this.name = value; 445 } 446 447 /** 448 * The identifier of the class providing instances of this implementation or {@code null}. 449 * 450 * @return 451 * possible object is 452 * {@link String } 453 * 454 */ 455 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 456 public String getClazz() { 457 return clazz; 458 } 459 460 /** 461 * Sets the value of the clazz property. 462 * 463 * @param value 464 * allowed object is 465 * {@link String } 466 * 467 */ 468 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 469 public void setClazz(String value) { 470 this.clazz = value; 471 } 472 473 /** 474 * An URI of the location providing instances of this implementation or {@code null}. 475 * 476 * @return 477 * possible object is 478 * {@link String } 479 * 480 */ 481 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 482 public String getLocation() { 483 return location; 484 } 485 486 /** 487 * Sets the value of the location property. 488 * 489 * @param value 490 * allowed object is 491 * {@link String } 492 * 493 */ 494 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 495 public void setLocation(String value) { 496 this.location = value; 497 } 498 499 /** 500 * The vendor of this implementation or {@code null}. 501 * 502 * @return 503 * possible object is 504 * {@link String } 505 * 506 */ 507 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 508 public String getVendor() { 509 return vendor; 510 } 511 512 /** 513 * Sets the value of the vendor property. 514 * 515 * @param value 516 * allowed object is 517 * {@link String } 518 * 519 */ 520 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 521 public void setVendor(String value) { 522 this.vendor = value; 523 } 524 525 /** 526 * The version of this implementation or {@code null}. 527 * 528 * @return 529 * possible object is 530 * {@link String } 531 * 532 */ 533 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 534 public String getVersion() { 535 return version; 536 } 537 538 /** 539 * Sets the value of the version property. 540 * 541 * @param value 542 * allowed object is 543 * {@link String } 544 * 545 */ 546 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 547 public void setVersion(String value) { 548 this.version = value; 549 } 550 551 /** 552 * {@code true}, if this implementation is the final node in an inheritance hierarchy. 553 * 554 * @return 555 * possible object is 556 * {@link Boolean } 557 * 558 */ 559 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 560 public boolean isFinal() { 561 if (_final == null) { 562 return false; 563 } else { 564 return _final; 565 } 566 } 567 568 /** 569 * Sets the value of the final property. 570 * 571 * @param value 572 * allowed object is 573 * {@link Boolean } 574 * 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 public void setFinal(Boolean value) { 578 this._final = value; 579 } 580 581 /** 582 * {@code true}, if instances of this implementation do not retain state across operations. 583 * 584 * @return 585 * possible object is 586 * {@link Boolean } 587 * 588 */ 589 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 590 public boolean isStateless() { 591 if (stateless == null) { 592 return false; 593 } else { 594 return stateless; 595 } 596 } 597 598 /** 599 * Sets the value of the stateless property. 600 * 601 * @param value 602 * allowed object is 603 * {@link Boolean } 604 * 605 */ 606 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 607 public void setStateless(Boolean value) { 608 this.stateless = value; 609 } 610 611 /** 612 * {@code true}, if this implementation is abstract. 613 * 614 * @return 615 * possible object is 616 * {@link Boolean } 617 * 618 */ 619 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 620 public boolean isAbstract() { 621 if (_abstract == null) { 622 return false; 623 } else { 624 return _abstract; 625 } 626 } 627 628 /** 629 * Sets the value of the abstract property. 630 * 631 * @param value 632 * allowed object is 633 * {@link Boolean } 634 * 635 */ 636 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 637 public void setAbstract(Boolean value) { 638 this._abstract = value; 639 } 640 641 /** 642 * {@code true}, if this implementation declares the class given by property {@code clazz}. 643 * 644 * @return 645 * possible object is 646 * {@link Boolean } 647 * 648 */ 649 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 650 public boolean isClassDeclaration() { 651 if (classDeclaration == null) { 652 return false; 653 } else { 654 return classDeclaration; 655 } 656 } 657 658 /** 659 * Sets the value of the classDeclaration property. 660 * 661 * @param value 662 * allowed object is 663 * {@link Boolean } 664 * 665 */ 666 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 667 public void setClassDeclaration(Boolean value) { 668 this.classDeclaration = value; 669 } 670 671 /** 672 * Copies all values of property {@code Any} deeply. 673 * 674 * @param source 675 * The source to copy from. 676 * @param target 677 * The target to copy {@code source} to. 678 * @throws NullPointerException 679 * if {@code target} is {@code null}. 680 */ 681 @SuppressWarnings("unchecked") 682 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 683 private static void copyAny(final List<Object> source, final List<Object> target) { 684 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 685 if ((source!= null)&&(!source.isEmpty())) { 686 for (final Iterator<?> it = source.iterator(); it.hasNext(); ) { 687 final Object next = it.next(); 688 if (next instanceof Element) { 689 // CWildcardTypeInfo: org.w3c.dom.Element 690 target.add(((Element)((Element) next).cloneNode(true))); 691 continue; 692 } 693 if (next instanceof Object) { 694 // CBuiltinLeafInfo: java.lang.Object 695 target.add(copyOf(((Object) next))); 696 continue; 697 } 698 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ 699 throw new AssertionError((("Unexpected instance '"+ next)+"' for property 'Any' of class 'org.jomc.model.Implementation'.")); 700 } 701 } 702 } 703 704 /** 705 * Creates and returns a deep copy of a given object. 706 * 707 * @param o 708 * The instance to copy or {@code null}. 709 * @return 710 * A deep copy of {@code o} or {@code null} if {@code o} is {@code null}. 711 */ 712 @SuppressWarnings("unchecked") 713 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 714 private static Object copyOf(final Object o) { 715 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 716 try { 717 if (o!= null) { 718 if (o.getClass().isPrimitive()) { 719 return o; 720 } 721 if (o.getClass().isArray()) { 722 return copyOfArray(o); 723 } 724 // Immutable types. 725 if (o instanceof Boolean) { 726 return o; 727 } 728 if (o instanceof Byte) { 729 return o; 730 } 731 if (o instanceof Character) { 732 return o; 733 } 734 if (o instanceof Double) { 735 return o; 736 } 737 if (o instanceof Enum) { 738 return o; 739 } 740 if (o instanceof Float) { 741 return o; 742 } 743 if (o instanceof Integer) { 744 return o; 745 } 746 if (o instanceof Long) { 747 return o; 748 } 749 if (o instanceof Short) { 750 return o; 751 } 752 if (o instanceof String) { 753 return o; 754 } 755 if (o instanceof BigDecimal) { 756 return o; 757 } 758 if (o instanceof BigInteger) { 759 return o; 760 } 761 if (o instanceof UUID) { 762 return o; 763 } 764 if (o instanceof QName) { 765 return o; 766 } 767 if (o instanceof Duration) { 768 return o; 769 } 770 if (o instanceof Currency) { 771 return o; 772 } 773 // String based types. 774 if (o instanceof File) { 775 return new File(o.toString()); 776 } 777 if (o instanceof URI) { 778 return new URI(o.toString()); 779 } 780 if (o instanceof URL) { 781 return new URL(o.toString()); 782 } 783 if (o instanceof MimeType) { 784 return new MimeType(o.toString()); 785 } 786 // Cloneable types. 787 if (o instanceof XMLGregorianCalendar) { 788 return ((XMLGregorianCalendar) o).clone(); 789 } 790 if (o instanceof Date) { 791 return ((Date) o).clone(); 792 } 793 if (o instanceof Calendar) { 794 return ((Calendar) o).clone(); 795 } 796 if (o instanceof TimeZone) { 797 return ((TimeZone) o).clone(); 798 } 799 if (o instanceof Locale) { 800 return ((Locale) o).clone(); 801 } 802 if (o instanceof Element) { 803 return ((Element)((Element) o).cloneNode(true)); 804 } 805 if (o instanceof JAXBElement) { 806 return copyOf(((JAXBElement) o)); 807 } 808 try { 809 return o.getClass().getMethod("clone", ((Class[]) null)).invoke(o, ((Object[]) null)); 810 } catch (NoSuchMethodException e) { 811 if (o instanceof Serializable) { 812 return copyOf(((Serializable) o)); 813 } 814 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ 815 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 816 } catch (IllegalAccessException e) { 817 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ 818 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 819 } catch (InvocationTargetException e) { 820 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ 821 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 822 } catch (SecurityException e) { 823 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ 824 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 825 } catch (IllegalArgumentException e) { 826 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ 827 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 828 } catch (ExceptionInInitializerError e) { 829 // Please report this at https://apps.sourceforge.net/mantisbt/ccxjc/ 830 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 831 } 832 } 833 return null; 834 } catch (MalformedURLException e) { 835 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 836 } catch (MimeTypeParseException e) { 837 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 838 } catch (URISyntaxException e) { 839 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ o)+"'.")).initCause(e)); 840 } 841 } 842 843 /** 844 * Creates and returns a deep copy of a given array. 845 * 846 * @param array 847 * The array to copy or {@code null}. 848 * @return 849 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 850 */ 851 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 852 private static Object copyOfArray(final Object array) { 853 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 854 if (array!= null) { 855 if (array.getClass() == boolean[].class) { 856 return copyOf(((boolean[]) array)); 857 } 858 if (array.getClass() == byte[].class) { 859 return copyOf(((byte[]) array)); 860 } 861 if (array.getClass() == char[].class) { 862 return copyOf(((char[]) array)); 863 } 864 if (array.getClass() == double[].class) { 865 return copyOf(((double[]) array)); 866 } 867 if (array.getClass() == float[].class) { 868 return copyOf(((float[]) array)); 869 } 870 if (array.getClass() == int[].class) { 871 return copyOf(((int[]) array)); 872 } 873 if (array.getClass() == long[].class) { 874 return copyOf(((long[]) array)); 875 } 876 if (array.getClass() == short[].class) { 877 return copyOf(((short[]) array)); 878 } 879 final int len = Array.getLength(array); 880 final Object copy = Array.newInstance(array.getClass().getComponentType(), len); 881 for (int i = (len- 1); (i >= 0); i--) { 882 Array.set(copy, i, copyOf(Array.get(array, i))); 883 } 884 return copy; 885 } 886 return null; 887 } 888 889 /** 890 * Creates and returns a deep copy of a given array. 891 * 892 * @param array 893 * The array to copy or {@code null}. 894 * @return 895 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 896 */ 897 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 898 private static boolean[] copyOf(final boolean[] array) { 899 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 900 if (array!= null) { 901 final boolean[] copy = ((boolean[]) Array.newInstance(array.getClass().getComponentType(), array.length)); 902 System.arraycopy(array, 0, copy, 0, array.length); 903 return copy; 904 } 905 return null; 906 } 907 908 /** 909 * Creates and returns a deep copy of a given array. 910 * 911 * @param array 912 * The array to copy or {@code null}. 913 * @return 914 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 915 */ 916 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 917 private static byte[] copyOf(final byte[] array) { 918 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 919 if (array!= null) { 920 final byte[] copy = ((byte[]) Array.newInstance(array.getClass().getComponentType(), array.length)); 921 System.arraycopy(array, 0, copy, 0, array.length); 922 return copy; 923 } 924 return null; 925 } 926 927 /** 928 * Creates and returns a deep copy of a given array. 929 * 930 * @param array 931 * The array to copy or {@code null}. 932 * @return 933 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 934 */ 935 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 936 private static char[] copyOf(final char[] array) { 937 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 938 if (array!= null) { 939 final char[] copy = ((char[]) Array.newInstance(array.getClass().getComponentType(), array.length)); 940 System.arraycopy(array, 0, copy, 0, array.length); 941 return copy; 942 } 943 return null; 944 } 945 946 /** 947 * Creates and returns a deep copy of a given array. 948 * 949 * @param array 950 * The array to copy or {@code null}. 951 * @return 952 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 953 */ 954 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 955 private static double[] copyOf(final double[] array) { 956 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 957 if (array!= null) { 958 final double[] copy = ((double[]) Array.newInstance(array.getClass().getComponentType(), array.length)); 959 System.arraycopy(array, 0, copy, 0, array.length); 960 return copy; 961 } 962 return null; 963 } 964 965 /** 966 * Creates and returns a deep copy of a given array. 967 * 968 * @param array 969 * The array to copy or {@code null}. 970 * @return 971 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 972 */ 973 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 974 private static float[] copyOf(final float[] array) { 975 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 976 if (array!= null) { 977 final float[] copy = ((float[]) Array.newInstance(array.getClass().getComponentType(), array.length)); 978 System.arraycopy(array, 0, copy, 0, array.length); 979 return copy; 980 } 981 return null; 982 } 983 984 /** 985 * Creates and returns a deep copy of a given array. 986 * 987 * @param array 988 * The array to copy or {@code null}. 989 * @return 990 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 991 */ 992 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 993 private static int[] copyOf(final int[] array) { 994 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 995 if (array!= null) { 996 final int[] copy = ((int[]) Array.newInstance(array.getClass().getComponentType(), array.length)); 997 System.arraycopy(array, 0, copy, 0, array.length); 998 return copy; 999 } 1000 return null; 1001 } 1002 1003 /** 1004 * Creates and returns a deep copy of a given array. 1005 * 1006 * @param array 1007 * The array to copy or {@code null}. 1008 * @return 1009 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 1010 */ 1011 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 1012 private static long[] copyOf(final long[] array) { 1013 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 1014 if (array!= null) { 1015 final long[] copy = ((long[]) Array.newInstance(array.getClass().getComponentType(), array.length)); 1016 System.arraycopy(array, 0, copy, 0, array.length); 1017 return copy; 1018 } 1019 return null; 1020 } 1021 1022 /** 1023 * Creates and returns a deep copy of a given array. 1024 * 1025 * @param array 1026 * The array to copy or {@code null}. 1027 * @return 1028 * A deep copy of {@code array} or {@code null} if {@code array} is {@code null}. 1029 */ 1030 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 1031 private static short[] copyOf(final short[] array) { 1032 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 1033 if (array!= null) { 1034 final short[] copy = ((short[]) Array.newInstance(array.getClass().getComponentType(), array.length)); 1035 System.arraycopy(array, 0, copy, 0, array.length); 1036 return copy; 1037 } 1038 return null; 1039 } 1040 1041 /** 1042 * Creates and returns a deep copy of a given {@code JAXBElement} instance. 1043 * 1044 * @param element 1045 * The instance to copy or {@code null}. 1046 * @return 1047 * A deep copy of {@code element} or {@code null} if {@code element} is {@code null}. 1048 */ 1049 @SuppressWarnings("unchecked") 1050 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 1051 private static JAXBElement copyOf(final JAXBElement element) { 1052 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 1053 if (element!= null) { 1054 final JAXBElement copy = new JAXBElement(element.getName(), element.getDeclaredType(), element.getScope(), element.getValue()); 1055 copy.setNil(element.isNil()); 1056 copy.setValue(copyOf(copy.getValue())); 1057 return copy; 1058 } 1059 return null; 1060 } 1061 1062 /** 1063 * Creates and returns a deep copy of a given {@code Serializable}. 1064 * 1065 * @param serializable 1066 * The instance to copy or {@code null}. 1067 * @return 1068 * A deep copy of {@code serializable} or {@code null} if {@code serializable} is {@code null}. 1069 */ 1070 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 1071 private static Serializable copyOf(final Serializable serializable) { 1072 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 1073 if (serializable!= null) { 1074 try { 1075 final ByteArrayOutputStream byteArrayOutput = new ByteArrayOutputStream(); 1076 final ObjectOutputStream out = new ObjectOutputStream(byteArrayOutput); 1077 out.writeObject(serializable); 1078 out.close(); 1079 final ByteArrayInputStream byteArrayInput = new ByteArrayInputStream(byteArrayOutput.toByteArray()); 1080 final ObjectInputStream in = new ObjectInputStream(byteArrayInput); 1081 final Serializable copy = ((Serializable) in.readObject()); 1082 in.close(); 1083 return copy; 1084 } catch (SecurityException e) { 1085 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e)); 1086 } catch (ClassNotFoundException e) { 1087 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e)); 1088 } catch (InvalidClassException e) { 1089 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e)); 1090 } catch (NotSerializableException e) { 1091 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e)); 1092 } catch (StreamCorruptedException e) { 1093 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e)); 1094 } catch (OptionalDataException e) { 1095 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e)); 1096 } catch (IOException e) { 1097 throw((AssertionError) new AssertionError((("Unexpected instance during copying object '"+ serializable)+"'.")).initCause(e)); 1098 } 1099 } 1100 return null; 1101 } 1102 1103 /** 1104 * Creates and returns a deep copy of this object. 1105 * 1106 * 1107 * @return 1108 * A deep copy of this object. 1109 */ 1110 @Override 1111 @Generated(value = "com.sun.tools.xjc.Driver", date = "2016-11-01T03:16:37+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2") 1112 public Implementation clone() { 1113 { 1114 // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000 1115 final Implementation clone = ((Implementation) super.clone()); 1116 // CClassInfo: org.jomc.model.Specifications 1117 clone.specifications = ((this.specifications == null)?null:((this.getSpecifications() == null)?null:this.getSpecifications().clone())); 1118 // CClassInfo: org.jomc.model.Implementations 1119 clone.implementations = ((this.implementations == null)?null:((this.getImplementations() == null)?null:this.getImplementations().clone())); 1120 // CClassInfo: org.jomc.model.Dependencies 1121 clone.dependencies = ((this.dependencies == null)?null:((this.getDependencies() == null)?null:this.getDependencies().clone())); 1122 // CClassInfo: org.jomc.model.Properties 1123 clone.properties = ((this.properties == null)?null:((this.getProperties() == null)?null:this.getProperties().clone())); 1124 // CClassInfo: org.jomc.model.Messages 1125 clone.messages = ((this.messages == null)?null:((this.getMessages() == null)?null:this.getMessages().clone())); 1126 // 'Any' collection. 1127 if (this.any!= null) { 1128 clone.any = null; 1129 copyAny(this.getAny(), clone.getAny()); 1130 } 1131 // CBuiltinLeafInfo: java.lang.String 1132 clone.identifier = ((this.identifier == null)?null:this.getIdentifier()); 1133 // CBuiltinLeafInfo: java.lang.String 1134 clone.name = ((this.name == null)?null:this.getName()); 1135 // CBuiltinLeafInfo: java.lang.String 1136 clone.clazz = ((this.clazz == null)?null:this.getClazz()); 1137 // CBuiltinLeafInfo: java.lang.String 1138 clone.location = ((this.location == null)?null:this.getLocation()); 1139 // CBuiltinLeafInfo: java.lang.String 1140 clone.vendor = ((this.vendor == null)?null:this.getVendor()); 1141 // CBuiltinLeafInfo: java.lang.String 1142 clone.version = ((this.version == null)?null:this.getVersion()); 1143 // CBuiltinLeafInfo: java.lang.Boolean 1144 clone._final = ((this._final == null)?null:this.isFinal()); 1145 // CBuiltinLeafInfo: java.lang.Boolean 1146 clone.stateless = ((this.stateless == null)?null:this.isStateless()); 1147 // CBuiltinLeafInfo: java.lang.Boolean 1148 clone._abstract = ((this._abstract == null)?null:this.isAbstract()); 1149 // CBuiltinLeafInfo: java.lang.Boolean 1150 clone.classDeclaration = ((this.classDeclaration == null)?null:this.isClassDeclaration()); 1151 return clone; 1152 } 1153 } 1154 1155 /** 1156 * Gets the Java class of the type referenced by the implementation for a given class loader. 1157 * 1158 * @param classLoader The class loader to get the Java class from or {@code null}, to get the Java class from the 1159 * platform's bootstrap class loader. 1160 * 1161 * @return The Java class of the type referenced by the implementation or {@code null}, if the implementation does 1162 * not reference a type. 1163 * 1164 * @throws ClassNotFoundException if the Java class is not found. 1165 * @throws ModelObjectException if compiling the name of the referenced type to a {@code JavaTypeName} fails. 1166 * 1167 * @see #getClazz() 1168 * @see #getJavaTypeName() 1169 * 1170 * @since 1.2 1171 */ 1172 public Class<?> getJavaClass( final ClassLoader classLoader ) 1173 throws ClassNotFoundException, ModelObjectException 1174 { 1175 Class<?> javaClass = null; 1176 final JavaTypeName javaTypeName = this.getJavaTypeName(); 1177 1178 if ( javaTypeName != null ) 1179 { 1180 javaClass = javaTypeName.getClass( classLoader, false ); 1181 } 1182 1183 return javaClass; 1184 } 1185 1186 /** 1187 * Gets the Java type name of the type referenced by the implementation. 1188 * 1189 * @return The Java type name of the type referenced by the implementation or {@code null}, if the implementation 1190 * does not reference a type. 1191 * 1192 * @throws ModelObjectException if compiling the name of the referenced type to a {@code JavaTypeName} fails. 1193 * 1194 * @see #getClazz() 1195 * 1196 * @since 1.4 1197 */ 1198 public JavaTypeName getJavaTypeName() throws ModelObjectException 1199 { 1200 try 1201 { 1202 JavaTypeName javaTypeName = null; 1203 1204 if ( this.getClazz() != null ) 1205 { 1206 javaTypeName = JavaTypeName.parse( this.getClazz() ); 1207 } 1208 1209 return javaTypeName; 1210 } 1211 catch ( final java.text.ParseException e ) 1212 { 1213 throw new ModelObjectException( getMessage( "javaTypeNameParseException", this.getClazz(), 1214 getMessage( e ) ), e ); 1215 1216 } 1217 } 1218 1219 /** 1220 * Gets the location URI used for locating instances of this implementation. 1221 * 1222 * @return The location URI used for locating instances of this implementation or {@code null}, if instances of this 1223 * implementation do not need to be located. 1224 * 1225 * @throws ModelObjectException if compiling the location to an {@code URI} object fails. 1226 * 1227 * @see #getLocation() 1228 */ 1229 public java.net.URI getLocationUri() throws ModelObjectException 1230 { 1231 try 1232 { 1233 java.net.URI javaLocation = null; 1234 1235 if ( this.getLocation() != null ) 1236 { 1237 javaLocation = new java.net.URI( this.getLocation() ); 1238 } 1239 1240 return javaLocation; 1241 } 1242 catch ( final java.net.URISyntaxException e ) 1243 { 1244 throw new ModelObjectException( getMessage( "uriSyntaxException", this.getLocation(), 1245 getMessage( e ) ), e ); 1246 1247 } 1248 } 1249 1250 /** 1251 * Gets a single {@code JAXBElement} matching a namespace URI and local part from the {@code any} property of the 1252 * instance. 1253 * 1254 * @param namespaceURI The namespace URI of the {@code JAXBElement} to return. 1255 * @param localPart The local part of the {@code JAXBElement} to return. 1256 * 1257 * @return The {@code JAXBElement} matching {@code namespaceURI} and {@code localPart} from the {@code any} property 1258 * of the instance or {@code null}, if no such element is found. 1259 * 1260 * @throws NullPointerException if {@code namespaceURI} or {@code localPart} is {@code null}. 1261 * @throws IllegalStateException if the {@code any} property contains more than one matching element. 1262 * 1263 * @see #getAnyElement(java.util.List, java.lang.String, java.lang.String) 1264 * 1265 * @deprecated As of JOMC 1.1, please use method {@link #getAnyElement(java.lang.String, java.lang.String, java.lang.Class)}. 1266 * This method will be removed in version 2.0. 1267 */ 1268 @Deprecated 1269 public javax.xml.bind.JAXBElement getAnyElement( final String namespaceURI, final String localPart ) 1270 { 1271 return this.getAnyElement( this.getAny(), namespaceURI, localPart ); 1272 } 1273 1274 /** 1275 * Gets a list containing all {@code JAXBElement}s matching a namespace URI and local part from the {@code any} 1276 * property of the instance. 1277 * 1278 * @param namespaceURI The namespace URI of the {@code JAXBElement}s to return. 1279 * @param localPart The local part of the {@code JAXBElement}s to return. 1280 * 1281 * @return An unmodifiable list of all {@code JAXBElement}s matching {@code namespaceURI} and {@code localPart} from 1282 * the {@code any} property of the instance - an empty list if no such elements are found. 1283 * 1284 * @throws NullPointerException if {@code namespaceURI} or {@code localPart} is {@code null}. 1285 * 1286 * @see #getAnyElements(java.util.List, java.lang.String, java.lang.String) 1287 * 1288 * @deprecated As of JOMC 1.1, please use method {@link #getAnyElements(java.lang.String, java.lang.String, java.lang.Class)}. 1289 * This method will be removed in version 2.0. 1290 */ 1291 @Deprecated 1292 public java.util.List<javax.xml.bind.JAXBElement> getAnyElements( final String namespaceURI, 1293 final String localPart ) 1294 { 1295 return this.getAnyElements( this.getAny(), namespaceURI, localPart ); 1296 } 1297 1298 /** 1299 * Gets a single {@code JAXBElement} matching a namespace URI and local part from the {@code any} property of the 1300 * instance. 1301 * 1302 * @param namespaceURI The namespace URI of the {@code JAXBElement} to return. 1303 * @param localPart The local part of the {@code JAXBElement} to return. 1304 * @param type The class of the type the element is bound to. 1305 * @param <T> The type the element is bound to. 1306 * 1307 * @return The {@code JAXBElement} matching {@code namespaceURI} and {@code localPart} from the {@code any} property 1308 * of the instance or {@code null}, if no such element is found. 1309 * 1310 * @throws NullPointerException if {@code namespaceURI}, {@code localPart} or {@code type} is {@code null}. 1311 * @throws IllegalStateException if the {@code any} property contains more than one matching element. 1312 * 1313 * @see #getAnyElement(java.util.List, java.lang.String, java.lang.String, java.lang.Class) 1314 * 1315 * @since 1.1 1316 */ 1317 public <T> javax.xml.bind.JAXBElement<T> getAnyElement( final String namespaceURI, final String localPart, 1318 final Class<T> type ) 1319 { 1320 return this.getAnyElement( this.getAny(), namespaceURI, localPart, type ); 1321 } 1322 1323 /** 1324 * Gets a list containing all {@code JAXBElement}s matching a namespace URI and local part from the {@code any} 1325 * property of the instance. 1326 * 1327 * @param namespaceURI The namespace URI of the {@code JAXBElement}s to return. 1328 * @param localPart The local part of the {@code JAXBElement}s to return. 1329 * @param type The class of the type the elements are bound to. 1330 * @param <T> The type the elements are bound to. 1331 * 1332 * @return An unmodifiable list of all {@code JAXBElement}s matching {@code namespaceURI} and {@code localPart} from 1333 * the {@code any} property of the instance - an empty list if no such elements are found. 1334 * 1335 * @throws NullPointerException if {@code namespaceURI}, {@code localPart} or {@code type} is {@code null}. 1336 * 1337 * @see #getAnyElements(java.util.List, java.lang.String, java.lang.String, java.lang.Class) 1338 * 1339 * @since 1.1 1340 */ 1341 public <T> java.util.List<javax.xml.bind.JAXBElement<T>> getAnyElements( final String namespaceURI, 1342 final String localPart, 1343 final Class<T> type ) 1344 { 1345 return this.getAnyElements( this.getAny(), namespaceURI, localPart, type ); 1346 } 1347 1348 /** 1349 * Gets a single object matching a given class from the {@code any} property of the instance. 1350 * 1351 * @param clazz The class to return an instance of. 1352 * @param <T> The type of the object to return. 1353 * 1354 * @return The instance of {@code clazz} from the {@code any} property of the instance or {@code null}, if no such 1355 * instance is found. 1356 * 1357 * @throws NullPointerException if {@code clazz} is {@code null}. 1358 * @throws IllegalStateException if the {@code any} property contains more than one matching object. 1359 * 1360 * @see #getAnyObject(java.util.List, java.lang.Class) 1361 */ 1362 public <T> T getAnyObject( final Class<T> clazz ) 1363 { 1364 return this.getAnyObject( this.getAny(), clazz ); 1365 } 1366 1367 /** 1368 * Gets a list containing all objects matching a given class from the {@code any} property of the instance. 1369 * 1370 * @param clazz The class to return all instances of. 1371 * @param <T> The type of the objects to return. 1372 * 1373 * @return An unmodifiable list of all instances of {@code clazz} from the {@code any} property of the instance - 1374 * an empty list if no such objects are found. 1375 * 1376 * @throws NullPointerException if {@code clazz} is {@code null}. 1377 * 1378 * @see #getAnyObjects(java.util.List, java.lang.Class) 1379 */ 1380 public <T> java.util.List<T> getAnyObjects( final Class<T> clazz ) 1381 { 1382 return this.getAnyObjects( this.getAny(), clazz ); 1383 } 1384 1385 private static String getMessage( final Throwable t ) 1386 { 1387 return t != null 1388 ? t.getMessage() != null && t.getMessage().trim().length() > 0 1389 ? t.getMessage() 1390 : getMessage( t.getCause() ) 1391 : null; 1392 1393 } 1394 1395 private static String getMessage( final String key, final Object... arguments ) 1396 { 1397 return java.text.MessageFormat.format( java.util.ResourceBundle.getBundle( 1398 Implementation.class.getName().replace( '.', '/' ), java.util.Locale.getDefault() ). 1399 getString( key ), arguments ); 1400 1401 } 1402 1403}