Browse Source

Expressing a <dirset> as a string should show matching dirs, not files!

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@425875 13f79535-47bb-0310-9956-ffa450edef68
master
Jesse N. Glick 19 years ago
parent
commit
e0ab0539c4
2 changed files with 42 additions and 3 deletions
  1. +20
    -1
      src/main/org/apache/tools/ant/types/DirSet.java
  2. +22
    -2
      src/testcases/org/apache/tools/ant/types/DirSetTest.java

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

@@ -18,7 +18,7 @@
package org.apache.tools.ant.types;

import java.util.Iterator;
import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.types.resources.FileResourceIterator;

/**
@@ -91,4 +91,23 @@ public class DirSet extends AbstractFileSet implements ResourceCollection {
return true;
}

/**
* Returns included directories as a list of semicolon-separated paths.
*
* @return a <code>String</code> of included directories.
*/
public String toString() {
DirectoryScanner ds = getDirectoryScanner(getProject());
String[] dirs = ds.getIncludedDirectories();
StringBuffer sb = new StringBuffer();

for (int i = 0; i < dirs.length; i++) {
if (i > 0) {
sb.append(';');
}
sb.append(dirs[i]);
}
return sb.toString();
}

}

+ 22
- 2
src/testcases/org/apache/tools/ant/types/DirSetTest.java View File

@@ -17,6 +17,8 @@

package org.apache.tools.ant.types;

import java.io.File;
import java.io.FileOutputStream;
import org.apache.tools.ant.BuildException;

/**
@@ -39,7 +41,7 @@ public class DirSetTest extends AbstractFileSetTest {
FileSet fs = new FileSet();
fs.setProject(getProject());
getProject().addReference("dummy", fs);
ds.setRefid(new Reference("dummy"));
ds.setRefid(new Reference(getProject(), "dummy"));
try {
ds.getDir(getProject());
fail("DirSet created from FileSet reference");
@@ -50,7 +52,7 @@ public class DirSetTest extends AbstractFileSetTest {
ds = (DirSet) getInstance();
ds.setProject(getProject());
getProject().addReference("dummy2", ds);
fs.setRefid(new Reference("dummy2"));
fs.setRefid(new Reference(getProject(), "dummy2"));
try {
fs.getDir(getProject());
fail("FileSet created from DirSet reference");
@@ -59,4 +61,22 @@ public class DirSetTest extends AbstractFileSetTest {
}
}

public void testToString() throws Exception {
File tmp = File.createTempFile("DirSetTest", "");
tmp.delete();
File a = new File(tmp, "a");
a.mkdirs();
File b = new File(tmp, "b");
File bc = new File(b, "c");
bc.mkdirs();
new FileOutputStream(new File(a, "x")).close();
new FileOutputStream(new File(b, "x")).close();
new FileOutputStream(new File(bc, "x")).close();
DirSet ds = new DirSet();
ds.setProject(getProject());
ds.setDir(tmp);
ds.setIncludes("b/");
assertEquals("b;b" + File.separator + "c", ds.toString());
}

}

Loading…
Cancel
Save