package com.prefersoft.ant;

import java.io.File;
import java.util.Vector;

import org.apache.tools.ant.Project;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner;

import org.apache.tools.ant.types.FileSet;
import org.apache.tools.ant.taskdefs.SQLExec;

 
public class SQLExecFileSet extends PropertiesSQLExec{
  private Vector _fileSets = new Vector();
  
	public void addFileset(FileSet set){
    _fileSets.add(set);
	}
  
  public void execute() throws BuildException{
    int size = _fileSets.size();
    FileSet set;
    for(int i=0;i<size;i++){
      buildTransactions((FileSet)_fileSets.get(i));
    }
    super.execute();
  }

  
  private void buildTransactions(FileSet set){
      DirectoryScanner ds = set.getDirectoryScanner(project); 
      ds.scan();
      String[] files = ds.getIncludedFiles();
      File f;
      project.log(this,"sql files found : " + files.length, Project.MSG_VERBOSE);
      for(int i=0;i<files.length;i++){
        Transaction t = createTransaction();
        f = new File(ds.getBasedir(),files[i]);
        project.log(this,"adding file: " + f.getAbsolutePath(), Project.MSG_VERBOSE);
        t.setSrc(f);
      }
  }
}
