Path path = (Path) collection;
Iterator<?> pathIter = path.iterator();
while (pathIter.hasNext()) {
ResourceCollection c = (ResourceCollection) pathIter.next();
if (c instanceof AbstractFileSet) {
AbstractFileSet fs = (AbstractFileSet) c;
builder.addArg("--basedir", baseDir(fs));
createArgumentsForFilenames( builder, getFilenames(fs));
} else if (c instanceof FileResource) {
FileResource f = (FileResource) c;
if (f.getFile().isDirectory()) {
// directory
FileSet fs = new FileSet();
fs.setProject(getProject());
fs.setDir(f.getFile());
builder.addArg("--basedir", baseDir(fs));
createArgumentsForFilenames( builder, getFilenames(fs));
} else {
System.err.println("Unexpected type " + c.getClass().getName() + " " + c.toString());
}
} else {
System.err.println("Unexpected type " + c.getClass().getName() + " " + c.toString());
}
}
}
else if (collection instanceof FileSet)
{
filesetFound = true;
FileSet fileSet = (FileSet) collection;
builder.addArg("--basedir", baseDir(fileSet));
createArgumentsForFilenames( builder, getFilenames(fileSet));
}
else
{
if (filesetFound)
{
/*
* Once --basedir has been used, it cannot be undone without changes to the
* Main methods. So, any dirsets have to come before filesets.
*/
throw new MoxieException("Dirsets have to come before filesets");
}
AbstractFileSet fileSet = (AbstractFileSet) collection;
createArgumentsForFilenames( builder, getDirectoryScanner(fileSet).getIncludedDirectories());
}
}
}