[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