private List<FileSet> createFileSets(List<String> files, int level, boolean packaged, String packageName, boolean filtered, String defaultEncoding) {
List<FileSet> fileSets = new ArrayList<FileSet>();
if (!files.isEmpty()) {
log.debug("Creating filesets" + (packaged ? (" packaged (" + packageName + ")") : "") + (filtered ? " filtered" : "") + " at level " + level);
if (level == 0) {
List<String> includes = new ArrayList<String>();
List<String> excludes = new ArrayList<String>();
for (String file : files) {
includes.add(file);
}
if (!includes.isEmpty()) {
fileSets.add(createFileSet(excludes, packaged, filtered, "", includes, defaultEncoding));
}
}
else {
Map<String,List<String>> groups = getGroupsMap(files, level);
for (String group : groups.keySet()) {
log.debug("Creating filesets for group " + group);
if (!packaged) {
fileSets.add(getUnpackagedFileSet(filtered, group, groups.get(group), defaultEncoding));
}
else {
fileSets.addAll(getPackagedFileSets(filtered, group, groups.get(group), packageName, defaultEncoding));
}
}
}
log.debug("Resolved fileSets " + fileSets);
}
return fileSets;
}