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: 2015.05.31 at 11:45:27 PM CEST 
006//
007
008
009package org.jomc.model;
010
011import javax.annotation.Generated;
012import javax.xml.bind.annotation.XmlAccessType;
013import javax.xml.bind.annotation.XmlAccessorType;
014import javax.xml.bind.annotation.XmlAttribute;
015import javax.xml.bind.annotation.XmlElement;
016import javax.xml.bind.annotation.XmlSeeAlso;
017import javax.xml.bind.annotation.XmlType;
018import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
019import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
020import javax.xml.datatype.XMLGregorianCalendar;
021
022
023/**
024 * Base model object.
025 * 
026 * <p>Java class for ModelObject complex type.
027 * 
028 * <p>The following schema fragment specifies the expected content contained within this class.
029 * 
030 * <pre>
031 * &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 = "2015-05-31T11:45:26+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
078public class ModelObject implements Cloneable
079{
080
081    @XmlElement(namespace = "http://jomc.org/model")
082    @Generated(value = "com.sun.tools.xjc.Driver", date = "2015-05-31T11:45:26+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 = "2015-05-31T11:45:26+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 = "2015-05-31T11:45:26+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 = "2015-05-31T11:45:26+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 = "2015-05-31T11:45:26+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.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 = "2015-05-31T11:45:26+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 = "2015-05-31T11:45:26+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 = "2015-05-31T11:45:26+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 = "2015-05-31T11:45:26+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 = "2015-05-31T11:45:26+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 = "2015-05-31T11:45:26+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 = "2015-05-31T11:45:26+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 = "2015-05-31T11:45:26+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 = "2015-05-31T11:45:26+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 = "2015-05-31T11:45:26+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 = "2015-05-31T11:45:26+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}