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