Vincent Massol wrote:
> Ok. Here is my use case :
>
> <configurationFactory>
>
> <bundle id="short name1"
> [language="language1"]
> [country="Country1"]>
>
> /path/to/bundle1
>
> </bundle>
>
> </configurationFactory>
>
> In the implementation code I'd like to take one action if no
> language/country are specified and another if they are (because behind
> the scenes I need to call an API which has 2 signatures, one with a
> Locale and one without - I don't want to get the default locale and only
> use the signature that accepts a locale as this would mean I override
> the default implementation of the API I'm referring to as I would
> introduce my own logic).
The single parameter method is only a shortcut for what you are really
doing. It is not your "own" logic per se.
In your case, the ResourceBundle.getBundle(String) method is exactly the
same as:
getBundle(baseName, Locale.getDefault(), this.getClass().getClassLoader())
As it says directly in the JavaDocs. The Locale is a bit different if
you are not using the default because you have to have a language, but
can further specify it with a country or variant.
In this particular case, I might do something like this:
Locale defLocale = Locale.getDefault();
String language = conf.getAttribute("language", defLocale.getLanguage());
String country = conf.getAttribute("country", defLocale.getCountry());
Locale usedLocale = new Locale(language, country);
getBundle(baseName, usedLocale);
Ideally, you would have a static constants interface that would define your
default language/country:
interface Constants
{
String DEFAULT_LANGUAGE = Locale.getDefault().getLanguage();
String DEFAULT_COUNTRY = Locale.getDefault().getCountry();
}
> I can imagine lots of cases where you would need to verify if an
> attribute exists because you may want to do something different if it
> does than if it does not.
We would have to vote on adding the "boolean attributeExists()" method
to Configuration. It might not happen, and I am +0 on it. I'm not
going to stand in it's way, but not totally convinced it's necessary.
> Ok about immutability :)
>
> Forget about hashtable. Isn't there an ImmutableHashtable in a utility
> class anywhere that would have the same API save for the write methods ?
java.util.Collections.unmodifiableMap(Map)
And for this purpose is a hack.
--
"They that give up essential liberty to obtain a little temporary safety
deserve neither liberty nor safety."
- Benjamin Franklin
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>