Hi,
After thinking this through this morning on the ride into work, here is
a version of the refactoring (extract method) that doesn't use any
reflection (so should satisfy both Antoine and Matt ;))
Attached patch for testing purposes too.
/**
* Process included file.
* @param name path of the file relative to the directory of the
FileSet.
* @param file included File.
*/
private void accountForIncludedFile(String name, File file) {
processIncluded(name, file, filesIncluded, filesExcluded,
filesDeselected);
}
/**
* Process included directory.
* @param name path of the directory relative to the directory of
* the FileSet.
* @param file directory as File.
* @param fast whether to perform fast scans.
*/
private void accountForIncludedDir(String name, File file, boolean
fast) {
processIncluded(name, file, dirsIncluded, dirsExcluded,
dirsDeselected);
if (fast && couldHoldIncluded(name) && !contentsExcluded(name))
{
scandir(file, name + File.separator, fast);
}
}
private void processIncluded(String name, File file, Vector inc,
Vector exc, Vector des) {
if (inc.contains(name) || exc.contains(name) ||
des.contains(name)) { return; }
boolean included = false;
if (isExcluded(name)) {
exc.add(name);
} else if(isSelected(name, file)) {
included = true;
inc.add(name);
} else {
des.add(name);
}
everythingIncluded &= included;
}
Index: .
===================================================================
--- . (revision 434293)
+++ . (working copy)
@@ -1115,21 +1115,7 @@
* @param file included File.
*/
private void accountForIncludedFile(String name, File file) {
- if (filesIncluded.contains(name)
- || filesExcluded.contains(name)
- || filesDeselected.contains(name)) {
- return;
- }
- boolean included = false;
- if (isExcluded(name)) {
- filesExcluded.addElement(name);
- } else if (isSelected(name, file)) {
- included = true;
- filesIncluded.addElement(name);
- } else {
- filesDeselected.addElement(name);
- }
- everythingIncluded &= included;
+ processIncluded(name, file, filesIncluded, filesExcluded, filesDeselected);
}
/**
@@ -1140,24 +1126,26 @@
* @param fast whether to perform fast scans.
*/
private void accountForIncludedDir(String name, File file, boolean fast) {
- if (dirsIncluded.contains(name)
- || dirsExcluded.contains(name)
- || dirsDeselected.contains(name)) {
- return;
+ processIncluded(name, file, dirsIncluded, dirsExcluded, dirsDeselected);
+ if (fast && couldHoldIncluded(name) && !contentsExcluded(name)) {
+ scandir(file, name + File.separator, fast);
}
+ }
+
+ private void processIncluded(String name, File file, Vector inc, Vector exc, Vector des) {
+
+ if (inc.contains(name) || exc.contains(name) || des.contains(name)) { return; }
+
boolean included = false;
if (isExcluded(name)) {
- dirsExcluded.addElement(name);
- } else if (isSelected(name, file)) {
+ exc.add(name);
+ } else if(isSelected(name, file)) {
included = true;
- dirsIncluded.addElement(name);
+ inc.add(name);
} else {
- dirsDeselected.addElement(name);
+ des.add(name);
}
everythingIncluded &= included;
- if (fast && couldHoldIncluded(name) && !contentsExcluded(name)) {
- scandir(file, name + File.separator, fast);
- }
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]