Class I18nBundle

java.lang.Object
org.nuiton.i18n.bundle.I18nBundle
All Implemented Interfaces:
java.lang.Iterable<I18nBundleEntry>

public class I18nBundle
extends java.lang.Object
implements java.lang.Iterable<I18nBundleEntry>
Class to represent a i18n Bundle. A bundle is defined by a resource prefix (eg /tmp/bundle.properties), and a list of locale implemented entries. The property bundlePrefix is the equals order property. The property entries contains all entries defined for this bundle. The method getEntries(Locale) filter entries for a given locale, including scope inclusive property. The method getEntries(I18nBundleScope) filter entries for a given scope, with no inclusive logi. Thoses filter methods return result in the order defines in I18nBundleEntry, e.g
 XXX.properties
 XXX-fr.properties
 XXX-fr_FR.properties
 
In that way, we can load resource in the good order : load before more general scope to more specialized.
Author:
Tony Chemit - chemit@codelutin.com
See Also:
I18nBundleScope, I18nBundleEntry
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected java.lang.String bundlePrefix
    le nom du bundle encapsulé (correspond au prefix de l'url de chargement)
    protected java.util.List<I18nBundleEntry> entries
    les entrés du bundle
  • Constructor Summary

    Constructors 
    Constructor Description
    I18nBundle​(java.lang.String bundlePrefix)  
  • Method Summary

    Modifier and Type Method Description
    boolean addEntry​(I18nBundleEntry entry)  
    java.lang.String getBundlePrefix()  
    protected java.util.List<I18nBundleEntry> getEntries()  
    I18nBundleEntry[] getEntries​(java.util.Locale locale)
    Obtain the entries for a given locale, with a inclusive scope search.
    I18nBundleEntry[] getEntries​(I18nBundleScope scope)
    Obtain the entries for a given scope with no incluvie logic.
    java.util.Iterator<I18nBundleEntry> iterator()  
    protected boolean matchLocale​(java.util.Locale locale)  
    int size()  
    java.lang.String toString()  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface java.lang.Iterable

    forEach, spliterator
  • Field Details

    • entries

      protected java.util.List<I18nBundleEntry> entries
      les entrés du bundle
    • bundlePrefix

      protected final java.lang.String bundlePrefix
      le nom du bundle encapsulé (correspond au prefix de l'url de chargement)
  • Constructor Details

    • I18nBundle

      public I18nBundle​(java.lang.String bundlePrefix)
  • Method Details

    • getBundlePrefix

      public java.lang.String getBundlePrefix()
    • getEntries

      public I18nBundleEntry[] getEntries​(java.util.Locale locale)
      Obtain the entries for a given locale, with a inclusive scope search. The order of result respect I18nBundleEntry order.
      Parameters:
      locale - the required locale
      Returns:
      the array of entries matching extacly the locale or one of the lesser scope one.
    • getEntries

      public I18nBundleEntry[] getEntries​(I18nBundleScope scope)
      Obtain the entries for a given scope with no incluvie logic. The order of result respect I18nBundleEntry order.
      Parameters:
      scope - the required scope
      Returns:
      the list of entries matching exactly the given scope
    • size

      public int size()
      Returns:
      number of entries in bundle
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object
    • getEntries

      protected java.util.List<I18nBundleEntry> getEntries()
    • matchLocale

      protected boolean matchLocale​(java.util.Locale locale)
    • addEntry

      public boolean addEntry​(I18nBundleEntry entry)
    • iterator

      public java.util.Iterator<I18nBundleEntry> iterator()
      Specified by:
      iterator in interface java.lang.Iterable<I18nBundleEntry>