//
boolean upToDate = true;
Enumeration enumTargetLists = targetFileLists.elements();
while (enumTargetLists.hasMoreElements()) {
FileList targetFL = (FileList) enumTargetLists.nextElement();
String[] targetFiles = targetFL.getFiles(project);
for (int i = 0; i < targetFiles.length; i++) {
File dest = new File(targetFL.getDir(project), targetFiles[i]);
if (!dest.exists()) {
log(targetFiles[i]+ " does not exist.", Project.MSG_VERBOSE);
upToDate = false;
continue;
}
else {
allTargets.addElement(dest);
}
if (dest.lastModified() > now) {
log("Warning: "+targetFiles[i]+" modified in the future.",
Project.MSG_WARN);
}
}
}
//
// Check targets vs source files specified via filesets
//
if (upToDate) {
Enumeration enumSourceSets = sourceFileSets.elements();
while (upToDate && enumSourceSets.hasMoreElements()) {
FileSet sourceFS = (FileSet) enumSourceSets.nextElement();
DirectoryScanner sourceDS = sourceFS.getDirectoryScanner(project);
String[] sourceFiles = sourceDS.getIncludedFiles();
int i = 0;
do {
File src = new File(sourceFS.getDir(project), sourceFiles[i]);
if (src.lastModified() > now) {
log("Warning: "+sourceFiles[i]+" modified in the future.",
Project.MSG_WARN);
}
Enumeration enumTargets = allTargets.elements();
while (upToDate && enumTargets.hasMoreElements()) {
File dest = (File)enumTargets.nextElement();
if (src.lastModified() > dest.lastModified()) {
log(dest.getPath() + " is out of date with respect to " +
sourceFiles[i], Project.MSG_VERBOSE);
upToDate = false;
}
}
} while (upToDate && (++i < sourceFiles.length) );
}
}
//
// Check targets vs source files specified via filelists
//
if (upToDate) {
Enumeration enumSourceLists = sourceFileLists.elements();
while (upToDate && enumSourceLists.hasMoreElements()) {
FileList sourceFL = (FileList) enumSourceLists.nextElement();
String[] sourceFiles = sourceFL.getFiles(project);
int i = 0;
do {
File src = new File(sourceFL.getDir(project), sourceFiles[i]);
if (src.lastModified() > now) {
log("Warning: "+sourceFiles[i]+" modified in the future.",
Project.MSG_WARN);
}