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: 2012.04.26 at 04:53:34 AM CEST
006 //
007
008
009 package org.jomc.model;
010
011 import javax.annotation.Generated;
012 import javax.xml.bind.annotation.XmlAccessType;
013 import javax.xml.bind.annotation.XmlAccessorType;
014 import javax.xml.bind.annotation.XmlAttribute;
015 import javax.xml.bind.annotation.XmlElement;
016 import javax.xml.bind.annotation.XmlSeeAlso;
017 import javax.xml.bind.annotation.XmlType;
018 import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
019 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
020 import 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 = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
078 public class ModelObject implements Cloneable
079 {
080
081 @XmlElement(namespace = "http://jomc.org/model")
082 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-26T04:53:34+02: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 = "2012-04-26T04:53:34+02: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 = "2012-04-26T04:53:34+02: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 = "2012-04-26T04:53:34+02: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 = "2012-04-26T04:53:34+02: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 Build 2011-09-16T18:27:24+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 Build 2011-09-16T18:27:24+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 = "2012-04-26T04:53:34+02: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 = "2012-04-26T04:53:34+02: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 = "2012-04-26T04:53:34+02: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 = "2012-04-26T04:53:34+02: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 = "2012-04-26T04:53:34+02: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 = "2012-04-26T04:53:34+02: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 = "2012-04-26T04:53:34+02: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 = "2012-04-26T04:53:34+02: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 = "2012-04-26T04:53:34+02: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 = "2012-04-26T04:53:34+02: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 = "2012-04-26T04:53:34+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
281 public ModelObject clone() {
282 try {
283 {
284 // CC-XJC Version 2.0 Build 2011-09-16T18:27:24+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 }