You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2008/11/30 12:55:59 UTC

svn commit: r721801 - in /activemq/camel/trunk/camel-core/src: main/java/org/apache/camel/component/file/DefaultFileSorter.java test/java/org/apache/camel/component/file/FileConsumerFileFilterTest.java

Author: davsclaus
Date: Sun Nov 30 03:55:58 2008
New Revision: 721801

URL: http://svn.apache.org/viewvc?rev=721801&view=rev
Log:
CAMEL-1112: Added file language expression based sorting incl. grouping (quite fancy)

Modified:
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/DefaultFileSorter.java
    activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileFilterTest.java

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/DefaultFileSorter.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/DefaultFileSorter.java?rev=721801&r1=721800&r2=721801&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/DefaultFileSorter.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/DefaultFileSorter.java Sun Nov 30 03:55:58 2008
@@ -34,61 +34,80 @@
     }
 
     /**
-     * Returns a new sory by name
+     * Returns a new sort by name
      */
-    public static Comparator<File> sortByName() {
+    public static Comparator<File> sortByName(final boolean reverse) {
         return new Comparator<File>() {
             public int compare(File o1, File o2) {
-                return o1.getName().compareTo(o2.getName());
+                int answer = o1.getName().compareTo(o2.getName());
+                return reverse ? -1 * answer : answer;
             }
         };
     }
 
     /**
-     * Returns a new sory by path name
+     * Returns a new sort by path name
      */
-    public static Comparator<File> sortByPathName() {
+    public static Comparator<File> sortByPathName(final boolean reverse) {
         return new Comparator<File>() {
             public int compare(File o1, File o2) {
-                return o1.getPath().compareTo(o2.getPath());
+                int answer = o1.getPath().compareTo(o2.getPath());
+                return reverse ? -1 * answer : answer;
             }
         };
     }
 
     /**
-     * Returns a new sory by last modified (newest first)
+     * Returns a new sort by last modified (newest first)
      */
-    public static Comparator<File> sortByLastModified() {
+    public static Comparator<File> sortByLastModified(final boolean reverse) {
         return new Comparator<File>() {
             public int compare(File o1, File o2) {
                 long delta = o1.lastModified() - o2.lastModified();
                 if (delta == 0) {
                     return 0;
                 }
-                return delta > 0 ? 1 : -1;
+                int answer = delta > 0 ? 1 : -1;
+                return reverse ? -1 * answer : answer;
             }
         };
     }
 
     /**
-     * Returns a new sory by file size (smallest first)
+     * Returns a new sort by file size (smallest first)
      */
-    public static Comparator<File> sortBySize() {
+    public static Comparator<File> sortBySize(final boolean reverse) {
         return new Comparator<File>() {
             public int compare(File o1, File o2) {
                 long delta = o1.length() - o2.length();
                 if (delta == 0) {
                     return 0;
                 } 
-                return delta > 0 ? 1 : -1;
+                int answer = delta > 0 ? 1 : -1;
+                return reverse ? -1 * answer : answer;
             }
         };
     }
 
+    /**
+     * Returns a new sory by file language expression
+     *
+     * @param expression  the file language expression
+     * @param reverse  true to reverse order
+     * @return the comparator
+     */
     public static Comparator<FileExchange> sortByFileLanguage(final String expression, final boolean reverse) {
         return sortByFileLanguage(expression, reverse, null);
     }
 
+    /**
+     * Returns a new sory by file language expression
+     *
+     * @param expression  the file language expression
+     * @param reverse  true to reverse order
+     * @param nested  nested comparator for sub group sorting, can be null
+     * @return the comparator
+     */
     public static Comparator<FileExchange> sortByFileLanguage(final String expression, final boolean reverse,
                                                               final Comparator<FileExchange> nested) {
         return new Comparator<FileExchange>() {

Modified: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileFilterTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileFilterTest.java?rev=721801&r1=721800&r2=721801&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileFilterTest.java (original)
+++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileFilterTest.java Sun Nov 30 03:55:58 2008
@@ -77,9 +77,13 @@
         };
     }
 
+    // START SNIPPET: e1
     public class MyFileFilter implements FileFilter {
         public boolean accept(File pathname) {
+            // we dont accept any files starting with skip in the name
             return !pathname.getName().startsWith("skip");
         }
     }
+    // END SNIPPET: e1
+
 }
\ No newline at end of file