Update of /cvsroot/commonjava/commonjava-projects/commonjava-dirdigester/src/java/org/commonjava/dirdigester
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19044/src/java/org/commonjava/dirdigester
Modified Files:
DirectoryDigester.java DirDigestOptions.java
Log Message:
modified options class to accept a filename filter directly, and made the digester check for this before creating one from the fileMask.
Index: DirectoryDigester.java
===================================================================
RCS file: /cvsroot/commonjava/commonjava-projects/commonjava-dirdigester/src/java/org/commonjava/dirdigester/DirectoryDigester.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- DirectoryDigester.java 17 Jan 2004 04:13:35 -0000 1.1.1.1
+++ DirectoryDigester.java 2 Feb 2004 07:03:53 -0000 1.2
@@ -101,10 +101,12 @@
private DirectoryDigest _generateDigests(DirDigestOptions info) throws DirectoryDigestException {
try {
- String mask = info.getFileMask();
- FilenameFilter filter = null;
- if(mask != null) {
- filter = new RegexFilenameFilter(mask, info.maskAbsolutePath());
+ FilenameFilter filter = info.getFilenameFilter();
+ if(filter == null){
+ String mask = info.getFileMask();
+ if(mask != null) {
+ filter = new RegexFilenameFilter(mask, info.maskAbsolutePath());
+ }
}
String[] filenames = null;
Index: DirDigestOptions.java
===================================================================
RCS file: /cvsroot/commonjava/commonjava-projects/commonjava-dirdigester/src/java/org/commonjava/dirdigester/DirDigestOptions.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- DirDigestOptions.java 31 Dec 2003 01:19:57 -0000 1.1.1.1
+++ DirDigestOptions.java 2 Feb 2004 07:03:53 -0000 1.2
@@ -1,6 +1,7 @@
/* Created on Dec 30, 2003 */
package org.commonjava.dirdigester;
+import java.io.FilenameFilter;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -14,6 +15,7 @@
private String file;
private String directory;
private String fileMask;
+ private FilenameFilter filenameFilter;
private boolean maskAbsolutePath = true;
private boolean recurse = true;
private boolean trimBaseDir = false;
@@ -136,6 +138,7 @@
this.file = (String)in.readObject();
this.directory = (String)in.readObject();
this.fileMask = (String)in.readObject();
+ this.filenameFilter = (FilenameFilter)in.readObject();
this.maskAbsolutePath = in.readBoolean();
this.recurse = in.readBoolean();
this.trimBaseDir = in.readBoolean();
@@ -145,9 +148,30 @@
out.writeObject(file);
out.writeObject(directory);
out.writeObject(fileMask);
+ out.writeObject(filenameFilter);
out.writeBoolean(maskAbsolutePath);
out.writeBoolean(recurse);
out.writeBoolean(trimBaseDir);
}
+ /**
+ * @return
+ */
+ public FilenameFilter getFilenameFilter() {
+ return filenameFilter;
+ }
+
+ /**
+ * @param filter
+ */
+ public void setFilenameFilter(FilenameFilter filter) {
+ if(!(filter instanceof Serializable)){
+ throw new IllegalArgumentException(
+ "Cannot use non-serializable FilenameFilter in DirDigestOptions, " +
"since options must persist with directory signature."
+ );
+ }
+
+ filenameFilter = filter;
+ }
+
}
|