bodewig 02/04/03 00:53:39
Modified: src/main/org/apache/tools/ant/taskdefs UpToDate.java
Log:
allow srcfile to be combined with a mapper in <uptodate>
Revision Changes Path
1.15 +19 -14
jakarta-ant/src/main/org/apache/tools/ant/taskdefs/UpToDate.java
Index: UpToDate.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/UpToDate.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- UpToDate.java 31 Mar 2002 21:21:37 -0000 1.14
+++ UpToDate.java 3 Apr 2002 08:53:39 -0000 1.15
@@ -161,29 +161,25 @@
*/
public boolean eval() {
if (sourceFileSets.size() == 0 && _sourceFile == null) {
- throw new BuildException("At least one srcfile or a nested
<srcfiles> element must be set.");
+ throw new BuildException("At least one srcfile or a nested
<srcfiles> element must be set.");
}
if (sourceFileSets.size() > 0 && _sourceFile != null) {
- throw new BuildException("Cannot specify both the srcfile
attribute and a nested <srcfiles> element.");
+ throw new BuildException("Cannot specify both the srcfile
attribute and a nested <srcfiles> element.");
}
if (_targetFile == null && mapperElement == null) {
- throw new BuildException("The targetfile attribute or a nested
mapper element must be set.");
- }
-
- if (_sourceFile != null && mapperElement != null) {
- throw new BuildException("Cannot specify both the srcfile
attribute and a nested mapper element.");
+ throw new BuildException("The targetfile attribute or a nested
mapper element must be set.");
}
// if the target file is not there, then it can't be up-to-date
if (_targetFile != null && !_targetFile.exists()) {
- return false;
+ return false;
}
// if the source file isn't there, throw an exception
if (_sourceFile != null && !_sourceFile.exists()) {
- throw new BuildException(_sourceFile.getAbsolutePath() + " not
found.");
+ throw new BuildException(_sourceFile.getAbsolutePath() + " not
found.");
}
Enumeration enum = sourceFileSets.elements();
@@ -191,13 +187,22 @@
while (upToDate && enum.hasMoreElements()) {
FileSet fs = (FileSet) enum.nextElement();
DirectoryScanner ds = fs.getDirectoryScanner(project);
- upToDate = upToDate && scanDir(fs.getDir(project),
- ds.getIncludedFiles());
+ upToDate = upToDate && scanDir(fs.getDir(project),
+ ds.getIncludedFiles());
}
+
if (_sourceFile != null) {
- File srcfile = new File(_sourceFile.getAbsolutePath());
- File tgtfile = new File(_targetFile.getAbsolutePath());
- upToDate = (tgtfile.lastModified() > srcfile.lastModified());
+ if (mapperElement == null) {
+ upToDate = upToDate &&
+ (_targetFile.lastModified() >
_sourceFile.lastModified());
+ } else {
+ SourceFileScanner sfs = new SourceFileScanner(this);
+ upToDate = upToDate &&
+ (sfs.restrict(new String[]
{_sourceFile.getAbsolutePath()},
+ null, null,
+ mapperElement.getImplementation())
+ .length == 0);
+ }
}
return upToDate;
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>