Browse Source

add Project to FileResourceIterator

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@671690 13f79535-47bb-0310-9956-ffa450edef68
master
Matthew Jason Benson 17 years ago
parent
commit
eb12bd93a0
10 changed files with 70 additions and 24 deletions
  1. +5
    -3
      src/main/org/apache/tools/ant/taskdefs/Delete.java
  2. +1
    -1
      src/main/org/apache/tools/ant/types/ArchiveFileSet.java
  3. +7
    -4
      src/main/org/apache/tools/ant/types/ArchiveScanner.java
  4. +1
    -1
      src/main/org/apache/tools/ant/types/DirSet.java
  5. +1
    -1
      src/main/org/apache/tools/ant/types/FileList.java
  6. +1
    -1
      src/main/org/apache/tools/ant/types/FileSet.java
  7. +2
    -2
      src/main/org/apache/tools/ant/types/Path.java
  8. +1
    -1
      src/main/org/apache/tools/ant/types/resources/BCFileSet.java
  9. +50
    -9
      src/main/org/apache/tools/ant/types/resources/FileResourceIterator.java
  10. +1
    -1
      src/main/org/apache/tools/ant/types/resources/Files.java

+ 5
- 3
src/main/org/apache/tools/ant/taskdefs/Delete.java View File

@@ -83,15 +83,17 @@ public class Delete extends MatchingTask {
return ((Comparable) foo).compareTo(bar) * -1;
}
};
private Project project;
private File basedir;
private String[] dirs;
ReverseDirs(File basedir, String[] dirs) {
ReverseDirs(Project project, File basedir, String[] dirs) {
this.project = project;
this.basedir = basedir;
this.dirs = dirs;
Arrays.sort(this.dirs, REVERSE);
}
public Iterator iterator() {
return new FileResourceIterator(basedir, dirs);
return new FileResourceIterator(project, basedir, dirs);
}
public boolean isFilesystemOnly() { return true; }
public int size() { return dirs.length; }
@@ -571,7 +573,7 @@ public class Delete extends MatchingTask {
} else {
resourcesToDelete.add(fs);
if (includeEmpty) {
filesetDirs.add(new ReverseDirs(fsDir, fs
filesetDirs.add(new ReverseDirs(getProject(), fsDir, fs
.getDirectoryScanner().getIncludedDirectories()));
}
}


+ 1
- 1
src/main/org/apache/tools/ant/types/ArchiveFileSet.java View File

@@ -270,7 +270,7 @@ public abstract class ArchiveFileSet extends FileSet {
return super.iterator();
}
ArchiveScanner as = (ArchiveScanner) getDirectoryScanner(getProject());
return as.getResourceFiles();
return as.getResourceFiles(getProject());
}

/**


+ 7
- 4
src/main/org/apache/tools/ant/types/ArchiveScanner.java View File

@@ -25,6 +25,7 @@ import java.util.TreeMap;
import java.util.Iterator;

import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.resources.FileResource;
import org.apache.tools.ant.types.resources.FileResourceIterator;

@@ -189,12 +190,13 @@ public abstract class ArchiveScanner extends DirectoryScanner {

/**
* Get the set of Resources that represent files.
* @param project since Ant 1.8
* @return an Iterator of Resources.
* @since Ant 1.7
*/
/* package-private for now */ Iterator getResourceFiles() {
/* package-private for now */ Iterator getResourceFiles(Project project) {
if (src == null) {
return new FileResourceIterator(getBasedir(), getIncludedFiles());
return new FileResourceIterator(project, getBasedir(), getIncludedFiles());
}
scanme();
return matchFileEntries.values().iterator();
@@ -202,12 +204,13 @@ public abstract class ArchiveScanner extends DirectoryScanner {

/**
* Get the set of Resources that represent directories.
* @param project since Ant 1.8
* @return an Iterator of Resources.
* @since Ant 1.7
*/
/* package-private for now */ Iterator getResourceDirectories() {
/* package-private for now */ Iterator getResourceDirectories(Project project) {
if (src == null) {
return new FileResourceIterator(getBasedir(), getIncludedDirectories());
return new FileResourceIterator(project, getBasedir(), getIncludedDirectories());
}
scanme();
return matchDirEntries.values().iterator();


+ 1
- 1
src/main/org/apache/tools/ant/types/DirSet.java View File

@@ -67,7 +67,7 @@ public class DirSet extends AbstractFileSet implements ResourceCollection {
if (isReference()) {
return ((DirSet) getRef(getProject())).iterator();
}
return new FileResourceIterator(getDir(getProject()),
return new FileResourceIterator(getProject(), getDir(getProject()),
getDirectoryScanner(getProject()).getIncludedDirectories());
}



+ 1
- 1
src/main/org/apache/tools/ant/types/FileList.java View File

@@ -192,7 +192,7 @@ public class FileList extends DataType implements ResourceCollection {
if (isReference()) {
return ((FileList) getRef(getProject())).iterator();
}
return new FileResourceIterator(dir,
return new FileResourceIterator(getProject(), dir,
(String[]) (filenames.toArray(new String[filenames.size()])));
}



+ 1
- 1
src/main/org/apache/tools/ant/types/FileSet.java View File

@@ -66,7 +66,7 @@ public class FileSet extends AbstractFileSet implements ResourceCollection {
if (isReference()) {
return ((FileSet) getRef(getProject())).iterator();
}
return new FileResourceIterator(getDir(getProject()),
return new FileResourceIterator(getProject(), getDir(getProject()),
getDirectoryScanner(getProject()).getIncludedFiles());
}



+ 2
- 2
src/main/org/apache/tools/ant/types/Path.java View File

@@ -121,7 +121,7 @@ public class Path extends DataType implements Cloneable, ResourceCollection {
* @return an iterator.
*/
public Iterator iterator() {
return new FileResourceIterator(null, parts);
return new FileResourceIterator(getProject(), null, parts);
}

/**
@@ -688,7 +688,7 @@ public class Path extends DataType implements Cloneable, ResourceCollection {
}
dieOnCircularReference();
if (getPreserveBC()) {
return new FileResourceIterator(null, list());
return new FileResourceIterator(getProject(), null, list());
}
return union == null ? EMPTY_ITERATOR
: assertFilesystemOnly(union).iterator();


+ 1
- 1
src/main/org/apache/tools/ant/types/resources/BCFileSet.java View File

@@ -50,7 +50,7 @@ public class BCFileSet extends FileSet {
if (isReference()) {
return ((FileSet) getRef(getProject())).iterator();
}
FileResourceIterator result = new FileResourceIterator(getDir());
FileResourceIterator result = new FileResourceIterator(getProject(), getDir());
result.addFiles(getDirectoryScanner().getIncludedFiles());
result.addFiles(getDirectoryScanner().getIncludedDirectories());
return result;


+ 50
- 9
src/main/org/apache/tools/ant/types/resources/FileResourceIterator.java View File

@@ -21,39 +21,78 @@ import java.io.File;
import java.util.Iterator;
import java.util.NoSuchElementException;

import org.apache.tools.ant.Project;

/**
* Iterator of FileResources from filenames.
* @since Ant 1.7
*/
public class FileResourceIterator implements Iterator {
private Project project;
private File basedir;
private String[] files;
private int pos = 0;

/**
* Construct a new FileResourceIterator.
* @deprecated in favor of {@link FileResourceIterator#FileResourceIterator(Project)}
*/
public FileResourceIterator() {
}

/**
* Create a new FileResourceIterator.
* @param project associated Project instance
* @since Ant 1.8
*/
public FileResourceIterator(Project project) {
this.project = project;
}

/**
* Construct a new FileResourceIterator relative to the specified
* base directory.
* @param f the base directory of this instance.
* @param basedir the base directory of this instance.
* @deprecated in favor of {@link FileResourceIterator#FileResourceIterator(Project, File)}
*/
public FileResourceIterator(File basedir) {
this(null, basedir);
}

/**
* Construct a new FileResourceIterator relative to the specified
* base directory.
* @param project associated Project instance
* @param basedir the base directory of this instance.
* @since Ant 1.8
*/
public FileResourceIterator(Project project, File basedir) {
this(project);
this.basedir = basedir;
}

/**
* Construct a new FileResourceIterator over the specified filenames,
* relative to the specified base directory.
* @param basedir the base directory of this instance.
* @param filenames the String[] of filenames.
* @deprecated in favor of {@link FileResourceIterator#FileResourceIterator(Project, File, String[])}
*/
public FileResourceIterator(File f) {
basedir = f;
public FileResourceIterator(File basedir, String[] filenames) {
this(null, basedir, filenames);
}

/**
* Construct a new FileResourceIterator over the specified filenames,
* relative to the specified base directory.
* @param f the base directory of this instance.
* @param s the String[] of filenames.
* @param project associated Project instance
* @param basedir the base directory of this instance.
* @param filenames the String[] of filenames.
* @since Ant 1.8
*/
public FileResourceIterator(File f, String[] s) {
this(f);
addFiles(s);
public FileResourceIterator(Project project, File basedir, String[] filenames) {
this(project, basedir);
addFiles(filenames);
}

/**
@@ -101,7 +140,9 @@ public class FileResourceIterator implements Iterator {
if (!hasNext()) {
throw new NoSuchElementException();
}
return new FileResource(basedir, files[pos++]);
FileResource result = new FileResource(basedir, files[pos++]);
result.setProject(project);
return result;
}

}

+ 1
- 1
src/main/org/apache/tools/ant/types/resources/Files.java View File

@@ -321,7 +321,7 @@ public class Files extends AbstractSelectorContainer
if (fct + dct == 0) {
return EMPTY_ITERATOR;
}
FileResourceIterator result = new FileResourceIterator();
FileResourceIterator result = new FileResourceIterator(getProject());
if (fct > 0) {
result.addFiles(ds.getIncludedFiles());
}


Loading…
Cancel
Save