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

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Thu Apr 8 15:39:41 CEST 2010


Author: mojays
Date: 2010-04-08 15:39:38 +0200 (Thu, 08 Apr 2010)
New Revision: 792

Modified:
   trunk/src/schmitzm/lang/LangUtil.java
   trunk/src/schmitzm/lang/ResourceProvider.java
Log:
LangUtil.stringConcatWithSep(.): optional masking the strings
ResourceProvider.getString(.): Catch all errors on parameter replacement

Modified: trunk/src/schmitzm/lang/LangUtil.java
===================================================================
--- trunk/src/schmitzm/lang/LangUtil.java	2010-04-08 13:00:43 UTC (rev 791)
+++ trunk/src/schmitzm/lang/LangUtil.java	2010-04-08 13:39:38 UTC (rev 792)
@@ -174,21 +174,44 @@
 		return sb.toString();
 	}
 
-	/**
+    /**
+     * Haengt eine beliebige Anzahl von Strings hintereinander und fuegt
+     * zwischen den Strings einen Trenner ein.
+     * 
+     * @param sep
+     *            Trenner
+     * @param str
+     *            aneinanderzuhaengende Stings
+     */
+    public static String stringConcatWithSep(String sep, Object... str) {
+        return stringConcatWithSep(sep, null, str);
+    }
+
+    /**
 	 * Haengt eine beliebige Anzahl von Strings hintereinander und fuegt
-	 * zwischen den Strings einen Trenner ein.
+	 * zwischen den Strings einen Trenner ein. Optional werden die
+	 * einzelnen Strings mit einem speziellen Zeichen (z.B. Apostroph oder
+	 * Anfuehrungszeichen) maskiert.
 	 * 
 	 * @param sep
 	 *            Trenner
+	 * @param maskChar
+	 *            Zeichen, mit dem die aneinandergehaengten Strings
+	 *            gekapselt werden (z.B. Apostroph oder Anfuehrungszeichen).
+	 *            Wenn {@code null} oder leer, werden die Strings nicht
+	 *            gekapselt.            
 	 * @param str
 	 *            aneinanderzuhaengende Stings
 	 */
-	public static String stringConcatWithSep(String sep, String... str) {
+	public static String stringConcatWithSep(String sep, String maskChar, Object... str) {
 		StringBuffer sb = new StringBuffer();
 		for (int i = 0; str != null && i < str.length; i++) {
 			if (i > 0)
 				sb.append(sep);
-			sb.append(str[i]);
+	        if ( maskChar != null )
+	          sb.append(maskChar).append(str[i]).append(maskChar);
+	        else
+	          sb.append(str[i]);
 		}
 		return sb.toString();
 	}

Modified: trunk/src/schmitzm/lang/ResourceProvider.java
===================================================================
--- trunk/src/schmitzm/lang/ResourceProvider.java	2010-04-08 13:00:43 UTC (rev 791)
+++ trunk/src/schmitzm/lang/ResourceProvider.java	2010-04-08 13:39:38 UTC (rev 792)
@@ -394,8 +394,12 @@
   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;
-    for (int i=0; i<replParams.length; i++)
-      string = string.replaceAll("\\$\\{"+i+"\\}", replParams[i] != null ? replParams[i].toString() : "null");
+    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;
   }
 



More information about the Schmitzm-commits mailing list