diff options
| author | gregor <gregor@d688527b-c9ab-4aba-bd8d-4036d912da1d> | 2003-07-07 10:58:37 +0000 | 
|---|---|---|
| committer | gregor <gregor@d688527b-c9ab-4aba-bd8d-4036d912da1d> | 2003-07-07 10:58:37 +0000 | 
| commit | ece7d18cf35374bf4e26d041799cda8f791c89f8 (patch) | |
| tree | 33707cb77627b65a2a4e7327a2e93fb7751c1b76 /common/src/at/gv/egovernment/moa/util/ResourceBundleChain.java | |
| parent | 273aed93c03b18a6c6bb1af745ae46a13ad3c7f2 (diff) | |
| download | moa-id-spss-ece7d18cf35374bf4e26d041799cda8f791c89f8.tar.gz moa-id-spss-ece7d18cf35374bf4e26d041799cda8f791c89f8.tar.bz2 moa-id-spss-ece7d18cf35374bf4e26d041799cda8f791c89f8.zip | |
Initial commit
git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@2 d688527b-c9ab-4aba-bd8d-4036d912da1d
Diffstat (limited to 'common/src/at/gv/egovernment/moa/util/ResourceBundleChain.java')
| -rw-r--r-- | common/src/at/gv/egovernment/moa/util/ResourceBundleChain.java | 66 | 
1 files changed, 66 insertions, 0 deletions
| diff --git a/common/src/at/gv/egovernment/moa/util/ResourceBundleChain.java b/common/src/at/gv/egovernment/moa/util/ResourceBundleChain.java new file mode 100644 index 000000000..90b28548a --- /dev/null +++ b/common/src/at/gv/egovernment/moa/util/ResourceBundleChain.java @@ -0,0 +1,66 @@ +package at.gv.egovernment.moa.util; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +/** + * A class to chain <code>ResourceBundle</code>s. + *  + * @author Patrick Peck + * @version $Id$ + */ +public class ResourceBundleChain { +  /** Error message indicating the resource is not available. */ +  private static final String ERROR_MISSING_RESOURCE = "Missing resource"; +  /** The <code>ResourceBundle</code>s contained in this chain. */ +  private List resourceBundles = new ArrayList(); + +  /** +   * Add a <code>ResourceBundle</code> to the chain. +   *  +   * @param resourceBundle The <code>ResourceBundle</code> to add. +   */ +  public void addResourceBundle(ResourceBundle resourceBundle) { +    resourceBundles.add(resourceBundle); +  } + +  /** +   * Return the value of the resource. +   *  +   * @param key The key to access the <code>String</code> resource. +   * @return The resource value. All the registered <code>ResourceBundle</code>s +   * are searched in the order in which they have previously been added to this +   * <code>ResourceBundleChain</code>. +   * @throws MissingResourceException The resource coult not be found in any of +   * the bundles. +   */ +  public String getString(String key) throws MissingResourceException { +    MissingResourceException lastException = null; +    Iterator iter; + +    // handle case where no resource bundles have been added +    if (resourceBundles.size() == 0) { +      throw new MissingResourceException( +        ERROR_MISSING_RESOURCE, +        this.getClass().getName(), +        key); +    } + +    // try to find the resource in one of the bundles; if it cannot be found, +    // return the exception thrown by the last bundle in the list +    for (iter = resourceBundles.iterator(); iter.hasNext();) { +      ResourceBundle resourceBundle = (ResourceBundle) iter.next(); +      try { +        String value = resourceBundle.getString(key); +        return value; +      } catch (MissingResourceException e) { +        lastException = e; +      } +    } +    throw lastException; +  } + +} | 
