org.nuiton.i18n.bundle
Class I18nBundleFactory

java.lang.Object
  extended by org.nuiton.i18n.bundle.I18nBundleFactory

public class I18nBundleFactory
extends java.lang.Object

Classe qui est responsable de la detection et construction de I18nBundle. On retrouve aussi ici des méthodes utiles de parcours de bundles.

Since:
1.0.6
Author:
chemit

Field Summary
static java.lang.String BUNDLE_DEF_LOCALES
           
static java.lang.String BUNDLES_FOR_LOCALE
           
static java.lang.String DIRECTORY_SEARCH_BUNDLE_PATTERN
           
static java.lang.String SEARCH_BUNDLE_PATTERN
          pattern to find all i18n bundles in classloader class path
static java.lang.String UNIQUE_BUNDLE_DEF
           
static java.lang.String UNIQUE_BUNDLE_ENTRY
           
protected static java.lang.String UNIQUE_BUNDLE_PATH
           
 
Constructor Summary
I18nBundleFactory()
           
 
Method Summary
protected static I18nBundle addBundle(java.lang.String bundleName, java.util.List<java.lang.String> bundleNames, java.util.List<I18nBundle> bundles)
           
protected static boolean addBundleEntry(java.net.URL url, I18nBundleScope scope, java.util.List<java.lang.String> bundleNames, java.util.List<I18nBundle> bundles)
           
static java.util.List<I18nBundle> detectBundles(java.net.URL... urls)
          Detecte les bundles i18n a partir des urls des fichiers de traduction donnes.
static I18nBundleEntry[] getBundleEntries(I18nBundle... bundles)
          Récupération de toutes les entrées de bundles pour les bundles données.
static I18nBundleEntry[] getBundleEntries(java.util.Locale l, java.util.Locale defaultLocale, boolean promuteGeneral, I18nBundle... bundles)
          Filtrage des entrées de bundles pour une locale donnée.
static I18nBundleEntry[] getBundleEntries(java.util.Locale l, java.util.Locale defaultLocale, I18nBundle... bundles)
          Filtrage des entrées de bundles pour une locale donnée.
static java.lang.String[] getBundleNames(I18nBundle... bundles)
          Récuperation des noms de bundle par un ensemble de bundles.
static I18nBundle[] getBundles(java.util.Locale l, I18nBundle... bundles)
          Filtrage des bundles qui correspondante à la locale donnée.
static java.util.Locale[] getLocales(I18nBundle... bundles)
          Récuperation de toutes les locales connus par un ensemble de bundles.
static java.net.URL[] getURLs(java.lang.String uniqueBundleName)
          Recherche la liste des url de toutes les resources i18n, i.e les urls des fichiers de traduction en mode uniqueBundleName.
static java.net.URL[] getURLs(java.net.URL... urls)
          Recherche la liste des url de toutes les resources i18n, i.e les urls des fichiers de traduction.
protected static java.util.List<java.net.URL> getURLsFromDirectory(java.net.URL incomingURL, java.io.File repository)
           
protected static java.util.List<java.net.URL> getURLsFromJar(java.net.URL incomingURL, java.io.File jarfile)
           
static boolean isEmpty(I18nBundle... bundles)
          Teste si un ensemble de bundles contient au moins une entrée.
static java.util.Properties loadUniqueNameDefFile(java.lang.String uniqueBundleName)
           
protected static I18nBundleEntry[] promuteBundle(I18nBundle bundle, java.util.Locale l, java.util.Locale defaultLocale, boolean promuteGeneral)
          Obtain some rescue entries for a given locale.
protected static void promuteFull(I18nBundle bundle, java.util.Locale locale, java.util.Locale defaultLocale, java.util.List<I18nBundleEntry> result, boolean promuteGeneral)
           
protected static void promuteGeneral(I18nBundle bundle, java.util.Locale locale, java.util.Locale defaultLocale, java.util.List<I18nBundleEntry> result)
           
protected static void promuteLanguage(I18nBundle bundle, java.util.Locale locale, java.util.Locale defaultLocale, java.util.List<I18nBundleEntry> result, boolean promuteGeneral)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SEARCH_BUNDLE_PATTERN

public static final java.lang.String SEARCH_BUNDLE_PATTERN
pattern to find all i18n bundles in classloader class path

See Also:
Constant Field Values

DIRECTORY_SEARCH_BUNDLE_PATTERN

public static final java.lang.String DIRECTORY_SEARCH_BUNDLE_PATTERN
See Also:
Constant Field Values

UNIQUE_BUNDLE_PATH

protected static java.lang.String UNIQUE_BUNDLE_PATH

UNIQUE_BUNDLE_DEF

public static java.lang.String UNIQUE_BUNDLE_DEF

UNIQUE_BUNDLE_ENTRY

public static java.lang.String UNIQUE_BUNDLE_ENTRY

BUNDLE_DEF_LOCALES

public static java.lang.String BUNDLE_DEF_LOCALES

BUNDLES_FOR_LOCALE

public static java.lang.String BUNDLES_FOR_LOCALE
Constructor Detail

I18nBundleFactory

public I18nBundleFactory()
Method Detail

getLocales

public static java.util.Locale[] getLocales(I18nBundle... bundles)
Récuperation de toutes les locales connus par un ensemble de bundles.

Parameters:
bundles - les bundles a parcourir
Returns:
la liste des locales rencontrées

getBundleNames

public static java.lang.String[] getBundleNames(I18nBundle... bundles)
Récuperation des noms de bundle par un ensemble de bundles.

Parameters:
bundles - les bundles a parcourir
Returns:
la liste des noms de bundle rencontrées

getBundles

public static I18nBundle[] getBundles(java.util.Locale l,
                                      I18nBundle... bundles)
Filtrage des bundles qui correspondante à la locale donnée.

Parameters:
l - la locale à filtrer
bundles - les bundles a parcourir
Returns:
les bundles qui correspondent à la locale donnée.

getBundleEntries

public static I18nBundleEntry[] getBundleEntries(I18nBundle... bundles)
Récupération de toutes les entrées de bundles pour les bundles données.

Parameters:
bundles - les bundles a parcourir
Returns:
toutes les entrées de bundles.

getBundleEntries

public static I18nBundleEntry[] getBundleEntries(java.util.Locale l,
                                                 java.util.Locale defaultLocale,
                                                 I18nBundle... bundles)
Filtrage des entrées de bundles pour une locale donnée. On essaye de trouver les meilleurs entrées possibles (possibilité de promotion). Note: Cette méthode doit être utilisé pour trouver toutes les entrées à charger par le système i18n pour une locale donnée. Note: Par defaut, on n'effectue pas les promotions générales (getBundleEntries(Locale, Locale, boolean, I18nBundle[])

Parameters:
l - la locale à filtrer
defaultLocale - la locale à utiliser pour les promotions
bundles - les bundles a parcourir
Returns:
les entrées de bundles filtrés.

getBundleEntries

public static I18nBundleEntry[] getBundleEntries(java.util.Locale l,
                                                 java.util.Locale defaultLocale,
                                                 boolean promuteGeneral,
                                                 I18nBundle... bundles)
Filtrage des entrées de bundles pour une locale donnée. On essaye de trouver les meilleurs entrées possibles (possibilité de promotion). Note: Cette méthode doit être utilisé pour trouver toutes les entrées à charger par le système i18n pour une locale donnée.

Parameters:
l - la locale à filtrer
defaultLocale - la locale à utiliser pour les promotions
promuteGeneral - un drapeau pour indiquer si l'on autorise le chargement de la locale par defaut si pour un bundle donne on a pas trouve de traductions pour la locale donnee.
bundles - les bundles a parcourir
Returns:
les entrées de bundles filtrés.

isEmpty

public static boolean isEmpty(I18nBundle... bundles)
Teste si un ensemble de bundles contient au moins une entrée.

Parameters:
bundles - les bundles a parcourir
Returns:
true si aucune entree trouvee, false autrement.

getURLs

public static java.net.URL[] getURLs(java.lang.String uniqueBundleName)
Recherche la liste des url de toutes les resources i18n, i.e les urls des fichiers de traduction en mode uniqueBundleName. On va d'abord rechercher un fichier /META-INF/unqiueBundleName-definition.properties Dans ce fichier il y a une entree locales qui contient les locales du bundle Ensuite pour chaque locale on recupere l'url du fichier : /META-INF/uniqueBundleName-locale.properties Exemple : fichier de définition : /META-INF/monAppli-definition.properties locales=fr_fr,es_ES fichiers de traduction /META-INF/monAppli-fr_FR.properties /META-INF/monAppli-es_ES.properties

Parameters:
uniqueBundleName - le nom de l'unique bundle a charger
Returns:
la liste des urls de bundle i18n

loadUniqueNameDefFile

public static java.util.Properties loadUniqueNameDefFile(java.lang.String uniqueBundleName)

getURLs

public static java.net.URL[] getURLs(java.net.URL... urls)
Recherche la liste des url de toutes les resources i18n, i.e les urls des fichiers de traduction.

Parameters:
urls - des urls de resources i18n deja calcule, à ajouter au resultat sans traitement particulier
Returns:
la liste des urls de bundle i18n

detectBundles

public static java.util.List<I18nBundle> detectBundles(java.net.URL... urls)
Detecte les bundles i18n a partir des urls des fichiers de traduction donnes. Tous les entrées de bundles sont triees dans l'ordre des scopes i18n.

Parameters:
urls - les urls des fichiers de traductions
Returns:
la liste des bundle i18n construits à partir des fichiers de traduction donnes.

addBundleEntry

protected static boolean addBundleEntry(java.net.URL url,
                                        I18nBundleScope scope,
                                        java.util.List<java.lang.String> bundleNames,
                                        java.util.List<I18nBundle> bundles)

addBundle

protected static I18nBundle addBundle(java.lang.String bundleName,
                                      java.util.List<java.lang.String> bundleNames,
                                      java.util.List<I18nBundle> bundles)

promuteBundle

protected static I18nBundleEntry[] promuteBundle(I18nBundle bundle,
                                                 java.util.Locale l,
                                                 java.util.Locale defaultLocale,
                                                 boolean promuteGeneral)
Obtain some rescue entries for a given locale.

Note: Calling this method implies there is no entry matched by the common method getBundleEntries(Locale, Locale, I18nBundle[]) return a empty array.

Parameters:
bundle - the bundle to promute
l - the locale required
defaultLocale - the default locale to used for promotion
promuteGeneral - a flag to authorize promotion to default locale
Returns:
the table of entries promuted for the given locale

promuteFull

protected static void promuteFull(I18nBundle bundle,
                                  java.util.Locale locale,
                                  java.util.Locale defaultLocale,
                                  java.util.List<I18nBundleEntry> result,
                                  boolean promuteGeneral)

promuteLanguage

protected static void promuteLanguage(I18nBundle bundle,
                                      java.util.Locale locale,
                                      java.util.Locale defaultLocale,
                                      java.util.List<I18nBundleEntry> result,
                                      boolean promuteGeneral)

promuteGeneral

protected static void promuteGeneral(I18nBundle bundle,
                                     java.util.Locale locale,
                                     java.util.Locale defaultLocale,
                                     java.util.List<I18nBundleEntry> result)

getURLsFromJar

protected static java.util.List<java.net.URL> getURLsFromJar(java.net.URL incomingURL,
                                                             java.io.File jarfile)

getURLsFromDirectory

protected static java.util.List<java.net.URL> getURLsFromDirectory(java.net.URL incomingURL,
                                                                   java.io.File repository)


Copyright © 2004-2009 CodeLutin. All Rights Reserved.