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.03.14 at 10:22:27 AM CET 
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     * &lt;complexType name="ModelObject">
032     *   &lt;complexContent>
033     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
034     *       &lt;sequence>
035     *         &lt;element ref="{http://jomc.org/model}documentation" minOccurs="0"/>
036     *         &lt;element ref="{http://jomc.org/model}authors" minOccurs="0"/>
037     *       &lt;/sequence>
038     *       &lt;attribute name="modelVersion" type="{http://jomc.org/model}Version" default="1.2" />
039     *       &lt;attribute name="createDate" type="{http://jomc.org/model}DateTime" />
040     *       &lt;attribute name="deprecated" type="{http://jomc.org/model}Flag" default="false" />
041     *     &lt;/restriction>
042     *   &lt;/complexContent>
043     * &lt;/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-03-14T10:22:27+01: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-03-14T10:22:27+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
083        protected Texts documentation;
084        @XmlElement(namespace = "http://jomc.org/model")
085        @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-03-14T10:22:27+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
086        protected Authors authors;
087        @XmlAttribute(name = "modelVersion")
088        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
089        @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-03-14T10:22:27+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
090        protected String modelVersion;
091        @XmlAttribute(name = "createDate")
092        @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-03-14T10:22:27+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
093        protected XMLGregorianCalendar createDate;
094        @XmlAttribute(name = "deprecated")
095        @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-03-14T10:22:27+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
096        protected Boolean deprecated;
097    
098        /**
099         * Creates a new {@code ModelObject} instance.
100         * 
101         */
102        public ModelObject() {
103            // CC-XJC Version 2.0 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-03-14T10:22:27+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
143        public Texts getDocumentation() {
144            return documentation;
145        }
146    
147        /**
148         * Sets the value of the documentation property.
149         * 
150         * @param value
151         *     allowed object is
152         *     {@link Texts }
153         *     
154         */
155        @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-03-14T10:22:27+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
156        public void setDocumentation(Texts value) {
157            this.documentation = value;
158        }
159    
160        /**
161         * Authors of this object or {@code null}.
162         * 
163         * @return
164         *     possible object is
165         *     {@link Authors }
166         *     
167         */
168        @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-03-14T10:22:27+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
169        public Authors getAuthors() {
170            return authors;
171        }
172    
173        /**
174         * Sets the value of the authors property.
175         * 
176         * @param value
177         *     allowed object is
178         *     {@link Authors }
179         *     
180         */
181        @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-03-14T10:22:27+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
182        public void setAuthors(Authors value) {
183            this.authors = value;
184        }
185    
186        /**
187         * Model version of this object.
188         * 
189         * @return
190         *     possible object is
191         *     {@link String }
192         *     
193         */
194        @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-03-14T10:22:27+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
195        public String getModelVersion() {
196            if (modelVersion == null) {
197                return "1.2";
198            } else {
199                return modelVersion;
200            }
201        }
202    
203        /**
204         * Sets the value of the modelVersion property.
205         * 
206         * @param value
207         *     allowed object is
208         *     {@link String }
209         *     
210         */
211        @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-03-14T10:22:27+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
212        public void setModelVersion(String value) {
213            this.modelVersion = value;
214        }
215    
216        /**
217         * The date this object got created or {@code null}.
218         * 
219         * @return
220         *     possible object is
221         *     {@link XMLGregorianCalendar }
222         *     
223         */
224        @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-03-14T10:22:27+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
225        public XMLGregorianCalendar getCreateDate() {
226            return createDate;
227        }
228    
229        /**
230         * Sets the value of the createDate property.
231         * 
232         * @param value
233         *     allowed object is
234         *     {@link XMLGregorianCalendar }
235         *     
236         */
237        @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-03-14T10:22:27+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
238        public void setCreateDate(XMLGregorianCalendar value) {
239            this.createDate = value;
240        }
241    
242        /**
243         * {@code true}, if this object is deprecated.
244         * 
245         * @return
246         *     possible object is
247         *     {@link Boolean }
248         *     
249         */
250        @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-03-14T10:22:27+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
251        public boolean isDeprecated() {
252            if (deprecated == null) {
253                return false;
254            } else {
255                return deprecated;
256            }
257        }
258    
259        /**
260         * Sets the value of the deprecated property.
261         * 
262         * @param value
263         *     allowed object is
264         *     {@link Boolean }
265         *     
266         */
267        @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-03-14T10:22:27+01:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
268        public void setDeprecated(Boolean value) {
269            this.deprecated = value;
270        }
271    
272        /**
273         * Creates and returns a deep copy of this object.
274         * 
275         * 
276         * @return
277         *     A deep copy of this object.
278         */
279        @Override
280        @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-03-14T10:22:27+01: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    }