[Schmitzm-commits] r1739 - in trunk/schmitzm-core/src: main/java/de/schmitzm/lang test/java/de/schmitzm/lang
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Thu Sep 29 21:00:41 CEST 2011
Author: mojays
Date: 2011-09-29 21:00:41 +0200 (Thu, 29 Sep 2011)
New Revision: 1739
Modified:
trunk/schmitzm-core/src/main/java/de/schmitzm/lang/LangUtil.java
trunk/schmitzm-core/src/test/java/de/schmitzm/lang/LangUtilTest.java
Log:
Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/lang/LangUtil.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/lang/LangUtil.java 2011-09-29 18:36:59 UTC (rev 1738)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/lang/LangUtil.java 2011-09-29 19:00:41 UTC (rev 1739)
@@ -598,7 +598,7 @@
public static String stringConcatWithSep(String sep, String maskChar, boolean ignoreNulls, Object... str) {
StringBuffer sb = new StringBuffer();
for (int i = 0; str != null && i < str.length; i++) {
- if (str[i] == null || str[i].toString().trim().equals(""))
+ if (ignoreNulls && (str[i] == null || str[i].toString().trim().equals("")))
continue;
// if (i > 0)
if (sb.length() > 0)
@@ -1394,11 +1394,13 @@
// festgestellt, wenn die Parameter GENAU die Typen sind, mit denen die
// Methode deklariert ist... Besser ist es, die passende Methode durch
// Ausprobieren zu ermitteln:
+ boolean methodFound = false;
for (Method m : clazz.getMethods()) {
if ( !m.getName().equals(methodName) )
continue;
try {
ret[i] = m.invoke(null, methodParams);
+ methodFound = true;
break;
} catch (Exception err){
// Wenn Methode einen Fehler erzeugte, diese
@@ -1411,6 +1413,8 @@
// -> ignornieren
}
}
+ if ( !methodFound )
+ throw new UnsupportedOperationException("Static method '"+methodName+"("+stringConcatWithSep(",",methodParams)+")' not available in "+getSimpleClassName(clazz));
}
return ret;
}
Modified: trunk/schmitzm-core/src/test/java/de/schmitzm/lang/LangUtilTest.java
===================================================================
--- trunk/schmitzm-core/src/test/java/de/schmitzm/lang/LangUtilTest.java 2011-09-29 18:36:59 UTC (rev 1738)
+++ trunk/schmitzm-core/src/test/java/de/schmitzm/lang/LangUtilTest.java 2011-09-29 19:00:41 UTC (rev 1739)
@@ -154,4 +154,22 @@
LangUtil.regExBereich("Am Ender der Absperrung war ein großer Baum zu sehen", "Baum", 3));
}
+
+ public static int testMethod(int i, double j) {
+ return i;
+ }
+
+ @Test
+ public void testStaticMethodCall() {
+ final int value = 123;
+ Object[] ret = LangUtil.callStaticMethod(
+ new Class[] {LangUtilTest.class, String.class, LangUtilTest.class},
+ LangUtilTest.class,
+ "testMethod",
+ value,
+ value);
+ assertEquals(value, ret[0]);
+ assertTrue(ret[1] == null); // String.class nicht von LangUtilTest abgeleitet
+ assertEquals(value, ret[2]);
+ }
}
\ No newline at end of file
More information about the Schmitzm-commits
mailing list