View Javadoc

1   //
2   // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-2 
3   // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
4   // Any modifications to this file will be lost upon recompilation of the source schema. 
5   // Generated on: 2013.04.21 at 08:43:16 PM CEST 
6   //
7   
8   
9   package org.jomc.model;
10  
11  import javax.annotation.Generated;
12  import javax.xml.bind.annotation.XmlAccessType;
13  import javax.xml.bind.annotation.XmlAccessorType;
14  import javax.xml.bind.annotation.XmlAttribute;
15  import javax.xml.bind.annotation.XmlElement;
16  import javax.xml.bind.annotation.XmlSeeAlso;
17  import javax.xml.bind.annotation.XmlType;
18  import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
19  import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
20  import javax.xml.datatype.XMLGregorianCalendar;
21  
22  
23  /**
24   * Base model object.
25   * 
26   * <p>Java class for ModelObject complex type.
27   * 
28   * <p>The following schema fragment specifies the expected content contained within this class.
29   * 
30   * <pre>
31   * &lt;complexType name="ModelObject">
32   *   &lt;complexContent>
33   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
34   *       &lt;sequence>
35   *         &lt;element ref="{http://jomc.org/model}documentation" minOccurs="0"/>
36   *         &lt;element ref="{http://jomc.org/model}authors" minOccurs="0"/>
37   *       &lt;/sequence>
38   *       &lt;attribute name="modelVersion" type="{http://jomc.org/model}Version" default="1.2" />
39   *       &lt;attribute name="createDate" type="{http://jomc.org/model}DateTime" />
40   *       &lt;attribute name="deprecated" type="{http://jomc.org/model}Flag" default="false" />
41   *     &lt;/restriction>
42   *   &lt;/complexContent>
43   * &lt;/complexType>
44   * </pre>
45   * 
46   * 
47   */
48  @XmlAccessorType(XmlAccessType.FIELD)
49  @XmlType(name = "ModelObject", namespace = "http://jomc.org/model", propOrder = {
50      "documentation",
51      "authors"
52  })
53  @XmlSeeAlso({
54      Argument.class,
55      Module.class,
56      Implementations.class,
57      Property.class,
58      Properties.class,
59      Instances.class,
60      Persons.class,
61      Messages.class,
62      Specifications.class,
63      Message.class,
64      Person.class,
65      Authors.class,
66      Arguments.class,
67      Dependencies.class,
68      Implementation.class,
69      Specification.class,
70      Instance.class,
71      Modules.class,
72      ImplementationReference.class,
73      SpecificationReference.class,
74      MessageReference.class,
75      PropertyReference.class
76  })
77  @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-04-21T08:43:16+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
78  public class ModelObject implements Cloneable
79  {
80  
81      @XmlElement(namespace = "http://jomc.org/model")
82      @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-04-21T08:43:16+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
83      protected Texts documentation;
84      @XmlElement(namespace = "http://jomc.org/model")
85      @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-04-21T08:43:16+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
86      protected Authors authors;
87      @XmlAttribute(name = "modelVersion")
88      @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
89      @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-04-21T08:43:16+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
90      protected String modelVersion;
91      @XmlAttribute(name = "createDate")
92      @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-04-21T08:43:16+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
93      protected XMLGregorianCalendar createDate;
94      @XmlAttribute(name = "deprecated")
95      @Generated(value = "com.sun.tools.xjc.Driver", date = "2013-04-21T08:43:16+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
96      protected Boolean deprecated;
97  
98      /**
99       * 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 = "2013-04-21T08:43:16+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 = "2013-04-21T08:43:16+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 = "2013-04-21T08:43:16+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 = "2013-04-21T08:43:16+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 = "2013-04-21T08:43:16+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 = "2013-04-21T08:43:16+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 = "2013-04-21T08:43:16+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 = "2013-04-21T08:43:16+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 = "2013-04-21T08:43:16+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 = "2013-04-21T08:43:16+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 = "2013-04-21T08:43:16+02: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 }