[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