1:package com.cincosoft.ant;
   2:
   3:import java.io.*;
   4:import java.util.List;
   5:import java.util.ArrayList;
   6:import java.util.Iterator;
   7:
   8:import org.apache.tools.ant.Task;
   9:import org.apache.tools.ant.types.FileSet;
  10:import org.apache.tools.ant.DirectoryScanner;
  11:import org.apache.tools.ant.BuildException;
  12:import com.cincosoft.utils.text.Verify5Soft;
  13:
  14:/**
  15: * Permite utilizar servicios de la clase
  16: * {@link com.cincosoft.utils.text.Verify5Soft} desde scripts
  17: * de Ant.
  18: * @author Rodrigo López.
  19: * @j.created Agosto 2003.
  20: */
  21:
  22:public class Verify5SoftTask  extends Task {
  23:  /**
  24:   * Filesets definidos dentro del script.
  25:   */
  26:  private List filesets = new ArrayList();
  27:
  28:  /**
  29:   * Número de archivos examinados.
  30:   */
  31:  private int numExFiles = 0;
  32:
  33:  /**
  34:   * Número de archivos cambiados.
  35:   */
  36:  private int numChangedFiles = 0;
  37:
  38:  /**
  39:   * Número total de cambios
  40:   */
  41:  private int numChanges = 0;
  42:
  43:  /**
  44:   * Método invocado por Ant al encontrar elementos "fileset"
  45:   * anidados dentro del tag asignado para esta tarea.
  46:   */
  47:  public void addFileset(FileSet set) {
  48:      filesets.add(set);
  49:  }
  50:
  51:  /**
  52:   * Método exigido por Ant.
  53:   */
  54:  public void execute() throws BuildException{
  55:    Iterator it = filesets.iterator();
  56:    while (it.hasNext()) {
  57:      FileSet fs = (FileSet)it.next();
  58:      DirectoryScanner ds = fs.getDirectoryScanner(project);
  59:      String baseDir = ds.getBasedir().toString();
  60:      String[] files = ds.getIncludedFiles();
  61:
  62:      int nTmp = 0;
  63:      Verify5Soft v5s = new Verify5Soft();
  64:      try {
  65:        for (int i=0; i<files.length; i++) {
  66:
  67:
  68:          nTmp = v5s.trocar(new File(baseDir,files[i]));
  69:
  70:          numChanges += nTmp;
  71:          if (nTmp!=0) {
  72:            numChangedFiles++;
  73:          }
  74:          numExFiles++;
  75:        }
  76:      }
  77:      catch (Exception ex) {
  78:        throw new BuildException(ex.getMessage());
  79:      }
  80:      finally{
  81:        log(""+numChanges+" cambios en "+numChangedFiles+" archivos.");
  82:        log("Número total de archivos examinados : "+numExFiles);
  83:      }
  84:    }
  85:  }
  86:}