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


import org.apache.tools.ant.DirectoryScanner; 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.FileResource;
import org.apache.tools.ant.types.resources.FileResourceIterator; 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. * Get the set of Resources that represent files.
* @param project since Ant 1.8
* @return an Iterator of Resources. * @return an Iterator of Resources.
* @since Ant 1.7 * @since Ant 1.7
*/ */
/* package-private for now */ Iterator getResourceFiles() {
/* package-private for now */ Iterator getResourceFiles(Project project) {
if (src == null) { if (src == null) {
return new FileResourceIterator(getBasedir(), getIncludedFiles());
return new FileResourceIterator(project, getBasedir(), getIncludedFiles());
} }
scanme(); scanme();
return matchFileEntries.values().iterator(); return matchFileEntries.values().iterator();
@@ -202,12 +204,13 @@ public abstract class ArchiveScanner extends DirectoryScanner {


/** /**
* Get the set of Resources that represent directories. * Get the set of Resources that represent directories.
* @param project since Ant 1.8
* @return an Iterator of Resources. * @return an Iterator of Resources.
* @since Ant 1.7 * @since Ant 1.7
*/ */
/* package-private for now */ Iterator getResourceDirectories() {
/* package-private for now */ Iterator getResourceDirectories(Project project) {
if (src == null) { if (src == null) {
return new FileResourceIterator(getBasedir(), getIncludedDirectories());
return new FileResourceIterator(project, getBasedir(), getIncludedDirectories());
} }
scanme(); scanme();
return matchDirEntries.values().iterator(); 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()) { if (isReference()) {
return ((DirSet) getRef(getProject())).iterator(); return ((DirSet) getRef(getProject())).iterator();
} }
return new FileResourceIterator(getDir(getProject()),
return new FileResourceIterator(getProject(), getDir(getProject()),
getDirectoryScanner(getProject()).getIncludedDirectories()); 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()) { if (isReference()) {
return ((FileList) getRef(getProject())).iterator(); return ((FileList) getRef(getProject())).iterator();
} }
return new FileResourceIterator(dir,
return new FileResourceIterator(getProject(), dir,
(String[]) (filenames.toArray(new String[filenames.size()]))); (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()) { if (isReference()) {
return ((FileSet) getRef(getProject())).iterator(); return ((FileSet) getRef(getProject())).iterator();
} }
return new FileResourceIterator(getDir(getProject()),
return new FileResourceIterator(getProject(), getDir(getProject()),
getDirectoryScanner(getProject()).getIncludedFiles()); 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. * @return an iterator.
*/ */
public Iterator 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(); dieOnCircularReference();
if (getPreserveBC()) { if (getPreserveBC()) {
return new FileResourceIterator(null, list());
return new FileResourceIterator(getProject(), null, list());
} }
return union == null ? EMPTY_ITERATOR return union == null ? EMPTY_ITERATOR
: assertFilesystemOnly(union).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()) { if (isReference()) {
return ((FileSet) getRef(getProject())).iterator(); return ((FileSet) getRef(getProject())).iterator();
} }
FileResourceIterator result = new FileResourceIterator(getDir());
FileResourceIterator result = new FileResourceIterator(getProject(), getDir());
result.addFiles(getDirectoryScanner().getIncludedFiles()); result.addFiles(getDirectoryScanner().getIncludedFiles());
result.addFiles(getDirectoryScanner().getIncludedDirectories()); result.addFiles(getDirectoryScanner().getIncludedDirectories());
return result; 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.Iterator;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;


import org.apache.tools.ant.Project;

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


/** /**
* Construct a new FileResourceIterator. * Construct a new FileResourceIterator.
* @deprecated in favor of {@link FileResourceIterator#FileResourceIterator(Project)}
*/ */
public FileResourceIterator() { 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 * Construct a new FileResourceIterator relative to the specified
* base directory. * 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, * Construct a new FileResourceIterator over the specified filenames,
* relative to the specified base directory. * 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()) { if (!hasNext()) {
throw new NoSuchElementException(); 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) { if (fct + dct == 0) {
return EMPTY_ITERATOR; return EMPTY_ITERATOR;
} }
FileResourceIterator result = new FileResourceIterator();
FileResourceIterator result = new FileResourceIterator(getProject());
if (fct > 0) { if (fct > 0) {
result.addFiles(ds.getIncludedFiles()); result.addFiles(ds.getIncludedFiles());
} }


Loading…
Cancel
Save