001 //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/tags/2.1/src/org/deegree/model/csct/units/resources/Resources.java $
002 /*
003 * SEAGIS - An OpenSource implementation of OpenGIS specification
004 * (C) 2002, Institut de Recherche pour le D�veloppement
005 *
006 * This library is free software; you can redistribute it and/or
007 * modify it under the terms of the GNU Lesser General Public
008 * License as published by the Free Software Foundation; either
009 * version 2.1 of the License, or (at your option) any later version.
010 *
011 * This library is distributed in the hope that it will be useful,
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014 * Lesser General Public License for more details.
015 *
016 * You should have received a copy of the GNU Lesser General Public
017 * License along with this library; if not, write to the Free Software
018 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
019 *
020 *
021 * Contacts:
022 * FRANCE: Surveillance de l'Environnement Assist�e par Satellite
023 * Institut de Recherche pour le D�veloppement / US-Espace
024 * mailto:seasnet@teledetection.fr
025 *
026 * CANADA: Observatoire du Saint-Laurent
027 * Institut Maurice-Lamontagne
028 * mailto:osl@osl.gc.ca
029 */
030 package org.deegree.model.csct.units.resources;
031
032 // Miscellaneous
033 import java.util.Locale;
034 import java.util.MissingResourceException;
035
036 import org.deegree.model.csct.resources.ResourceBundle;
037
038
039 /**
040 * Base class for local-dependent resources. Instances of this class should
041 * never been created directly. Use the factory method {@link #getResources}
042 * or use static methods instead.
043 *
044 * @version 1.0
045 * @author Martin Desruisseaux
046 */
047 public class Resources extends ResourceBundle
048 {
049 /**
050 * Construct a resource bundle using english language.
051 * This is the default when no resource are available
052 * in user language.
053 */
054 public Resources()
055 {
056 super(// Set 'true' in front of language to use as default.
057 false ? Resources_fr.FILEPATH :
058 true ? Resources_en.FILEPATH :
059 null);
060 }
061
062 /**
063 * Construct a resource bundle
064 * using the specified UTF8 file.
065 */
066 Resources(final String filepath)
067 {super(filepath);}
068
069 /**
070 * Returns the name of the logger to use,
071 * which is <code>javax.units</code>.
072 */
073 protected String getLoggerName()
074 {return "javax.units";}
075
076 /**
077 * Returns resources in the given locale.
078 *
079 * @param locale The locale, or <code>null</code> for the default locale.
080 * @return Resources in the given locale.
081 * @throws MissingResourceException if resources can't be found.
082 */
083 public static Resources getResources(Locale locale) throws MissingResourceException
084 {
085 if (locale==null) locale = Locale.getDefault();
086 return (Resources) getBundle(Resources.class.getName(), locale);
087 /*
088 * We rely on cache capability of {@link java.util.ResourceBundle}.
089 */
090 }
091
092 /**
093 * Gets a string for the given key from this resource bundle or one of its parents.
094 *
095 * @param key The key for the desired string.
096 * @return The string for the given key.
097 * @throws MissingResourceException If no object for the given key can be found.
098 */
099 public static String format(final int key) throws MissingResourceException
100 {return getResources(null).getString(key);}
101
102 /**
103 * Gets a string for the given key are replace all occurence of "{0}"
104 * with values of <code>arg0</code>.
105 *
106 * @param key The key for the desired string.
107 * @param arg0 Value to substitute to "{0}".
108 * @return The formatted string for the given key.
109 * @throws MissingResourceException If no object for the given key can be found.
110 */
111 public static String format(final int key, final Object arg0) throws MissingResourceException
112 {return getResources(null).getString(key, arg0);}
113
114 /**
115 * Gets a string for the given key are replace all occurence of "{0}",
116 * "{1}", with values of <code>arg0</code>, <code>arg1</code>.
117 *
118 * @param key The key for the desired string.
119 * @param arg0 Value to substitute to "{0}".
120 * @param arg1 Value to substitute to "{1}".
121 * @return The formatted string for the given key.
122 * @throws MissingResourceException If no object for the given key can be found.
123 */
124 public static String format(final int key, final Object arg0, final Object arg1) throws MissingResourceException
125 {return getResources(null).getString(key, arg0, arg1);}
126 }