[Schmitzm-commits] r1767 - trunk/schmitzm-core/src/main/java/de/schmitzm/lang
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Sat Oct 29 17:21:34 CEST 2011
Author: alfonx
Date: 2011-10-29 17:21:33 +0200 (Sat, 29 Oct 2011)
New Revision: 1767
Modified:
trunk/schmitzm-core/src/main/java/de/schmitzm/lang/LangUtil.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-10-26 11:23:18 UTC (rev 1766)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/lang/LangUtil.java 2011-10-29 15:21:33 UTC (rev 1767)
@@ -119,8 +119,8 @@
if (object == null)
return "null";
if (object instanceof Class)
- return ((Class)object).getSimpleName();
-
+ return ((Class) object).getSimpleName();
+
return object.getClass().getSimpleName();
}
@@ -1373,54 +1373,58 @@
/**
* Ruft eine statische Methode fuer eine Reihe von Classen auf.
- * @param classes irgenwelche Klassen
- * @param superClass es werden nur Klassen beruecksichtigt, die von
- * dieser Oberklasse abgeleitet sind (kann {@code null}
- * sein)
- * @param methodName aufzurufende Methode (case-sensitive!)
- * @param methodParams Aufruf-Parameter fuer Methode
- * @return Die Rueckgabewerte der Methoden-Aufrufe. Die Elemente fuer diejenigen
- * Indizes i, fuer die classes[i] nicht der superClass entspricht werden
- * mit {@code null} belegt
+ *
+ * @param classes
+ * irgenwelche Klassen
+ * @param superClass
+ * es werden nur Klassen beruecksichtigt, die von dieser Oberklasse abgeleitet sind (kann {@code null}
+ * sein)
+ * @param methodName
+ * aufzurufende Methode (case-sensitive!)
+ * @param methodParams
+ * Aufruf-Parameter fuer Methode
+ * @return Die Rueckgabewerte der Methoden-Aufrufe. Die Elemente fuer diejenigen Indizes i, fuer die classes[i]
+ * nicht der superClass entspricht werden mit {@code null} belegt
*/
- public static Object[] callStaticMethod(Class[] classes, Class superClass, String methodName, Object... methodParams) {
- Object[] ret = new Object[classes.length];
- for ( int i=0; i<classes.length; i++ ) {
- Class clazz = classes[i];
- // pruefen, ob Klasse von Deiner Oberklasse abgeleitet ist
- if ( superClass != null && !superClass.isAssignableFrom(clazz) )
- continue;
- // Theoretisch koenne man hier Class.getMethod(methodName,methodParams)
- // aufrufen; habe aber bei den Konstruktorne (siehe loadPreferredObject(.))
- // 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
- // Exception werfen...
- if ( err instanceof InvocationTargetException )
- throw new RuntimeException(err);
- // ... ansonsten bedeutet die Exception, dass die
- // betrachtete Methode nicht zu den Parametern
- // passt
- // -> ignornieren
- }
- }
- if ( !methodFound )
- throw new UnsupportedOperationException("Static method '"+methodName+"("+stringConcatWithSep(",",methodParams)+")' not available in "+getSimpleClassName(clazz));
- }
- return ret;
+ public static Object[] callStaticMethod(Class[] classes, Class superClass, String methodName,
+ Object... methodParams) {
+ Object[] ret = new Object[classes.length];
+ for (int i = 0; i < classes.length; i++) {
+ Class clazz = classes[i];
+ // pruefen, ob Klasse von Deiner Oberklasse abgeleitet ist
+ if (superClass != null && !superClass.isAssignableFrom(clazz))
+ continue;
+ // Theoretisch koenne man hier Class.getMethod(methodName,methodParams)
+ // aufrufen; habe aber bei den Konstruktorne (siehe loadPreferredObject(.))
+ // 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
+ // Exception werfen...
+ if (err instanceof InvocationTargetException)
+ throw new RuntimeException(err);
+ // ... ansonsten bedeutet die Exception, dass die
+ // betrachtete Methode nicht zu den Parametern
+ // passt
+ // -> ignornieren
+ }
+ }
+ if (!methodFound)
+ throw new UnsupportedOperationException("Static method '" + methodName + "("
+ + stringConcatWithSep(",", methodParams) + ")' not available in " + getSimpleClassName(clazz));
+ }
+ return ret;
}
-
-
+
/**
* Liefert das Package einer Klasse erweitert um einen relativen Pfad in Punkt-Notation.
*
@@ -2048,4 +2052,17 @@
return RegexCache.getInstance().getPattern("\\s{2,}").matcher(string).replaceAll(" ");
}
+ /**
+ * Liefert ein Date vom nächsten Tag, morgens um 0:01:00
+ */
+ public static Date tomorrowMorning00_00_00(Date today) {
+ final GregorianCalendar cal = new GregorianCalendar();
+ cal.setTime(today);
+ cal.add(Calendar.DATE, 1);
+ cal.set(Calendar.HOUR_OF_DAY, 0);
+ cal.set(Calendar.MINUTE, 0);
+ cal.set(Calendar.SECOND, 0);
+ return new Date(cal.getTimeInMillis());
+ }
+
}
More information about the Schmitzm-commits
mailing list