[Schmitzm-commits] r874 - trunk/src/schmitzm/lang

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Fri May 28 17:13:06 CEST 2010


Author: alfonx
Date: 2010-05-28 17:13:05 +0200 (Fri, 28 May 2010)
New Revision: 874

Modified:
   trunk/src/schmitzm/lang/ResourceProvider.java
Log:


Modified: trunk/src/schmitzm/lang/ResourceProvider.java
===================================================================
--- trunk/src/schmitzm/lang/ResourceProvider.java	2010-05-28 14:58:16 UTC (rev 873)
+++ trunk/src/schmitzm/lang/ResourceProvider.java	2010-05-28 15:13:05 UTC (rev 874)
@@ -47,523 +47,659 @@
 import schmitzm.jfree.JFreeChartUtil;
 
 /**
- * Stellt den Zugriff auf ein {@link ResourceBundle} zur Verfuegung.
- * Hierbei muss der Name (Pfad) ein standard-maessig verwendeten Bundles
- * angebenen werden. Es besteht die Moeglichkeit, dass fehlende Ressourcen
- * nicht mit einer {@link MissingResourceException} behandelt werden, sondern
- * mit <code>null</code>, bzw. einem Alternativ-String ignoriert werden.<br>
+ * Stellt den Zugriff auf ein {@link ResourceBundle} zur Verfuegung. Hierbei
+ * muss der Name (Pfad) ein standard-maessig verwendeten Bundles angebenen
+ * werden. Es besteht die Moeglichkeit, dass fehlende Ressourcen nicht mit einer
+ * {@link MissingResourceException} behandelt werden, sondern mit
+ * <code>null</code>, bzw. einem Alternativ-String ignoriert werden.<br>
  * Zudem erlaubt es der {@code ResourceProvider}, dass ein alternatives
- * Resource-Bundle spezifiziert wird ({@link #resetResourceBundle(String,String) resetResourceBundle(..)}).
- * Ist dieses gesetzt, wird primaer darin nach einer Ressource gesucht. Nur wenn
+ * Resource-Bundle spezifiziert wird (
+ * {@link #resetResourceBundle(String,String) resetResourceBundle(..)}). Ist
+ * dieses gesetzt, wird primaer darin nach einer Ressource gesucht. Nur wenn
  * dort die Ressource nicht gefunden wird, wird auf das Standard-Bundle
  * zurueckgegriffen.<br>
  * <br>
  * <b>Anwendungsbereich:</b><br>
- * Diverse Standard-Libraries stellen jeweils einen eigenen {@link ResourceProvider}
- * zur Verfuegung, dessen Bundle im Pfad des Standard-Library hinterlegt ist (z.B.
- * {@link JFreeChartUtil#RESOURCE}: Ressourcen hinterlegt in
- * {@code schmitzm.jfree.ResourceBundle_XXX.properties}).<br>
+ * Diverse Standard-Libraries stellen jeweils einen eigenen
+ * {@link ResourceProvider} zur Verfuegung, dessen Bundle im Pfad des
+ * Standard-Library hinterlegt ist (z.B. {@link JFreeChartUtil#RESOURCE}:
+ * Ressourcen hinterlegt in {@code schmitzm.jfree.ResourceBundle_XXX.properties}
+ * ).<br>
  * Sollen fuer eine spezielle Applikation diese Ressourcen (u.U. nur teilweise)
- * abgeaendert oder fuer eine neue Sprache erweitert werden, kann dies geschehen,
- * ohne Zugriff auf die Standard-Library zu haben. Die Applikation kann
- * einfach {@link #resetResourceBundle(String,String) resetResourceBundle(..)}
- * aufrufen und so den Resource-Provider anweisen, zunaechst ein applikationsspezifisches
- * Bundle zu verwenden (welches in einem appl.spez. Pfad hinterlegt ist).
- * Alle Library-internen Zugriffe werden durch den {@code ResourceProvider}
- * umgelenkt. Wenn das appl.spez. Bundle eine Ressource nicht zur Verfuegung stellt,
- * wird automatisch auf das Standard-Bundle zurueck gegriffen.
- * @author <a href="mailto:Martin.Schmitz at koeln.de">Martin Schmitz</a> (University of Bonn/Germany)
+ * abgeaendert oder fuer eine neue Sprache erweitert werden, kann dies
+ * geschehen, ohne Zugriff auf die Standard-Library zu haben. Die Applikation
+ * kann einfach {@link #resetResourceBundle(String,String)
+ * resetResourceBundle(..)} aufrufen und so den Resource-Provider anweisen,
+ * zunaechst ein applikationsspezifisches Bundle zu verwenden (welches in einem
+ * appl.spez. Pfad hinterlegt ist). Alle Library-internen Zugriffe werden durch
+ * den {@code ResourceProvider} umgelenkt. Wenn das appl.spez. Bundle eine
+ * Ressource nicht zur Verfuegung stellt, wird automatisch auf das
+ * Standard-Bundle zurueck gegriffen.
+ * 
+ * @author <a href="mailto:Martin.Schmitz at koeln.de">Martin Schmitz</a>
+ *         (University of Bonn/Germany)
  * @version 1.0
  */
 public class ResourceProvider {
-  /** Enthaelt automatisch alle erzeugten {@link ResourceProvider}. Wird im
-   *  Konstruktor von {@link ResourceProvider} automatisch befuellt.<br>
-   *  TODO: private machen und ordentliche getter und setter implementieren! */
-  public static final SortableVector<ResourceProvider> RESOURCE_BUNDLES = new SortableVector<ResourceProvider>();
-  
-	private static final Logger LOGGER = Logger.getLogger(ResourceProvider.class.getSimpleName());
-	
-	/** Diese String constante wird zurückgeliefert, wenn keine Wert fuer den
-	 * Schluessel gefunden wurde. */
+	/**
+	 * Enthaelt automatisch alle erzeugten {@link ResourceProvider}. Wird im
+	 * Konstruktor von {@link ResourceProvider} automatisch befuellt.<br>
+	 * TODO: private machen und ordentliche getter und setter implementieren!
+	 */
+	public static final SortableVector<ResourceProvider> RESOURCE_BUNDLES = new SortableVector<ResourceProvider>();
+
+	private static final Logger LOGGER = Logger
+			.getLogger(ResourceProvider.class.getSimpleName());
+
+	/**
+	 * Diese String constante wird zurückgeliefert, wenn keine Wert fuer den
+	 * Schluessel gefunden wurde.
+	 */
 	public static final String MISSING_RESOURCE_STRING = "???";
 
-  /** Standard-Resource-Bundle, auf das zurueckgegriffen wird, wenn
-   *  Ressource im aktuell gesetzten Bundle nicht gefunden wird. */
-  private String defaultResourceBundle = null;
-  /** Alternatives Resource-Bundle, in dem zuerst nach einer
-   *  Ressource gesucht wird. */
-  private String resourceBundle = defaultResourceBundle;
-  /** Prefix, das beim Suchen im alternativen Resource-Bundle jedem Key
-   *  vorangestellt wird. */
-  private String keyPrefix = "";
-  /** Flag, ob fehlende Ressourcen ignoriert werden, oder mit einer
-   *  {@link MissingResourceException} behandelt werden. */
-  private boolean ignoreMissingResource = false;
-  /** Wenn fehlende Ressourcen ignoriert werden, liefert {@link #getObject(String)}
-   *  den Wert {@code null}. {@link #getString(String)} liefert den in dieser
-   *  Variable hinterlegten Alternativ-String. */
-  private String  missingResourceString = null;
-  /** Sprache, die durch das Root-Bundle (Fallback-Bundle) dargestellt wird.
-   *  Nur zu Informationszwecken! */
-  private Locale rootLocale = null;
+	/**
+	 * Standard-Resource-Bundle, auf das zurueckgegriffen wird, wenn Ressource
+	 * im aktuell gesetzten Bundle nicht gefunden wird.
+	 */
+	private String defaultResourceBundle = null;
+	/**
+	 * Alternatives Resource-Bundle, in dem zuerst nach einer Ressource gesucht
+	 * wird.
+	 */
+	private String resourceBundle = defaultResourceBundle;
+	/**
+	 * Prefix, das beim Suchen im alternativen Resource-Bundle jedem Key
+	 * vorangestellt wird.
+	 */
+	private String keyPrefix = "";
+	/**
+	 * Flag, ob fehlende Ressourcen ignoriert werden, oder mit einer
+	 * {@link MissingResourceException} behandelt werden.
+	 */
+	private boolean ignoreMissingResource = false;
+	/**
+	 * Wenn fehlende Ressourcen ignoriert werden, liefert
+	 * {@link #getObject(String)} den Wert {@code null}.
+	 * {@link #getString(String)} liefert den in dieser Variable hinterlegten
+	 * Alternativ-String.
+	 */
+	private String missingResourceString = null;
+	/**
+	 * Sprache, die durch das Root-Bundle (Fallback-Bundle) dargestellt wird.
+	 * Nur zu Informationszwecken!
+	 */
+	private Locale rootLocale = null;
 
-  /**
-   * Erzeugt neuen Resource-Provider mit dem Namen "ResourceBundle".
-   * Fehlende Ressourcen werden ignoriert und mit {@code null} oder MISSING_RESOURCE_STRING ("???")
-   * als Alternativ-String behandelt.
-   * @param defaultResourceBundle Name des Standard Resource-Bundle
-   * @param rootLocale Sprache des Root-Bundles
-   */
-  public ResourceProvider(Class clazz, Locale rootLocale) {
-    this(clazz, rootLocale, true);
-  }
+	/**
+	 * Erzeugt neuen Resource-Provider mit dem Namen "ResourceBundle". Fehlende
+	 * Ressourcen werden ignoriert und mit {@code null} oder
+	 * MISSING_RESOURCE_STRING ("???") als Alternativ-String behandelt.
+	 * 
+	 * @param defaultResourceBundle
+	 *            Name des Standard Resource-Bundle
+	 * @param rootLocale
+	 *            Sprache des Root-Bundles
+	 */
+	public ResourceProvider(Class clazz, Locale rootLocale) {
+		this(clazz, rootLocale, true);
+	}
 
-  /**
-   * Erzeugt neuen Resource-Provider mit dem Namen "ResourceBundle".
-   * Wenn fehlende Ressourcen ignoriert werden, wird MISSING_RESOURCE_STRING ("???") als Alternativ-String
-   * verwendet.
-   * @param clazz                 Bestimmt das Package in dem das Bundle "RessourceBundle"
-   *                              gesucht wird
-   * @param rootLocale            Sprache des Root-Bundles
-   * @param ignoreMissingResource bestimmt, ob fehlende Ressourcen ignoriert werden
-   *                              oder mit einer {@link MissingResourceException}
-   *                              behandelt werden
-   */
-  public ResourceProvider(Class clazz, Locale rootLocale, boolean ignoreMissingResource) {
-    this(clazz,rootLocale,ignoreMissingResource,MISSING_RESOURCE_STRING);
-  }
+	/**
+	 * Erzeugt neuen Resource-Provider mit dem Namen "ResourceBundle". Wenn
+	 * fehlende Ressourcen ignoriert werden, wird MISSING_RESOURCE_STRING
+	 * ("???") als Alternativ-String verwendet.
+	 * 
+	 * @param clazz
+	 *            Bestimmt das Package in dem das Bundle "RessourceBundle"
+	 *            gesucht wird
+	 * @param rootLocale
+	 *            Sprache des Root-Bundles
+	 * @param ignoreMissingResource
+	 *            bestimmt, ob fehlende Ressourcen ignoriert werden oder mit
+	 *            einer {@link MissingResourceException} behandelt werden
+	 */
+	public ResourceProvider(Class clazz, Locale rootLocale,
+			boolean ignoreMissingResource) {
+		this(clazz, rootLocale, ignoreMissingResource, MISSING_RESOURCE_STRING);
+	}
 
-  /**
-   * Erzeugt neuen Resource-Provider mit dem Namen "ResourceBundle".
-   * @param clazz                 Bestimmt das Package in dem das Bundle "RessourceBundle"
-   *                              gesucht wird
-   * @param rootLocale            Sprache des Root-Bundles
-   * @param ignoreMissingResource bestimmt, ob fehlende Ressourcen ignoriert werden
-   *                              oder mit einer {@link MissingResourceException}
-   *                              behandelt werden
-   * @param missingResourceString Alternativ-String der - wenn fehlende Ressourcen
-   *                              ignoriert werden - von {@link #getString(String)}
-   *                              zurueckgegeben wird
-   */
-  public ResourceProvider(Class clazz, Locale rootLocale, boolean ignoreMissingResource, String missingResourceString) {
-    this(clazz.getPackage().getName()+".ResourceBundle",rootLocale,ignoreMissingResource,missingResourceString);
-  }
+	/**
+	 * Erzeugt neuen Resource-Provider mit dem Namen "ResourceBundle".
+	 * 
+	 * @param clazz
+	 *            Bestimmt das Package in dem das Bundle "RessourceBundle"
+	 *            gesucht wird
+	 * @param rootLocale
+	 *            Sprache des Root-Bundles
+	 * @param ignoreMissingResource
+	 *            bestimmt, ob fehlende Ressourcen ignoriert werden oder mit
+	 *            einer {@link MissingResourceException} behandelt werden
+	 * @param missingResourceString
+	 *            Alternativ-String der - wenn fehlende Ressourcen ignoriert
+	 *            werden - von {@link #getString(String)} zurueckgegeben wird
+	 */
+	public ResourceProvider(Class clazz, Locale rootLocale,
+			boolean ignoreMissingResource, String missingResourceString) {
+		this(clazz.getPackage().getName() + ".ResourceBundle", rootLocale,
+				ignoreMissingResource, missingResourceString);
+	}
 
-  /**
-   * Erzeugt neuen Resource-Provider.
-   * Fehlende Ressourcen werden ignoriert und mit {@code null} oder MISSING_RESOURCE_STRING ("???")
-   * als Alternativ-String behandelt.
-   * @param defaultResourceBundle Name des Standard Resource-Bundle
-   * @param rootLocale            Sprache des Root-Bundles
-   */
-  public ResourceProvider(String defaultResourceBundle, Locale rootLocale) {
-    this(defaultResourceBundle,rootLocale,true);
-  }
+	/**
+	 * Erzeugt neuen Resource-Provider. Fehlende Ressourcen werden ignoriert und
+	 * mit {@code null} oder MISSING_RESOURCE_STRING ("???") als
+	 * Alternativ-String behandelt.
+	 * 
+	 * @param defaultResourceBundle
+	 *            Name des Standard Resource-Bundle
+	 * @param rootLocale
+	 *            Sprache des Root-Bundles
+	 */
+	public ResourceProvider(String defaultResourceBundle, Locale rootLocale) {
+		this(defaultResourceBundle, rootLocale, true);
+	}
 
-  /**
-   * Erzeugt neuen Resource-Provider. Wenn fehlende Ressourcen
-   * ignoriert werden, wird MISSING_RESOURCE_STRING ("???") als Alternativ-String verwendet.
-   * @param defaultResourceBundle Name des Standard Resource-Bundle
-   * @param rootLocale            Sprache des Root-Bundles
-   * @param ignoreMissingResource bestimmt, ob fehlende Ressourcen ignoriert werden
-   *                              oder mit einer {@link MissingResourceException}
-   *                              behandelt werden
-   */
-  public ResourceProvider(String defaultResourceBundle, Locale rootLocale, boolean ignoreMissingResource) {
-    this(defaultResourceBundle,rootLocale,ignoreMissingResource,MISSING_RESOURCE_STRING);
-  }
+	/**
+	 * Erzeugt neuen Resource-Provider. Wenn fehlende Ressourcen ignoriert
+	 * werden, wird MISSING_RESOURCE_STRING ("???") als Alternativ-String
+	 * verwendet.
+	 * 
+	 * @param defaultResourceBundle
+	 *            Name des Standard Resource-Bundle
+	 * @param rootLocale
+	 *            Sprache des Root-Bundles
+	 * @param ignoreMissingResource
+	 *            bestimmt, ob fehlende Ressourcen ignoriert werden oder mit
+	 *            einer {@link MissingResourceException} behandelt werden
+	 */
+	public ResourceProvider(String defaultResourceBundle, Locale rootLocale,
+			boolean ignoreMissingResource) {
+		this(defaultResourceBundle, rootLocale, ignoreMissingResource,
+				MISSING_RESOURCE_STRING);
+	}
 
-  /**
-   * Erzeugt neuen Resource-Provider.
-   * @param defaultResourceBundle Name des Standard Resource-Bundle
-   * @param rootLocale            Sprache des Root-Bundles
-   * @param ignoreMissingResource bestimmt, ob fehlende Ressourcen ignoriert werden
-   *                              oder mit einer {@link MissingResourceException}
-   *                              behandelt werden
-   * @param missingResourceString Alternativ-String der - wenn fehlende Ressourcen
-   *                              ignoriert werden - von {@link #getString(String)}
-   *                              zurueckgegeben wird
-   */
-  public ResourceProvider(String defaultResourceBundle, Locale rootLocale, boolean ignoreMissingResource, String missingResourceString) {
-    this.defaultResourceBundle = defaultResourceBundle;
-    this.rootLocale            = rootLocale;
-    this.resourceBundle        = null;
-    this.ignoreMissingResource = ignoreMissingResource;
-    this.missingResourceString = missingResourceString;
-    // Registrieren des neuen ResourceProvider
-    RESOURCE_BUNDLES.add(this);
-  }
+	/**
+	 * Erzeugt neuen Resource-Provider.
+	 * 
+	 * @param defaultResourceBundle
+	 *            Name des Standard Resource-Bundle
+	 * @param rootLocale
+	 *            Sprache des Root-Bundles
+	 * @param ignoreMissingResource
+	 *            bestimmt, ob fehlende Ressourcen ignoriert werden oder mit
+	 *            einer {@link MissingResourceException} behandelt werden
+	 * @param missingResourceString
+	 *            Alternativ-String der - wenn fehlende Ressourcen ignoriert
+	 *            werden - von {@link #getString(String)} zurueckgegeben wird
+	 */
+	public ResourceProvider(String defaultResourceBundle, Locale rootLocale,
+			boolean ignoreMissingResource, String missingResourceString) {
+		this.defaultResourceBundle = defaultResourceBundle;
+		this.rootLocale = rootLocale;
+		this.resourceBundle = null;
+		this.ignoreMissingResource = ignoreMissingResource;
+		this.missingResourceString = missingResourceString;
+		// Registrieren des neuen ResourceProvider
+		RESOURCE_BUNDLES.add(this);
+	}
 
-  /**
-   * Liefert den Namen des Bundles.
-   * @see #getBundleName()
-   */
-  public String toString() {
-    return getBundleName();
-  }
+	/**
+	 * Liefert den Namen des Bundles.
+	 * 
+	 * @see #getBundleName()
+	 */
+	public String toString() {
+		return getBundleName();
+	}
 
-  /**
-   * Liefert alle Keys unter denen eine Ressource hinterlegt ist.
-   */
-  public SortedSet<String> getKeys() {
-    String prefix = (keyPrefix != null) ? keyPrefix.trim() : "";
-    if ( !keyPrefix.equals("") )
-      prefix += ".";
+	/**
+	 * Liefert alle Keys unter denen eine Ressource hinterlegt ist.
+	 */
+	public SortedSet<String> getKeys() {
+		String prefix = (keyPrefix != null) ? keyPrefix.trim() : "";
+		if (!keyPrefix.equals(""))
+			prefix += ".";
 
-    final SortedSet<String> keys = new TreeSet<String>();
-    // Alle Keys aus dem Alternativ-Bundle in die Key-Menge aufnehmen, die
-    // mit dem Preafix beginnen
-    try {
-      if ( resourceBundle != null )
-        for ( final String key : ResourceBundle.getBundle(resourceBundle).keySet() )
-          if ( key.startsWith(prefix) )
-            keys.add( key.substring(prefix.length()) );
-    } catch (final MissingResourceException err) {
-      // Es gibt kein Root-Bundle fuer das Alternativ-Bundle
-      // --> Keys im Alternativ-Bundle ignorieren
-    }
-    // Alle Keys aus dem Standard-Bundle um das Praefix erweitern un
-    // in die Key-Menge aufnehmen
-    for ( final String key : ResourceBundle.getBundle(defaultResourceBundle).keySet() )
-      keys.add(key);
+		final SortedSet<String> keys = new TreeSet<String>();
+		// Alle Keys aus dem Alternativ-Bundle in die Key-Menge aufnehmen, die
+		// mit dem Preafix beginnen
+		try {
+			if (resourceBundle != null)
+				for (final String key : ResourceBundle
+						.getBundle(resourceBundle).keySet())
+					if (key.startsWith(prefix))
+						keys.add(key.substring(prefix.length()));
+		} catch (final MissingResourceException err) {
+			// Es gibt kein Root-Bundle fuer das Alternativ-Bundle
+			// --> Keys im Alternativ-Bundle ignorieren
+		}
+		// Alle Keys aus dem Standard-Bundle um das Praefix erweitern un
+		// in die Key-Menge aufnehmen
+		for (final String key : ResourceBundle.getBundle(defaultResourceBundle)
+				.keySet())
+			keys.add(key);
 
-    return keys;
-  }
+		return keys;
+	}
 
-  /**
-   * Prueft, ob fehlende Ressourcen ignoriert werden (mit {@code null} oder
-   * Alternativ-String) oder ob eine {@link MissingResourceException}
-   * geworfen wird.
-   */
-  public boolean isMissingResourceIgnored() {
-    return ignoreMissingResource;
-  }
+	/**
+	 * Prueft, ob fehlende Ressourcen ignoriert werden (mit {@code null} oder
+	 * Alternativ-String) oder ob eine {@link MissingResourceException} geworfen
+	 * wird.
+	 */
+	public boolean isMissingResourceIgnored() {
+		return ignoreMissingResource;
+	}
 
-  /**
-   * Bestimmt, ob fehlende Ressourcen ignoriert werden (mit {@code null} oder
-   * Alternativ-String) oder ob eine {@link MissingResourceException}
-   * geworfen wird.
-   */
-  public void setIgnoreMissingResource(boolean ignoreMissingResource) {
-    this.ignoreMissingResource = ignoreMissingResource;
-  }
+	/**
+	 * Bestimmt, ob fehlende Ressourcen ignoriert werden (mit {@code null} oder
+	 * Alternativ-String) oder ob eine {@link MissingResourceException} geworfen
+	 * wird.
+	 */
+	public void setIgnoreMissingResource(boolean ignoreMissingResource) {
+		this.ignoreMissingResource = ignoreMissingResource;
+	}
 
-  /**
-   * Liefert den Alternativ-String, der beim Ignorieren fehlender
-   * Ressourcen von {@link getString(String)} zurueckgegeben wird.
-   */
-  public String getMissingResourceString() {
-    return missingResourceString;
-  }
+	/**
+	 * Liefert den Alternativ-String, der beim Ignorieren fehlender Ressourcen
+	 * von {@link getString(String)} zurueckgegeben wird.
+	 */
+	public String getMissingResourceString() {
+		return missingResourceString;
+	}
 
-  /**
-   * Setzt den Alternativ-String, der beim Ignorieren fehlender
-   * Ressourcen von {@link getString(String)} zurueckgegeben wird.
-   */
-  public void setMissingResourceString(String missingResourceString) {
-    this.missingResourceString = missingResourceString;
-  }
+	/**
+	 * Setzt den Alternativ-String, der beim Ignorieren fehlender Ressourcen von
+	 * {@link getString(String)} zurueckgegeben wird.
+	 */
+	public void setMissingResourceString(String missingResourceString) {
+		this.missingResourceString = missingResourceString;
+	}
 
-  /**
-   * Liefert ein Objekt aus dem Resource-Bundle. Wenn gesetzt, wird zunaechst im
-   * alternativen Bundle (ggf. mit Prefix) gesucht. Wenn die Ressource dort
-   * nicht gefunden wird, wird auf das Standard-Bundle zurueckgegriffen.
-   * Wenn die Suche (auch) dort nicht erfolgreich ist, wird je nach Einstellung
-   * eine {@link MissingResourceException} geworfen oder {@code null} zurueck
-   * gegeben.
-   * @param key Key unter dem der String gesucht wird
-   */
-  public Object getObject(String key) {
-	  return getObject(key, null);
-//    String primaryBundle = null;
-//    String prefix        = "";
-//    // Wenn gesetzt, dann das alternative Bundle (mit Key-Prefix)
-//    // verwenden. Ansonsten das Standard-Bundle ohne Prefix.
-//    if ( resourceBundle != null ) {
-//      primaryBundle = resourceBundle;
-//      prefix        = (keyPrefix != null && !keyPrefix.trim().equals("")) ? keyPrefix+"." : "";
-//    } else {
-//      primaryBundle = defaultResourceBundle;
-//      prefix        =  "";
-//    }
-//
-//    try {
-//      // Ressource im gesetzten Bundle suchen
-//      return ResourceBundle.getBundle(primaryBundle).getObject(prefix+key);
-//    } catch (MissingResourceException err) {
-//      // Ressource im Standard-Bundle suchen
-//      try {
-//        return ResourceBundle.getBundle(defaultResourceBundle).getObject(key);
-//      } catch (MissingResourceException err2) {
-//        // Wenn Ressource auch im Standard-Bundle nicht vorhanden ist,
-//        // Fehler werfen (oder ignorieren
-//        if ( ignoreMissingResource ) {
-//          LOGGER.warn("ResourceBundle "+primaryBundle+": "+err.getMessage());
-//          return null;
-//        }
-//        throw err2;
-//      }
-//    }
-  }
-  
-  
-  /**
-   * Liefert ein Objekt aus dem Resource-Bundle. Wenn gesetzt, wird zunaechst im
-   * alternativen Bundle (ggf. mit Prefix) gesucht. Wenn die Ressource dort
-   * nicht gefunden wird, wird auf das Standard-Bundle zurueckgegriffen.
-   * Wenn die Suche (auch) dort nicht erfolgreich ist, wird je nach Einstellung
-   * eine {@link MissingResourceException} geworfen oder {@code null} zurueck
-   * gegeben.
-   * @param requestedLocale Wenn <code>null</code>, dann wird die im System verwendete
-   * 		default {@link Locale} benutzt. Sonst wir versucht der String für 
-   * 		diese Sprache zurückzugeben. 
-   * @param key Key unter dem der String gesucht wird
-   */
-  public Object getObject(final String key, Locale requestedLocale) {
-    String primaryBundle = null;
-    String prefix        = "";
-    
-    if (requestedLocale == null) {
-    	requestedLocale = Locale.getDefault();
-    } 
-    
-    // Wenn gesetzt, dann das alternative Bundle (mit Key-Prefix)
-    // verwenden. Ansonsten das Standard-Bundle ohne Prefix.
-    if ( resourceBundle != null ) {
-      primaryBundle = resourceBundle;
-      prefix        = (keyPrefix != null && !keyPrefix.trim().equals("")) ? keyPrefix+"." : "";
-    } else {
-      primaryBundle = defaultResourceBundle;
-      prefix        =  "";
-    }
+	/**
+	 * Liefert ein Objekt aus dem Resource-Bundle. Wenn gesetzt, wird zunaechst
+	 * im alternativen Bundle (ggf. mit Prefix) gesucht. Wenn die Ressource dort
+	 * nicht gefunden wird, wird auf das Standard-Bundle zurueckgegriffen. Wenn
+	 * die Suche (auch) dort nicht erfolgreich ist, wird je nach Einstellung
+	 * eine {@link MissingResourceException} geworfen oder {@code null} zurueck
+	 * gegeben.
+	 * 
+	 * @param key
+	 *            Key unter dem der String gesucht wird
+	 */
+	public Object getObject(String key) {
+		return getObject(key, null);
+		// String primaryBundle = null;
+		// String prefix = "";
+		// // Wenn gesetzt, dann das alternative Bundle (mit Key-Prefix)
+		// // verwenden. Ansonsten das Standard-Bundle ohne Prefix.
+		// if ( resourceBundle != null ) {
+		// primaryBundle = resourceBundle;
+		// prefix = (keyPrefix != null && !keyPrefix.trim().equals("")) ?
+		// keyPrefix+"." : "";
+		// } else {
+		// primaryBundle = defaultResourceBundle;
+		// prefix = "";
+		// }
+		//
+		// try {
+		// // Ressource im gesetzten Bundle suchen
+		// return ResourceBundle.getBundle(primaryBundle).getObject(prefix+key);
+		// } catch (MissingResourceException err) {
+		// // Ressource im Standard-Bundle suchen
+		// try {
+		// return
+		// ResourceBundle.getBundle(defaultResourceBundle).getObject(key);
+		// } catch (MissingResourceException err2) {
+		// // Wenn Ressource auch im Standard-Bundle nicht vorhanden ist,
+		// // Fehler werfen (oder ignorieren
+		// if ( ignoreMissingResource ) {
+		// LOGGER.warn("ResourceBundle "+primaryBundle+": "+err.getMessage());
+		// return null;
+		// }
+		// throw err2;
+		// }
+		// }
+	}
 
-    try {
-      // Ressource im gesetzten Bundle suchen
-      final ResourceBundle pBundle = ResourceBundle.getBundle(primaryBundle, requestedLocale);
-	  return pBundle.getObject(prefix+key);
-    } catch (final MissingResourceException err) {
-      // Ressource im Standard-Bundle suchen
-      try {
-        return ResourceBundle.getBundle(defaultResourceBundle, requestedLocale).getObject(key);
-      } catch (final MissingResourceException err2) {
-        // Wenn Ressource auch im Standard-Bundle nicht vorhanden ist,
-        // Fehler werfen (oder ignorieren)
-        if ( ignoreMissingResource ) {
-          LOGGER.warn("ResourceBundle "+primaryBundle+": "+err.getMessage()+" in");
-          LangUtil.logDebugLastStackTraceClasses(LOGGER, err.getStackTrace(), 4);
-          return null;
-        }
-        throw err2;
-      }
-    }
-  }
-  
+	/**
+	 * Liefert ein Objekt aus dem Resource-Bundle. Wenn gesetzt, wird zunaechst
+	 * im alternativen Bundle (ggf. mit Prefix) gesucht. Wenn die Ressource dort
+	 * nicht gefunden wird, wird auf das Standard-Bundle zurueckgegriffen. Wenn
+	 * die Suche (auch) dort nicht erfolgreich ist, wird je nach Einstellung
+	 * eine {@link MissingResourceException} geworfen oder {@code null} zurueck
+	 * gegeben.
+	 * 
+	 * @param requestedLocale
+	 *            Wenn <code>null</code>, dann wird die im System verwendete
+	 *            default {@link Locale} benutzt. Sonst wir versucht der String
+	 *            für diese Sprache zurückzugeben.
+	 * @param key
+	 *            Key unter dem der String gesucht wird
+	 */
+	public Object getObject(final String key, Locale requestedLocale) {
+		String primaryBundle = null;
+		String prefix = "";
 
-  /**
-   * Liefert einen String aus dem Resource-Bundle. Wenn gesetzt, wird zunaechst im
-   * alternativen Bundle (ggf. mit Prefix) gesucht. Wenn die Ressource dort
-   * nicht gefunden wird, wird auf das Standard-Bundle zurueckgegriffen.
-   * Wenn die Suche (auch) dort nicht erfolgreich ist, wird je nach Einstellung
-   * eine {@link MissingResourceException} geworfen oder der Alternativ-String
-   * zurueck gegeben.
-   * @param key Key unter dem der String gesucht wird
-   * @param replParams Strings/Zahlen, mit denen die im String enthaltenen
-   *                   Wildcards <code>${0}</code>, <code>${1}</code>, <code>${2}</code>, usw.
-   *                   ersetzt werden (sehr hilfreich z.B. fuer lokalisierte
-   *                   Fehlermeldungen)
-   */
-  public String getString(String key, Object... replParams) {
-//    Object object = getObject(key);
-//    String string = object != null ? object.toString() : missingResourceString;
-//    for (int i=0; i<replParams.length; i++)
-//      string = string.replaceAll("\\$\\{"+i+"\\}", replParams[i] != null ? replParams[i].toString() : "null");
-//    return string;
-	  return getString(key, (Locale)null, replParams);
-  }
-  
+		if (requestedLocale == null) {
+			requestedLocale = Locale.getDefault();
+		}
 
-  /**
-   * Liefert einen String aus dem Resource-Bundle. Wenn gesetzt, wird zunaechst im
-   * alternativen Bundle (ggf. mit Prefix) gesucht. Wenn die Ressource dort
-   * nicht gefunden wird, wird auf das Standard-Bundle zurueckgegriffen.
-   * Wenn die Suche (auch) dort nicht erfolgreich ist, wird je nach Einstellung
-   * eine {@link MissingResourceException} geworfen oder der Alternativ-String
-   * zurueck gegeben.
-   * @param key Key unter dem der String gesucht wird
-   * @param requestedLocale Wenn <code>null</code>, dann wird die im System verwendete
-   * 		default {@link Locale} benutzt. Sonst wir versucht der String für 
-   * 		diese Sprache zurückzugeben.
-   * @param replParams Strings/Zahlen, mit denen die im String enthaltenen
-   *                   Wildcards <code>${0}</code>, <code>${1}</code>, <code>${2}</code>, usw.
-   *                   ersetzt werden (sehr hilfreich z.B. fuer lokalisierte
-   *                   Fehlermeldungen)
-   */
-  public String getString(final String key, final Locale requestedLocale, final Object... replParams) {
-    final Object object = getObject(key, requestedLocale);
-    String string = object != null ? object.toString() : missingResourceString;
-    try {
-      for (int i=0; i<replParams.length; i++)
-        string = string.replaceAll("\\$\\{"+i+"\\}", replParams[i] != null ? replParams[i].toString() : "null");
-    } catch (Throwable err) {
-      LOGGER.error("Could not replace parameters in resource string '"+string+"': "+LangUtil.stringConcatWithSep(", ","'",replParams));
-    }
-    return string;
-  }
+		// Wenn gesetzt, dann das alternative Bundle (mit Key-Prefix)
+		// verwenden. Ansonsten das Standard-Bundle ohne Prefix.
+		if (resourceBundle != null) {
+			primaryBundle = resourceBundle;
+			prefix = (keyPrefix != null && !keyPrefix.trim().equals("")) ? keyPrefix
+					+ "."
+					: "";
+		} else {
+			primaryBundle = defaultResourceBundle;
+			prefix = "";
+		}
 
-  /**
-   * Setzt ein alternatives Resource-Bundle, in welchem als erstes nach
-   * einer Ressource gesucht wird. Dieses sollte die gleiche Fall-Back-Sprache
-   * haben, wie das Standard-Bundle.
-   * @param bundle String
-   * @param keyPrefix Prefix, welches bei der Suche im alternativen Bundle
-   *                  automatisch jedem Key vorangestellt wird
-   */
-  public void resetResourceBundle(String bundle, String keyPrefix) {
-    this.resourceBundle = bundle;
-    this.keyPrefix      = keyPrefix;
-  }
+		try {
+			// Ressource im gesetzten Bundle suchen
+			final ResourceBundle pBundle = ResourceBundle.getBundle(
+					primaryBundle, requestedLocale);
+			return pBundle.getObject(prefix + key);
+		} catch (final MissingResourceException err) {
+			// Ressource im Standard-Bundle suchen
+			try {
+				return ResourceBundle.getBundle(defaultResourceBundle,
+						requestedLocale).getObject(key);
+			} catch (final MissingResourceException err2) {
+				// Wenn Ressource auch im Standard-Bundle nicht vorhanden ist,
+				// Fehler werfen (oder ignorieren)
+				if (ignoreMissingResource) {
+					LOGGER.warn("ResourceBundle " + primaryBundle + ": "
+							+ err.getMessage() + " in");
+					LangUtil.logDebugLastStackTraceClasses(LOGGER, err
+							.getStackTrace(), 4);
+					return null;
+				}
+				throw err2;
+			}
+		}
+	}
 
-  /**
-   * Setzt ein alternatives Resource-Bundle, in welchem als erstes nach
-   * einer Ressource gesucht wird. Dieses sollte die gleiche Fall-Back-Sprache
-   * haben, wie das Standard-Bundle. Ein Key-Prefix wird nicht verwendet.
-   * @param bundle String
-   */
-  public void resetResourceBundle(String bundle) {
-    resetResourceBundle(bundle,null);
-  }
+	/**
+	 * Liefert einen String aus dem Resource-Bundle. Wenn gesetzt, wird
+	 * zunaechst im alternativen Bundle (ggf. mit Prefix) gesucht. Wenn die
+	 * Ressource dort nicht gefunden wird, wird auf das Standard-Bundle
+	 * zurueckgegriffen. Wenn die Suche (auch) dort nicht erfolgreich ist, wird
+	 * je nach Einstellung eine {@link MissingResourceException} geworfen oder
+	 * der Alternativ-String zurueck gegeben.
+	 * 
+	 * @param key
+	 *            Key unter dem der String gesucht wird
+	 * @param replParams
+	 *            Strings/Zahlen, mit denen die im String enthaltenen Wildcards
+	 *            <code>${0}</code>, <code>${1}</code>, <code>${2}</code>, usw.
+	 *            ersetzt werden (sehr hilfreich z.B. fuer lokalisierte
+	 *            Fehlermeldungen)
+	 */
+	public String getString(String key, Object... replParams) {
+		// Object object = getObject(key);
+		// String string = object != null ? object.toString() :
+		// missingResourceString;
+		// for (int i=0; i<replParams.length; i++)
+		// string = string.replaceAll("\\$\\{"+i+"\\}", replParams[i] != null ?
+		// replParams[i].toString() : "null");
+		// return string;
+		return getString(key, (Locale) null, replParams);
+	}
 
-  /**
-   * Entfernt das alternative Resource-Bundle, so dass im folgenden immer
-   * direkt im Standard-Bundle gesucht wird.
-   */
-  public void resetResourceBundle() {
-    resetResourceBundle(null,null);
-  }
+	/**
+	 * Liefert einen String aus dem Resource-Bundle. Wenn gesetzt, wird
+	 * zunaechst im alternativen Bundle (ggf. mit Prefix) gesucht. Wenn die
+	 * Ressource dort nicht gefunden wird, wird auf das Standard-Bundle
+	 * zurueckgegriffen. Wenn die Suche (auch) dort nicht erfolgreich ist, wird
+	 * je nach Einstellung eine {@link MissingResourceException} geworfen oder
+	 * der Alternativ-String zurueck gegeben.
+	 * 
+	 * @param key
+	 *            Key unter dem der String gesucht wird
+	 * @param requestedLocale
+	 *            Wenn <code>null</code>, dann wird die im System verwendete
+	 *            default {@link Locale} benutzt. Sonst wir versucht der String
+	 *            für diese Sprache zurückzugeben.
+	 * @param replParams
+	 *            Strings/Zahlen, mit denen die im String enthaltenen Wildcards
+	 *            <code>${0}</code>, <code>${1}</code>, <code>${2}</code>, usw.
+	 *            ersetzt werden (sehr hilfreich z.B. fuer lokalisierte
+	 *            Fehlermeldungen)
+	 */
+	public String getString(final String key, final Locale requestedLocale,
+			final Object... replParams) {
+		final Object object = getObject(key, requestedLocale);
+		String string = object != null ? object.toString()
+				: missingResourceString;
+		try {
+			for (int i = 0; i < replParams.length; i++)
+				string = string.replaceAll("\\$\\{" + i + "\\}",
+						replParams[i] != null ? replParams[i].toString()
+								: "null");
+		} catch (Throwable err) {
+			LOGGER.error("Could not replace parameters in resource string '"
+					+ string + "': "
+					+ LangUtil.stringConcatWithSep(", ", "'", replParams));
+		}
+		return string;
+	}
 
-  /**
-   * Liefert das Prefix, das im Alternativ-Bundle jedem Key vorangestellt
-   * ist.
-   */
-  public String getKeyPrefix() {
-    return keyPrefix;
-  }
+	/**
+	 * Setzt ein alternatives Resource-Bundle, in welchem als erstes nach einer
+	 * Ressource gesucht wird. Dieses sollte die gleiche Fall-Back-Sprache
+	 * haben, wie das Standard-Bundle.
+	 * 
+	 * @param bundle
+	 *            String
+	 * @param keyPrefix
+	 *            Prefix, welches bei der Suche im alternativen Bundle
+	 *            automatisch jedem Key vorangestellt wird
+	 */
+	public void resetResourceBundle(String bundle, String keyPrefix) {
+		this.resourceBundle = bundle;
+		this.keyPrefix = keyPrefix;
+	}
 
-  /**
-   * Liefert den Namen des Resource-Bundle. Wenn ein Alternativ-Bundle gesetzt
-   * wurde, wird dessen Name zurueckgegeben.
-   */
-  public String getBundleName() {
-    return resourceBundle == null ? defaultResourceBundle : resourceBundle;
-  }
+	/**
+	 * Setzt ein alternatives Resource-Bundle, in welchem als erstes nach einer
+	 * Ressource gesucht wird. Dieses sollte die gleiche Fall-Back-Sprache
+	 * haben, wie das Standard-Bundle. Ein Key-Prefix wird nicht verwendet.
+	 * 
+	 * @param bundle
+	 *            String
+	 */
+	public void resetResourceBundle(String bundle) {
+		resetResourceBundle(bundle, null);
+	}
 
-  /**
-   * Liefert den Namen des Standard-Resource-Bundle.
-   */
-  public String getDefaultBundleName() {
-    return defaultResourceBundle;
-  }
+	/**
+	 * Entfernt das alternative Resource-Bundle, so dass im folgenden immer
+	 * direkt im Standard-Bundle gesucht wird.
+	 */
+	public void resetResourceBundle() {
+		resetResourceBundle(null, null);
+	}
 
-  /**
-   * Liefert die Standard-Sprache des Resource-Bundles ("Fall-Back").
-   */
-  public Locale getRootLocale() {
-    return rootLocale;
-  }
+	/**
+	 * Liefert das Prefix, das im Alternativ-Bundle jedem Key vorangestellt ist.
+	 */
+	public String getKeyPrefix() {
+		return keyPrefix;
+	}
 
-  /**
-   * Liefert alle Sprachen, die der {@code ResourceProvider} zur Verfuegung
-   * stellt.
-   * @param inclRootLocale   wenn {@link false} wird die "Fall-Back"-Sprache
-   *                         nicht beruecksichtigt
-   */
-  public Set<Locale> getAvailableLocales(boolean inclRootLocale) {
-    return getAvailableLocales(this,inclRootLocale);
-  }
+	/**
+	 * Liefert den Namen des Resource-Bundle. Wenn ein Alternativ-Bundle gesetzt
+	 * wurde, wird dessen Name zurueckgegeben.
+	 */
+	public String getBundleName() {
+		return resourceBundle == null ? defaultResourceBundle : resourceBundle;
+	}
 
+	/**
+	 * Liefert den Namen des Standard-Resource-Bundle.
+	 */
+	public String getDefaultBundleName() {
+		return defaultResourceBundle;
+	}
 
-  /**
-   * Liefert alle Sprachen, die ein {@link ResourceProvider} zur Verfuegung
-   * stellt.
-   * @param resourceProvider ResourceProvider
-   * @param inclRootLocale   wenn {@link false} wird die "Fall-Back"-Sprache
-   *                         nicht beruecksichtigt
-   */
-  public static Set<Locale> getAvailableLocales(ResourceProvider resourceProvider, boolean inclRootLocale) {
-    Set<Locale> avLocales = new TreeSet<Locale>(new LocaleComparator(true));
-    if ( inclRootLocale && resourceProvider.getRootLocale() != null )
-      avLocales.add( resourceProvider.getRootLocale() );
+	/**
+	 * Liefert die Standard-Sprache des Resource-Bundles ("Fall-Back").
+	 */
+	public Locale getRootLocale() {
+		return rootLocale;
+	}
 
-    // leider sehe ich keine andere Moeglichkeit, als "alle Sprachen"
-    // durchzuprobieren...
-    for ( Locale l : Locale.getAvailableLocales() ) {
-      if ( checkLocaleAvailable( resourceProvider.getDefaultBundleName(),l ) ||
-           checkLocaleAvailable( resourceProvider.getBundleName(),l ) )
-        avLocales.add(l);
-    }
-    return avLocales;
-  }
+	/**
+	 * Liefert alle Sprachen, die der {@code ResourceProvider} zur Verfuegung
+	 * stellt.
+	 * 
+	 * @param inclRootLocale
+	 *            wenn {@link false} wird die "Fall-Back"-Sprache nicht
+	 *            beruecksichtigt
+	 */
+	public Set<Locale> getAvailableLocales(boolean inclRootLocale) {
+		return getAvailableLocales(this, inclRootLocale);
+	}
 
-  private static boolean checkLocaleAvailable(String bundleName, Locale l) {
-    try {
-      return l != null && l.equals( ResourceBundle.getBundle(bundleName,l).getLocale() );
-    } catch (Exception err) {
-    }
-    return false;
-  }
+	/**
+	 * Liefert alle Sprachen, die ein {@link ResourceProvider} zur Verfuegung
+	 * stellt.
+	 * 
+	 * @param resourceProvider
+	 *            ResourceProvider
+	 * @param inclRootLocale
+	 *            wenn {@link false} wird die "Fall-Back"-Sprache nicht
+	 *            beruecksichtigt
+	 */
+	public static Set<Locale> getAvailableLocales(
+			ResourceProvider resourceProvider, boolean inclRootLocale) {
+		Set<Locale> avLocales = new TreeSet<Locale>(new LocaleComparator(true));
+		if (inclRootLocale && resourceProvider.getRootLocale() != null)
+			avLocales.add(resourceProvider.getRootLocale());
 
-  /**
-   * Liefert die Property-Datei ({@code .properties}) fuer ein Resource Bundle.
-   * @param provider Resource-Provider fuer den das neue Bundle angelegt wird
-   * @param l Sprache des neuen Bundles
-   * @exception URISyntaxException wenn bei der Ermittlung des Datei-Pfads
-   *            ein Fehler auftritt
-   */
-  public static File getPropertyFile(ResourceProvider provider, Locale l) throws URISyntaxException{
-    String bundlePath       = provider.getBundleName();
-    int    lastDotIdx       = bundlePath.lastIndexOf(".");
-    String bundleName       = bundlePath.substring(lastDotIdx+1);
-    String bundlePackage    = bundlePath.substring(0, lastDotIdx).replace(".","/");
-    URL    bundlePackageURL = ClassLoader.getSystemResource(bundlePackage);
-    String newBundleName    = bundleName + "_" + l.toString() + ".properties";
-    File   newBundleFile    = new File(new File(bundlePackageURL.toURI()),newBundleName);
-    return newBundleFile;
-  }
+		// leider sehe ich keine andere Moeglichkeit, als "alle Sprachen"
+		// durchzuprobieren...
+		for (Locale l : Locale.getAvailableLocales()) {
+			if (checkLocaleAvailable(resourceProvider.getDefaultBundleName(), l)
+					|| checkLocaleAvailable(resourceProvider.getBundleName(), l))
+				avLocales.add(l);
+		}
+		return avLocales;
+	}
 
-  /**
-   * Erzeugt eine Property-Datei ({@code .properties}) fuer ein Resource Bundle.
-   * In dieser sind bereits alle Keys des Bundles enthalten und mit einem Dummy-Wert
-   * vorbelegt.
-   * @param provider Resource-Provider fuer den das neue Bundle angelegt wird
-   * @param l Sprache des neuen Bundles
-   * @param append wenn {@code true}, wird eine bestehende Datei erweitert,
-   *               andernfalls ueberschrieben
-   */
-  public static void createPropertyFile(ResourceProvider provider, Locale l, boolean append) throws URISyntaxException, FileNotFoundException {
-    File        newBundleFile = getPropertyFile(provider,l);
-    PrintWriter out           = new PrintWriter( new FileOutputStream(newBundleFile, append) );
-    // Wenn Datei neu angelegt wird, wird ein Header erstellt
-    if ( !newBundleFile.exists() || newBundleFile.length() == 0 ) {
-      out.println("# ----------------------------------------------------------------------------------");
-      out.println("#  LANGUAGE: "+l.toString()+" = "+l.getDisplayLanguage());
-      out.println("# ----------------------------------------------------------------------------------");
-    }
-    out.println("# Original bundle: "+provider.getDefaultBundleName());
+	private static boolean checkLocaleAvailable(String bundleName, Locale l) {
+		try {
+			return l != null
+					&& l.equals(ResourceBundle.getBundle(bundleName, l)
+							.getLocale());
+		} catch (Exception err) {
+		}
+		return false;
+	}
 
-    // etwaiges Key-Prefix ermitteln
-    String prefix = provider.getKeyPrefix();
-    if ( prefix == null )
-      prefix = "";
-    if ( !prefix.equals("") )
-      prefix += ".";
+	/**
+	 * Liefert die Property-Datei ({@code .properties}) fuer ein Resource
+	 * Bundle.
+	 * 
+	 * @param provider
+	 *            Resource-Provider fuer den das neue Bundle angelegt wird
+	 * @param l
+	 *            Sprache des neuen Bundles
+	 * @exception URISyntaxException
+	 *                wenn bei der Ermittlung des Datei-Pfads ein Fehler
+	 *                auftritt
+	 */
+	public static File getPropertyFile(ResourceProvider provider, Locale l)
+			throws URISyntaxException {
+		String bundlePath = provider.getBundleName();
+		int lastDotIdx = bundlePath.lastIndexOf(".");
+		String bundleName = bundlePath.substring(lastDotIdx + 1);
+		String bundlePackage = bundlePath.substring(0, lastDotIdx).replace(".",
+				"/");
+		URL bundlePackageURL = ClassLoader.getSystemResource(bundlePackage);
+		String newBundleName = bundleName + "_" + l.toString() + ".properties";
+		File newBundleFile = new File(new File(bundlePackageURL.toURI()),
+				newBundleName);
+		return newBundleFile;
+	}
 
-    // Keys mit Dummy-Werten in Datei schreiben
-    for (String key : provider.getKeys())
-      out.println(prefix+key+"=?"+l.toString()+"? "+provider.getString(key));
-    out.println("# ----------------------------------------------------------------------------------");
-    out.flush();
-    out.close();
-  }
+	/**
+	 * Erzeugt eine Property-Datei ({@code .properties}) fuer ein Resource
+	 * Bundle. In dieser sind bereits alle Keys des Bundles enthalten und mit
+	 * einem Dummy-Wert vorbelegt.
+	 * 
+	 * @param provider
+	 *            Resource-Provider fuer den das neue Bundle angelegt wird
+	 * @param l
+	 *            Sprache des neuen Bundles
+	 * @param append
+	 *            wenn {@code true}, wird eine bestehende Datei erweitert,
+	 *            andernfalls ueberschrieben
+	 */
+	public static void createPropertyFile(ResourceProvider provider, Locale l,
+			boolean append) throws URISyntaxException, FileNotFoundException {
+		File newBundleFile = getPropertyFile(provider, l);
+		PrintWriter out = new PrintWriter(new FileOutputStream(newBundleFile,
+				append));
+		// Wenn Datei neu angelegt wird, wird ein Header erstellt
+		if (!newBundleFile.exists() || newBundleFile.length() == 0) {
+			out
+					.println("# ----------------------------------------------------------------------------------");
+			out.println("#  LANGUAGE: " + l.toString() + " = "
+					+ l.getDisplayLanguage());
+			out
+					.println("# ----------------------------------------------------------------------------------");
+		}
+		out.println("# Original bundle: " + provider.getDefaultBundleName());
 
+		// etwaiges Key-Prefix ermitteln
+		String prefix = provider.getKeyPrefix();
+		if (prefix == null)
+			prefix = "";
+		if (!prefix.equals(""))
+			prefix += ".";
 
+		// Keys mit Dummy-Werten in Datei schreiben
+		for (String key : provider.getKeys())
+			out.println(prefix + key + "=?" + l.toString() + "? "
+					+ provider.getString(key));
+		out
+				.println("# ----------------------------------------------------------------------------------");
+		out.flush();
+		out.close();
+	}
+
+	/**
+	 * Setzt alternative ResourceBundles für jeden bisher registrierten
+	 * ResourceProvider. Das alternative Bundle wird ohne die Packagebezeichung
+	 * im Classpath als Datei erwartet.
+	 * 
+	 * @param prefix
+	 *            <code>null</code> 
+	 */
+	public static void resetAllRegisteredResourceBundles() {
+		// Enabling user-translated locales that are searched in the classpath
+		for (ResourceProvider rp : RESOURCE_BUNDLES) {
+			String filename = rp.getBundleName();
+			if (filename.contains("."))
+				filename = filename.substring(filename.lastIndexOf('.') + 1);
+			rp.resetResourceBundle(filename);
+		}
+	}
+	//
+	// /**
+	// * Setzt einen alternativen ResourceBundle für all bisher registrierten
+	// ResourceProviders.
+	// * @param bundle neue Bundle
+	// * @param prefix <code>null</code> oder prefix
+	// */
+	// public static void resetAllRegisteredResourceBundles(String bundle) {
+	// // Enabling user-translated locales that are searched in the classpath
+	// for (ResourceProvider rp : RESOURCE_BUNDLES) {
+	// rp.resetResourceBundle(bundle, rp.getBundleName());
+	// }
+	// }
+
 }



More information about the Schmitzm-commits mailing list