You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by js...@apache.org on 2002/08/19 09:07:01 UTC

cvs commit: jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/ant FileIterator.java FileScanner.java

jstrachan    2002/08/19 00:07:01

  Modified:    jelly/src/test/org/apache/commons/jelly/ant
                        filescanner.jelly
               jelly/src/java/org/apache/commons/jelly/tags/ant
                        FileIterator.java FileScanner.java
  Log:
  Applied Calvin Yu's patches that <fileScanner> can be used to iterate through just directories rather than files.
  
  Revision  Changes    Path
  1.5       +31 -17    jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/ant/filescanner.jelly
  
  Index: filescanner.jelly
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/ant/filescanner.jelly,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- filescanner.jelly	28 Jun 2002 11:05:06 -0000	1.4
  +++ filescanner.jelly	19 Aug 2002 07:07:00 -0000	1.5
  @@ -1,17 +1,31 @@
  -<?xml version="1.0"?>
  -<j:jelly xmlns:j="jelly:core" xmlns="jelly:ant">
  -
  -  <fileScanner var="scanner">
  -    <fileset dir="src/test" includes="**/*.jelly"/>
  -  </fileScanner>
  -    
  -  Iterating through build files
  -  
  -  <j:forEach var="file" items="${scanner.iterator()}">
  -  
  -    <!-- here we could parse the file or process it in some way -->
  -    <!-- such as by calling <ant> with the given build.xml file -->
  -      
  -    Found ${file.absolutePath}
  -  </j:forEach>
  -</j:jelly>
  +<?xml version="1.0"?>
  +<j:jelly xmlns:j="jelly:core" xmlns="jelly:ant">
  +
  +  <fileScanner var="scanner">
  +    <fileset dir="src/test" includes="**/*.jelly"/>
  +  </fileScanner>
  +    
  +  Iterating through build files
  +  
  +  <j:forEach var="file" items="${scanner.iterator()}">
  +  
  +    <!-- here we could parse the file or process it in some way -->
  +    <!-- such as by calling <ant> with the given build.xml file -->
  +      
  +    Found ${file.absolutePath}
  +  </j:forEach>
  +
  +  <fileScanner var="dirscanner">
  +    <fileset dir="src/test" includes="org/apache/commons/jelly/**"/>
  +  </fileScanner>
  +
  +  Iterating through test directories
  +
  +  <j:forEach var="dir" items="${dirscanner.directories()}">
  +    <!-- here we could process the directory in some way -->
  +    <!-- such as creating a similar directory in a different base path -->
  +      
  +    Found ${dir.absolutePath}
  +  </j:forEach>
  +
  +</j:jelly>
  
  
  
  1.2       +18 -2     jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/ant/FileIterator.java
  
  Index: FileIterator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/ant/FileIterator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FileIterator.java	2 Jun 2002 17:29:02 -0000	1.1
  +++ FileIterator.java	19 Aug 2002 07:07:00 -0000	1.2
  @@ -100,9 +100,20 @@
       /** Have we set a next object? */
       private boolean nextObjectSet = false;
   
  -    public FileIterator(Project project, Iterator fileSetIterator) {
  +    /** Return only directories? */
  +    private boolean iterateDirectories = false;
  +
  +    public FileIterator(Project project,
  +                        Iterator fileSetIterator) {
  +        this( project, fileSetIterator, false);
  +    }
  +
  +    public FileIterator(Project project,
  +                        Iterator fileSetIterator,
  +                        boolean iterateDirectories) {
           this.project = project;
           this.fileSetIterator = fileSetIterator;
  +        this.iterateDirectories = iterateDirectories;
       }
       
       // Iterator interface
  @@ -152,7 +163,12 @@
                   FileSet fs = (FileSet) fileSetIterator.next();
                   ds = fs.getDirectoryScanner(project);
                   ds.scan();
  -                files = ds.getIncludedFiles();
  +                if (iterateDirectories) {
  +                    files = ds.getIncludedDirectories();
  +                } 
  +                else {
  +                    files = ds.getIncludedFiles();
  +                }
                   if ( files.length > 0 ) {
                       fileIndex = -1;
                       break;
  
  
  
  1.5       +4 -0      jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/ant/FileScanner.java
  
  Index: FileScanner.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/ant/FileScanner.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FileScanner.java	1 Aug 2002 09:53:18 -0000	1.4
  +++ FileScanner.java	19 Aug 2002 07:07:00 -0000	1.5
  @@ -91,6 +91,10 @@
           return new FileIterator(project, filesets.iterator());
       }
   
  +    public Iterator directories() {
  +        return new FileIterator(project, filesets.iterator(), true);
  +    }
  +
       public boolean hasFiles() {
           return filesets.size() > 0;
       }        
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>