java/ant/src/org/apidesign/infra/ant/GrepCopy.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sun, 06 Jul 2008 00:12:56 +0200
changeset 268 fb9bf90251e3
child 271 a1c057f1f756
permissions -rw-r--r--
Tool to generate code snippets from sources
     1 package org.apidesign.infra.ant;
     2 
     3 import java.io.File;
     4 import java.io.FileWriter;
     5 import java.io.IOException;
     6 import java.util.Map;
     7 import java.util.Map.Entry;
     8 import org.apache.tools.ant.BuildException;
     9 import org.apache.tools.ant.Task;
    10 import org.apache.tools.ant.types.FileSet;
    11 import org.apache.tools.ant.types.FilterSet;
    12 import org.apache.tools.ant.util.FileUtils;
    13 import org.openide.util.Exceptions;
    14 
    15 public class GrepCopy extends Task {
    16     private GrepFilter filter = new GrepFilter();
    17     private File dir;
    18     
    19     public GrepCopy() {
    20     }
    21 
    22     public FileSet createFileSet() {
    23         return filter.createFileSet();
    24     }
    25 
    26     public void setTarget(File dir) {
    27         this.dir = dir;
    28     }
    29 
    30     @Override
    31     public void execute() throws BuildException {
    32         filter.setProject(getProject());
    33 
    34         FilterSet set = filter.createFilterSet();
    35 
    36         for (Object object : set.getFilterHash().entrySet()) {
    37 
    38             FileWriter w = null;
    39             try {
    40                 Entry en = (Entry) object;
    41                 File to = new File(dir, (String) en.getKey());
    42                 to.getParentFile().mkdirs();
    43                 w = new FileWriter(to);
    44                 w.write((String) en.getValue());
    45                 w.close();
    46             } catch (IOException ex) {
    47                 throw new BuildException(ex);
    48             }
    49         }
    50     }
    51 }