[Schmitzm-commits] r942 - in trunk: src/schmitzm/lang src_junit/schmitzm/lang
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Fri Jul 23 11:56:16 CEST 2010
Author: alfonx
Date: 2010-07-23 11:56:05 +0200 (Fri, 23 Jul 2010)
New Revision: 942
Modified:
trunk/src/schmitzm/lang/LangUtil.java
trunk/src_junit/schmitzm/lang/LangUtilTest.java
Log:
Two new methods in LangUtil:
boolean parseStringDefaultFalse(String) and boolean parseStringDefaultTrue(String) which parse Strings to booleans with defined defaults.
Modified: trunk/src/schmitzm/lang/LangUtil.java
===================================================================
--- trunk/src/schmitzm/lang/LangUtil.java 2010-07-22 10:20:09 UTC (rev 941)
+++ trunk/src/schmitzm/lang/LangUtil.java 2010-07-23 09:56:05 UTC (rev 942)
@@ -81,68 +81,83 @@
return "null";
return object.getClass().getSimpleName();
}
-
+
/**
- * Haengt Strings aneinander, getrennt durch Trennzeichen.
- * @param delim Trennzeichen (kann {@code null} sein)
- * @param strList Liste von Strings ({@code null}-Elemente und leere Strings
- * werden ignoriert
+ * Haengt Strings aneinander, getrennt durch Trennzeichen.
+ *
+ * @param delim
+ * Trennzeichen (kann {@code null} sein)
+ * @param strList
+ * Liste von Strings ({@code null}-Elemente und leere Strings
+ * werden ignoriert
* @return
*/
public static String listString(String delim, String... strList) {
-// StringBuffer resultStr = new StringBuffer();
-// for (int i=0; i<strList.length; i++) {
-// // ignore item if it it null or empty
-// if ( strList[i] == null || "".equals(strList[i].trim()) )
-// continue;
-// // append delimiter (if necessary)
-// if ( resultStr.length() > 0 && delim != null )
-// resultStr.append(delim);
-// // append string
-// resultStr.append(strList[i].trim());
-// }
-// return resultStr.toString();
- return listObjects(delim, true, (Object[])strList);
+ // StringBuffer resultStr = new StringBuffer();
+ // for (int i=0; i<strList.length; i++) {
+ // // ignore item if it it null or empty
+ // if ( strList[i] == null || "".equals(strList[i].trim()) )
+ // continue;
+ // // append delimiter (if necessary)
+ // if ( resultStr.length() > 0 && delim != null )
+ // resultStr.append(delim);
+ // // append string
+ // resultStr.append(strList[i].trim());
+ // }
+ // return resultStr.toString();
+ return listObjects(delim, true, (Object[]) strList);
}
- /**
- * Haengt Objekte (als String) aneinander, getrennt durch Trennzeichen.
- * @param delim Trennzeichen (kann {@code null} sein)
- * @param ignoreNulls bestimmt, ob {@code null}-Elemente (und leere Strings)
- * ignoriert werden
- * @param objList Liste von Objekten
- * @return
- */
- public static String listObjects(String delim, boolean ignoreNulls, Object... objList) {
- StringBuffer resultStr = new StringBuffer();
- for (int i=0; i<objList.length; i++) {
- // ignore item if it is null or empty
- if ( ignoreNulls && (objList[i] == null || objList[i] instanceof String && "".equals(((String)objList[i]).trim()) ) )
- continue;
- // append delimiter (if necessary)
- if ( resultStr.length() > 0 && delim != null )
- resultStr.append(delim);
- // append string
- String str = (objList[i] == null) ? "null" : objList[i].toString();
- resultStr.append(str.trim());
- }
- return resultStr.toString();
- }
+ /**
+ * Haengt Objekte (als String) aneinander, getrennt durch Trennzeichen.
+ *
+ * @param delim
+ * Trennzeichen (kann {@code null} sein)
+ * @param ignoreNulls
+ * bestimmt, ob {@code null}-Elemente (und leere Strings)
+ * ignoriert werden
+ * @param objList
+ * Liste von Objekten
+ * @return
+ */
+ public static String listObjects(String delim, boolean ignoreNulls,
+ Object... objList) {
+ StringBuffer resultStr = new StringBuffer();
+ for (int i = 0; i < objList.length; i++) {
+ // ignore item if it is null or empty
+ if (ignoreNulls
+ && (objList[i] == null || objList[i] instanceof String
+ && "".equals(((String) objList[i]).trim())))
+ continue;
+ // append delimiter (if necessary)
+ if (resultStr.length() > 0 && delim != null)
+ resultStr.append(delim);
+ // append string
+ String str = (objList[i] == null) ? "null" : objList[i].toString();
+ resultStr.append(str.trim());
+ }
+ return resultStr.toString();
+ }
- /**
- * Haengt Objekte (als String) aneinander, getrennt durch Trennzeichen.
- * @param delim Trennzeichen (kann {@code null} sein)
- * @param ignoreNulls bestimmt, ob {@code null}-Elemente (und leere Strings)
- * ignoriert werden
- * @param objList Liste von Objekten
- * @return
- */
- public static String listObjects(String delim, boolean ignoreNulls, Collection<?> values) {
- Object[] objArray = values.toArray();
- return listObjects(delim,ignoreNulls,objArray);
- }
-
- /**
+ /**
+ * Haengt Objekte (als String) aneinander, getrennt durch Trennzeichen.
+ *
+ * @param delim
+ * Trennzeichen (kann {@code null} sein)
+ * @param ignoreNulls
+ * bestimmt, ob {@code null}-Elemente (und leere Strings)
+ * ignoriert werden
+ * @param objList
+ * Liste von Objekten
+ * @return
+ */
+ public static String listObjects(String delim, boolean ignoreNulls,
+ Collection<?> values) {
+ Object[] objArray = values.toArray();
+ return listObjects(delim, ignoreNulls, objArray);
+ }
+
+ /**
* Prueft, ob ein {@link Enum} ein spezielles Feld besitzt.
*
* @param enumClass
@@ -212,44 +227,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.
+ *
+ * @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. Optional werden die
- * einzelnen Strings mit einem speziellen Zeichen (z.B. Apostroph oder
+ * 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.
+ * 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 maskChar, Object... 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);
- if ( maskChar != null )
- sb.append(maskChar).append(str[i]).append(maskChar);
- else
- sb.append(str[i]);
+ if (maskChar != null)
+ sb.append(maskChar).append(str[i]).append(maskChar);
+ else
+ sb.append(str[i]);
}
return sb.toString();
}
@@ -1387,7 +1402,8 @@
* @param numClass
* TODO Martin, geht das nicht schöner? Ich bin zu doof
*/
- public static Number parseNumberAs(final String valueString, final Class<?> numClass) {
+ public static Number parseNumberAs(final String valueString,
+ final Class<?> numClass) {
// everything can be parsed as a Double
final Double doubleValue = Double.parseDouble(valueString);
@@ -1413,7 +1429,9 @@
/**
* Calls Thread.sleep( delay ) and drops any InterruptedException thrown
- * @param delay ms to sleep
+ *
+ * @param delay
+ * ms to sleep
*/
public static void sleepExceptionless(int delay) {
try {
@@ -1421,4 +1439,36 @@
} catch (InterruptedException e) {
}
}
+
+ /**
+ * Interpretiert einen {@link String} zu einem {@link boolean} mit default
+ * <code>true</code>.
+ */
+ public static boolean parseStringDefaultTrue(String str) {
+ if (str == null)
+ return true;
+ String trimmedLowcase = str.toLowerCase().trim();
+ if (trimmedLowcase.startsWith("n"))
+ return false;
+ if (trimmedLowcase.startsWith("0"))
+ return false;
+ return true;
+ }
+
+ /**
+ * Interpretiert einen {@link String} zu einem {@link boolean} mit default
+ * <code>false</code>.
+ */
+ public static boolean parseStringDefaultFalse(String str) {
+ if (str == null)
+ return false;
+ String trimmedLowcase = str.toLowerCase().trim();
+ if (trimmedLowcase.startsWith("y"))
+ return true;
+ if (trimmedLowcase.startsWith("j"))
+ return true;
+ if (trimmedLowcase.startsWith("1"))
+ return true;
+ return false;
+ }
}
Modified: trunk/src_junit/schmitzm/lang/LangUtilTest.java
===================================================================
--- trunk/src_junit/schmitzm/lang/LangUtilTest.java 2010-07-22 10:20:09 UTC (rev 941)
+++ trunk/src_junit/schmitzm/lang/LangUtilTest.java 2010-07-23 09:56:05 UTC (rev 942)
@@ -5,7 +5,38 @@
import org.junit.Test;
public class LangUtilTest {
+
+ @Test
+ public void testParseStringDefaultFalse() {
+ assertTrue(LangUtil.parseStringDefaultFalse("y"));
+ assertTrue(LangUtil.parseStringDefaultFalse("Yes"));
+ assertTrue(LangUtil.parseStringDefaultFalse(" JA BITTE !"));
+ assertTrue(LangUtil.parseStringDefaultFalse("j"));
+ assertTrue(LangUtil.parseStringDefaultFalse("1"));
+
+ assertFalse(LangUtil.parseStringDefaultFalse(null));
+ assertFalse(LangUtil.parseStringDefaultFalse("asdas"));
+ assertFalse(LangUtil.parseStringDefaultFalse("23"));
+ assertFalse(LangUtil.parseStringDefaultFalse("-2"));
+ }
+
+ @Test
+ public void testParseStringDefaultTrue() {
+ assertTrue(LangUtil.parseStringDefaultTrue("y"));
+ assertTrue(LangUtil.parseStringDefaultTrue("j"));
+ assertTrue(LangUtil.parseStringDefaultTrue("1"));
+
+ assertFalse(LangUtil.parseStringDefaultTrue("n"));
+ assertFalse(LangUtil.parseStringDefaultTrue("0"));
+ assertFalse(LangUtil.parseStringDefaultTrue("no"));
+ assertFalse(LangUtil.parseStringDefaultTrue(" NO "));
+ assertTrue(LangUtil.parseStringDefaultTrue(null));
+ assertTrue(LangUtil.parseStringDefaultTrue("asdas"));
+ assertTrue(LangUtil.parseStringDefaultTrue("23"));
+ assertTrue(LangUtil.parseStringDefaultTrue("-2"));
+ }
+
@Test
public void testRoundDoubleIntIntArray() {
Double val = 0.01735357917570499;
More information about the Schmitzm-commits
mailing list