[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