[Schmitzm-commits] r1554 - trunk/schmitzm-core/src/main/java/de/schmitzm/io

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Thu Apr 14 22:15:15 CEST 2011


Author: mojays
Date: 2011-04-14 22:15:13 +0200 (Thu, 14 Apr 2011)
New Revision: 1554

Added:
   trunk/schmitzm-core/src/main/java/de/schmitzm/io/FilterUtil.java
Modified:
   trunk/schmitzm-core/src/main/java/de/schmitzm/io/IOUtil.java
Log:
new utility class FilterUtil; All FileFilter stuff moved from IOUtil to FilterUtil; old methods marked as deprecated in IOUtil for compatibility reasons)

Added: trunk/schmitzm-core/src/main/java/de/schmitzm/io/FilterUtil.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/io/FilterUtil.java	2011-04-14 11:12:50 UTC (rev 1553)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/io/FilterUtil.java	2011-04-14 20:15:13 UTC (rev 1554)
@@ -0,0 +1,283 @@
+package de.schmitzm.io;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileReader;
+import java.io.IOException;
+
+import org.apache.commons.io.filefilter.FileFilterUtils;
+import org.apache.commons.io.filefilter.IOFileFilter;
+
+/**
+ * Helper methods for {@link FileFilter}.
+ * @author <a href="mailto:martin.schmitz at koeln.de">Martin Schmitz</a>
+ */
+public class FilterUtil {
+  /**
+   * Modi fuer Filter.
+   * 
+   * @see #createSimpleFileFilter(String, FilterMode)
+   * @see #createRegExFileFilter(String, FilterMode)
+   * @author mojays
+   * 
+   */
+  public static enum FilterMode {
+      /** Der Filter liefert nur Dateien, aber keine Verzeichnisse. */
+      FILES_ONLY,
+      /** Der Filter liefert nur Verzeichnisse, aber keine Dateien. */
+      DIR_ONLY,
+      /** Der Filter liefert Dateien und Verzeichnisse. */
+      ALL
+  }
+
+  /**
+   * {@link FileFilter}, der alle Dateien akzeptiert, aber keine
+   * Verzeichnisse.
+   */
+  public static final FileFilter ALL_FILES_FILTER = createSimpleFileFilter(
+          "*", FilterMode.FILES_ONLY);
+  /**
+   * {@link FileFilter}, der alle Verzeichnisse akzeptiert, aber keine
+   * "normalen" Dateien.
+   */
+  public static final FileFilter ALL_DIRS_FILTER = createSimpleFileFilter(
+          "*", FilterMode.DIR_ONLY);
+  /** {@link FileFilter}, der alle Dateien und Verzeichnisse akzeptiert. */
+  public static final FileFilter ALL_FILTER = createSimpleFileFilter("*",
+          FilterMode.ALL);
+
+  /**
+   * This {@link IOFileFilter} returns <code>false</code> for files that
+   * should be omitted during export and when calculating the size of a
+   * {@link DpEntry} folder.
+   */
+  public static final IOFileFilter BlacklistedFilesFilter = new IOFileFilter() {
+
+      @Override
+      public boolean accept(File file) {
+          if (file.getName().equals("Thumbs.db"))
+              return false;
+          if (file.getName().endsWith("~"))
+              return false;
+          if (file.getName().toLowerCase().endsWith("bak"))
+              return false;
+          if (file.getName().equals("build.xml"))
+              return false;
+          if (file.getName().equals("pom.xml"))
+              return false;
+          return true;
+      }
+
+      @Override
+      public boolean accept(File dir, String name) {
+          return accept(new File(dir, name));
+      }
+  };
+
+  /**
+   * This filter omits SVN and CSV sub-folders.<br/>
+   * This {@link IOFileFilter} returns <code>false</code> for folder that
+   * should be omitted during export and when calculating the size of a
+   * {@link DpEntry} folder or chen copying folders in general.
+   */
+  public static final IOFileFilter BlacklistedFoldersFilter = FileFilterUtils
+          .makeCVSAware(FileFilterUtils.makeSVNAware(null));
+
+
+  /**
+   * Prueft, ob ein {@link File} einen angegebenen {@link FilterMode}
+   * erfuellt.
+   * 
+   * @param file
+   *            eine Datei oder ein Verzeichnis
+   * @param mode
+   *            Filter-Modus (wenn {@code null} wird {@link FilterMode#ALL}
+   *            angenommen
+   * @return {@code false} wenn die angegebenen Datei {@code null} ist
+   */
+  public static boolean fileFitsFilterMode(File file, FilterMode mode) {
+      if (mode == null)
+          mode = FilterMode.ALL;
+      final boolean acceptFiles = FilterMode.ALL.equals(mode)
+              || FilterMode.FILES_ONLY.equals(mode);
+      final boolean acceptDirs = FilterMode.ALL.equals(mode)
+              || FilterMode.DIR_ONLY.equals(mode);
+
+      return file != null
+              && (file.isDirectory() && acceptDirs || 
+                  file.isFile() && acceptFiles);
+  }
+
+  /**
+   * Erstellt einen Filter fuer einen regulaeren Ausdruck.
+   * 
+   * @param filterStr
+   *            definiert den Filter
+   */
+  public static FileFilter createRegExFileFilter(final String regEx,
+          final FilterMode mode) {
+      return new FileFilter() {
+          public boolean accept(File file) {
+              return fileFitsFilterMode(file, mode)
+                      && file.getName().matches(regEx);
+          }
+      };
+  }
+
+  /**
+   * Erstellt einen Filter fuer einen Filter-String. Dieser kann als Wildcard
+   * das Zeichen "*" enthalten. Alle anderen Zeichen werden direkt als Filter
+   * verwendet.
+   * 
+   * @param filterStr
+   *            definiert den Filter
+   */
+  public static FileFilter createSimpleFileFilter(String filterStr,
+          final FilterMode mode) {
+      // Gross/Klein-Schreibung ignorieren
+      filterStr = filterStr.toLowerCase();
+
+      // ##### Filter definiert den "inneren" Teil eines Dateinames #####
+      if (filterStr.startsWith("*") && filterStr.endsWith("*")) {
+          // Filter besteht nur aus "*" --> alle Dateien akzeptieren
+          if (filterStr.length() <= 2)
+              return new FileFilter() {
+                  public boolean accept(File file) {
+                      return fileFitsFilterMode(file, mode);
+                  }
+              };
+          // "inneren" Teil des Filters extrahieren
+          final String condStr = filterStr.substring(1,
+                  filterStr.length() - 1);
+          return new FileFilter() {
+              public boolean accept(File file) {
+                  return fileFitsFilterMode(file, mode)
+                          && file.getName().toLowerCase().contains(condStr);
+              }
+          };
+      }
+
+      // ##### Filter definiert den Anfang eines Dateinames #####
+      if (filterStr.endsWith("*")) {
+          // Anfang des Filters extrahieren
+          final String condStr = filterStr.substring(0,
+                  filterStr.length() - 1);
+          return new FileFilter() {
+              public boolean accept(File file) {
+                  return fileFitsFilterMode(file, mode)
+                          && file.getName().toLowerCase().startsWith(condStr);
+              }
+          };
+      }
+      // ##### Filter definiert das Ende eines Dateinames #####
+      if (filterStr.startsWith("*")) {
+          // Ende des Filters extrahieren
+          final String condStr = filterStr.substring(1);
+          return new FileFilter() {
+              public boolean accept(File file) {
+                  return fileFitsFilterMode(file, mode)
+                          && file.getName().toLowerCase().endsWith(condStr);
+              }
+          };
+      }
+      // ##### Filter definiert den genauen Dateinamen #####
+      final String condStr = filterStr;
+      return new FileFilter() {
+          public boolean accept(File file) {
+              return fileFitsFilterMode(file, mode)
+                      && file.getName().equalsIgnoreCase(condStr);
+          }
+      };
+  }
+
+  /**
+   * Creates a filter which checks whether a file contains a
+   * given pattern by simple {@link String#contains(CharSequence)}
+   * check for every text line.
+   * @param pattern a pattern
+   * @param ignoreCase indicates whether the check should be case-insensitive
+   */
+  public static FileFilter createFileContentContainsFilter(String pattern, boolean ignoreCase) {
+    final String _pattern = ignoreCase ? pattern.toLowerCase() : pattern;
+    final boolean _ignoreCase = ignoreCase;
+    
+    return new FileFilter() {
+      @Override
+      public boolean accept(File file) {
+        BufferedReader in = null;
+        try {
+          in = new BufferedReader( new FileReader(file) );
+          String line = null;
+          for (; (line = in.readLine()) != null;) {
+            if ( _ignoreCase )
+              line = line.toLowerCase();
+            if ( line.contains(_pattern) )
+              return true;
+          }
+        } catch (Exception err) {
+          return false;
+        } finally {
+          IOUtil.closeReader(in);
+        }
+        return false;
+      }
+    };
+  }
+  
+  /**
+   * Creates a filter which checks whether a file content matches
+   * regular expression by {@link String#matches(String)}.
+   * @param pattern a pattern
+   */
+  public static FileFilter createFileContentRegExFilter(String pattern) {
+    final String _pattern = pattern;
+   
+    return new FileFilter() {
+      @Override
+      public boolean accept(File file) {
+        try {
+          String content = IOUtil.readFileAsString(file);
+          return content.matches(_pattern);
+        } catch (IOException err) {
+        }
+        return false;
+      }
+    };
+  }
+
+  /**
+   * Creates a {@link FileFilter} which checks whether all of
+   * the given filters are satisfied.
+   * @param filters filters
+   */
+  public static FileFilter createAndCombinedFilter(final FileFilter... filters) {
+    return new FileFilter() {
+      @Override
+      public boolean accept(File file) {
+        for ( FileFilter f : filters)
+          if ( !f.accept(file) )
+            return false;
+        return true;
+      }
+    };
+  }
+
+  /**
+   * Creates a {@link FileFilter} which checks whether at least one
+   * of the given filters is satisfied.
+   * @param filters filters
+   */
+  public static FileFilter createOrCombinedFilter(final FileFilter... filters) {
+    return new FileFilter() {
+      @Override
+      public boolean accept(File file) {
+        for ( FileFilter f : filters)
+          if ( f.accept(file) )
+            return true;
+        return false;
+      }
+    };
+  }
+
+}

Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/io/IOUtil.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/io/IOUtil.java	2011-04-14 11:12:50 UTC (rev 1553)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/io/IOUtil.java	2011-04-14 20:15:13 UTC (rev 1554)
@@ -56,6 +56,7 @@
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.Enumeration;
+import java.util.Vector;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.zip.ZipEntry;
@@ -70,6 +71,7 @@
 import org.apache.commons.lang.SystemUtils;
 import org.apache.log4j.Logger;
 
+import de.schmitzm.io.FilterUtil.FilterMode;
 import de.schmitzm.lang.LangUtil;
 
 /**
@@ -81,103 +83,9 @@
  * @version 1.0
  */
 public class IOUtil {
-
 	private static Logger LOGGER = Logger.getLogger(IOUtil.class.getName());
 
 	/**
-	 * {@link FileFilter}, der alle Dateien akzeptiert, aber keine
-	 * Verzeichnisse.
-	 */
-	public static final FileFilter ALL_FILES_FILTER = createSimpleFileFilter(
-			"*", FilterMode.FILES_ONLY);
-	/**
-	 * {@link FileFilter}, der alle Verzeichnisse akzeptiert, aber keine
-	 * "normalen" Dateien.
-	 */
-	public static final FileFilter ALL_DIRS_FILTER = createSimpleFileFilter(
-			"*", FilterMode.DIR_ONLY);
-	/** {@link FileFilter}, der alle Dateien und Verzeichnisse akzeptiert. */
-	public static final FileFilter ALL_FILTER = createSimpleFileFilter("*",
-			FilterMode.ALL);
-
-	/**
-	 * This {@link IOFileFilter} returns <code>false</code> for files that
-	 * should be omitted during export and when calculating the size of a
-	 * {@link DpEntry} folder.
-	 */
-	public static final IOFileFilter BlacklistedFilesFilter = new IOFileFilter() {
-
-		@Override
-		public boolean accept(File file) {
-			if (file.getName().equals("Thumbs.db"))
-				return false;
-			if (file.getName().endsWith("~"))
-				return false;
-			if (file.getName().toLowerCase().endsWith("bak"))
-				return false;
-			if (file.getName().equals("build.xml"))
-				return false;
-			if (file.getName().equals("pom.xml"))
-				return false;
-			return true;
-		}
-
-		@Override
-		public boolean accept(File dir, String name) {
-			return accept(new File(dir, name));
-		}
-	};
-
-	/**
-	 * This filter omits SVN and CSV sub-folders.<br/>
-	 * This {@link IOFileFilter} returns <code>false</code> for folder that
-	 * should be omitted during export and when calculating the size of a
-	 * {@link DpEntry} folder or chen copying folders in general.
-	 */
-	public static final IOFileFilter BlacklistedFoldersFilter = FileFilterUtils
-			.makeCVSAware(FileFilterUtils.makeSVNAware(null));
-
-	/**
-	 * Modi fuer Filter.
-	 * 
-	 * @see IOUtil#createSimpleFileFilter(String, FilterMode)
-	 * @see IOUtil#createRegExFileFilter(String, FilterMode)
-	 * @author mojays
-	 * 
-	 */
-	public static enum FilterMode {
-		/** Der Filter liefert nur Dateien, aber keine Verzeichnisse. */
-		FILES_ONLY,
-		/** Der Filter liefert nur Verzeichnisse, aber keine Dateien. */
-		DIR_ONLY,
-		/** Der Filter liefert Dateien und Verzeichnisse. */
-		ALL
-	}
-
-	/**
-	 * Prueft, ob ein {@link File} einen angegebenen {@link FilterMode}
-	 * erfuellt.
-	 * 
-	 * @param file
-	 *            eine Datei oder ein Verzeichnis
-	 * @param mode
-	 *            Filter-Modus (wenn {@code null} wird {@link FilterMode#ALL}
-	 *            angenommen
-	 * @return {@code false} wenn die angegebenen Datei {@code null} ist
-	 */
-	public static boolean fileFitsFilterMode(File file, FilterMode mode) {
-		if (mode == null)
-			mode = FilterMode.ALL;
-		final boolean acceptFiles = FilterMode.ALL.equals(mode)
-				|| FilterMode.FILES_ONLY.equals(mode);
-		final boolean acceptDirs = FilterMode.ALL.equals(mode)
-				|| FilterMode.DIR_ONLY.equals(mode);
-
-		return file != null
-				&& (file.isDirectory() && acceptDirs || acceptFiles);
-	}
-
-	/**
 	 * Liefert den Index des Dateinames, an der die Dateinamen-Erweiterung
 	 * (inkl. Punkt) beginnt.
 	 * 
@@ -475,7 +383,27 @@
 		}
 	}
 
-	/**
+    /**
+     * Versucht einen Eingabe-Stream zu schliessen.<br>
+     * Dabei werden bei Misserfolg keine Exceptions geworfen! SK: bei
+     * <code>null</code> wird true zurueckgegeben
+     * 
+     * @param in
+     *            zu schliessender Stream
+     * @return <code>false</code> falls das Schliessen nicht erfolgreich war
+     */
+    public static boolean closeReader(Reader in) {
+        if (in == null)
+            return true;
+        try {
+            in.close();
+        } catch (Exception err) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
 	 * Versucht einen Eingabe-Stream zu schliessen.<br>
 	 * Dabei werden bei Misserfolg keine Exceptions geworfen! SK: bei
 	 * <code>null</code> wird true zurueckgegeben
@@ -587,88 +515,6 @@
 	}
 
 	/**
-	 * Erstellt einen Filter fuer einen regulaeren Ausdruck.
-	 * 
-	 * @param filterStr
-	 *            definiert den Filter
-	 */
-	public static FileFilter createRegExFileFilter(final String regEx,
-			final FilterMode mode) {
-		return new FileFilter() {
-			public boolean accept(File file) {
-				return fileFitsFilterMode(file, mode)
-						&& file.getName().matches(regEx);
-			}
-		};
-	}
-
-	/**
-	 * Erstellt einen Filter fuer einen Filter-String. Dieser kann als Wildcard
-	 * das Zeichen "*" enthalten. Alle anderen Zeichen werden direkt als Filter
-	 * verwendet.
-	 * 
-	 * @param filterStr
-	 *            definiert den Filter
-	 */
-	public static FileFilter createSimpleFileFilter(String filterStr,
-			final FilterMode mode) {
-		// Gross/Klein-Schreibung ignorieren
-		filterStr = filterStr.toLowerCase();
-
-		// ##### Filter definiert den "inneren" Teil eines Dateinames #####
-		if (filterStr.startsWith("*") && filterStr.endsWith("*")) {
-			// Filter besteht nur aus "*" --> alle Dateien akzeptieren
-			if (filterStr.length() <= 2)
-				return new FileFilter() {
-					public boolean accept(File file) {
-						return fileFitsFilterMode(file, mode);
-					}
-				};
-			// "inneren" Teil des Filters extrahieren
-			final String condStr = filterStr.substring(1,
-					filterStr.length() - 1);
-			return new FileFilter() {
-				public boolean accept(File file) {
-					return fileFitsFilterMode(file, mode)
-							&& file.getName().toLowerCase().contains(condStr);
-				}
-			};
-		}
-
-		// ##### Filter definiert den Anfang eines Dateinames #####
-		if (filterStr.endsWith("*")) {
-			// Anfang des Filters extrahieren
-			final String condStr = filterStr.substring(0,
-					filterStr.length() - 1);
-			return new FileFilter() {
-				public boolean accept(File file) {
-					return fileFitsFilterMode(file, mode)
-							&& file.getName().toLowerCase().startsWith(condStr);
-				}
-			};
-		}
-		// ##### Filter definiert das Ende eines Dateinames #####
-		if (filterStr.startsWith("*")) {
-			// Ende des Filters extrahieren
-			final String condStr = filterStr.substring(1);
-			return new FileFilter() {
-				public boolean accept(File file) {
-					return fileFitsFilterMode(file, mode)
-							&& file.getName().toLowerCase().endsWith(condStr);
-				}
-			};
-		}
-		// ##### Filter definiert den genauen Dateinamen #####
-		final String condStr = filterStr;
-		return new FileFilter() {
-			public boolean accept(File file) {
-				return fileFitsFilterMode(file, mode)
-						&& file.getName().equalsIgnoreCase(condStr);
-			}
-		};
-	}
-
-	/**
 	 * A replacement for File.toURI().toURL().
 	 * <p>
 	 * The handling of file.toURL() is broken; the handling of
@@ -769,6 +615,31 @@
 		return new File(path3);
 	}
 
+	  /**
+	   * Searches for files in a directory (and its sub folders).
+	   * @param dir directory to search in
+	   * @param fileFilter filter for the files to search for
+	   * @param recursive indicates whether sub directories are
+	   *                  scanned
+	   * @param foundFiles list to store the found files in (if {@code null}
+	   *                   a new list is created and returned)
+	   */
+	  public static Vector<File> findFiles(File dir, FileFilter fileFilter, boolean recursive, Vector<File> foundFiles) {
+	    if ( foundFiles == null )
+	      foundFiles = new Vector<File>();
+	    if ( dir == null || !dir.isDirectory() )
+	      return foundFiles;
+	    
+	    File[] files = dir.listFiles(fileFilter);
+	    LangUtil.addObjectsToVector(files, foundFiles);
+	    if ( recursive ) {
+	      File[] subDirs = dir.listFiles(FilterUtil.ALL_DIRS_FILTER);
+	      for ( File subDir : subDirs )
+	        findFiles(subDir,fileFilter,recursive,foundFiles);
+	    }
+	    return foundFiles;
+	  }
+
 	/**
 	 * Loescht Dateien oder Verzeichnisse in einem Verzeichnis. Das Verzeichnis
 	 * selbst wird dabei NICHT geloescht, auch wenn es am Ende leer ist!
@@ -841,8 +712,8 @@
 				LOGGER.error("Missing arguments for DELDIR.");
 			}
 			File currDir = new File(".");
-			FileFilter filter = createSimpleFileFilter(arg[1],
-					FilterMode.DIR_ONLY);
+			FileFilter filter = FilterUtil.createSimpleFileFilter(arg[1],
+					FilterUtil.FilterMode.DIR_ONLY);
 			int delCount = deleteFiles(currDir, filter, true, true);
 		} else {
 			LOGGER.error("Unknown function: " + func);
@@ -1714,5 +1585,115 @@
 		}
 
 	}
+	
+	//#######################################################
+	// deprecated stuff which now is located in FilterUtil
+	//#######################################################
+    /**
+     * {@link FileFilter}, der alle Dateien akzeptiert, aber keine
+     * Verzeichnisse.
+     * @deprecated use {@link FilterUtil#ALL_FILES_FILTER}
+     */
+    public static final FileFilter ALL_FILES_FILTER = FilterUtil.ALL_FILES_FILTER;
+    /**
+     * {@link FileFilter}, der alle Verzeichnisse akzeptiert, aber keine
+     * "normalen" Dateien.
+     * @deprecated use {@link FilterUtil#ALL_DIRS_FILTER}
+     */
+    public static final FileFilter ALL_DIRS_FILTER = FilterUtil.ALL_DIRS_FILTER;
+    /** 
+     * {@link FileFilter}, der alle Dateien und Verzeichnisse akzeptiert.
+     * @deprecated use {@link FilterUtil#ALL_FILTER}
+     */
+    public static final FileFilter ALL_FILTER = FilterUtil.ALL_FILTER;
 
+    /**
+     * This {@link IOFileFilter} returns <code>false</code> for files that
+     * should be omitted during export and when calculating the size of a
+     * {@link DpEntry} folder.
+     * @deprecated use {@link FilterUtil#BlacklistedFilesFilter}
+     */
+    public static final IOFileFilter BlacklistedFilesFilter = FilterUtil.BlacklistedFilesFilter;
+
+    /**
+     * This filter omits SVN and CSV sub-folders.<br/>
+     * This {@link IOFileFilter} returns <code>false</code> for folder that
+     * should be omitted during export and when calculating the size of a
+     * {@link DpEntry} folder or chen copying folders in general.
+     * @deprecated use {@link FilterUtil#BlacklistedFoldersFilter}
+     */
+    public static final IOFileFilter BlacklistedFoldersFilter = FilterUtil.BlacklistedFoldersFilter;
+
+    /**
+     * Modi fuer Filter.
+     * 
+     * @see IOUtil#createSimpleFileFilter(String, FilterMode)
+     * @see IOUtil#createRegExFileFilter(String, FilterMode)
+     * @author mojays
+     * @deprecated use {@link FilterUtil.FilterMode} 
+     */
+    public static enum FilterMode {
+        /** Der Filter liefert nur Dateien, aber keine Verzeichnisse. */
+        FILES_ONLY,
+        /** Der Filter liefert nur Verzeichnisse, aber keine Dateien. */
+        DIR_ONLY,
+        /** Der Filter liefert Dateien und Verzeichnisse. */
+        ALL;
+
+        /**
+         * Unfortunately enums can not be inherited, so we have to use
+         * a stupid converted method. 
+         * @return
+         */
+        public FilterUtil.FilterMode convert() {
+          switch( this ) {
+            case ALL: return FilterUtil.FilterMode.ALL;
+            case DIR_ONLY: return FilterUtil.FilterMode.DIR_ONLY;
+            case FILES_ONLY: return FilterUtil.FilterMode.FILES_ONLY;
+          }
+          throw new UnsupportedOperationException("FilterMode can not be converted: "+this);
+        }
+    }
+
+    /**
+     * Prueft, ob ein {@link File} einen angegebenen {@link FilterMode}
+     * erfuellt.
+     * 
+     * @param file
+     *            eine Datei oder ein Verzeichnis
+     * @param mode
+     *            Filter-Modus (wenn {@code null} wird {@link FilterMode#ALL}
+     *            angenommen
+     * @return {@code false} wenn die angegebenen Datei {@code null} ist
+     * @deprecated use {@link FilterUtil#fileFitsFilterMode(File, de.schmitzm.io.FilterUtil.FilterMode)}
+     */
+    public static boolean fileFitsFilterMode(File file, FilterMode mode) {
+      return FilterUtil.fileFitsFilterMode(file, mode != null ? mode.convert() : null);
+    }
+
+    /**
+     * Erstellt einen Filter fuer einen regulaeren Ausdruck.
+     * 
+     * @param filterStr
+     *            definiert den Filter
+     * @deprecated use {@link FilterUtil#createRegExFileFilter(String, de.schmitzm.io.FilterUtil.FilterMode)}
+     */
+    public static FileFilter createRegExFileFilter(final String regEx,
+            final FilterMode mode) {
+      return FilterUtil.createRegExFileFilter(regEx, mode != null ? mode.convert() : null);
+    }
+
+    /**
+     * Erstellt einen Filter fuer einen Filter-String. Dieser kann als Wildcard
+     * das Zeichen "*" enthalten. Alle anderen Zeichen werden direkt als Filter
+     * verwendet.
+     * 
+     * @param filterStr
+     *            definiert den Filter
+     * @deprecated use {@link FilterUtil#createSimpleFileFilter(String, de.schmitzm.io.FilterUtil.FilterMode)}
+     */
+    public static FileFilter createSimpleFileFilter(String filterStr,
+            final FilterMode mode) {
+      return FilterUtil.createSimpleFileFilter(filterStr, mode != null ? mode.convert() : null);
+    }
 }



More information about the Schmitzm-commits mailing list