diff --git a/src/main/org/apache/tools/ant/types/DirSet.java b/src/main/org/apache/tools/ant/types/DirSet.java index 7fa1b542e..82313df36 100644 --- a/src/main/org/apache/tools/ant/types/DirSet.java +++ b/src/main/org/apache/tools/ant/types/DirSet.java @@ -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 String 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(); + } + } diff --git a/src/testcases/org/apache/tools/ant/types/DirSetTest.java b/src/testcases/org/apache/tools/ant/types/DirSetTest.java index 27a73fb11..e8f60aafc 100644 --- a/src/testcases/org/apache/tools/ant/types/DirSetTest.java +++ b/src/testcases/org/apache/tools/ant/types/DirSetTest.java @@ -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()); + } + }