DbUnitのOperationタスク

調子にのってOperationタスクでもformat="excel"が使えるようにしてみる.

 diff -uNr java.old/org/dbunit/ant/Operation.java java/org/dbunit/ant/Operation.java
 --- java.old/org/dbunit/ant/Operation.java	Fri Jan 23 01:05:38 2004
 +++ java/org/dbunit/ant/Operation.java	Wed Apr 28 10:00:40 2004
 @@ -25,6 +25,7 @@
  import org.dbunit.database.IDatabaseConnection;
  import org.dbunit.dataset.CachedDataSet;
  import org.dbunit.dataset.IDataSet;
 +import org.dbunit.dataset.excel.XlsDataSet;
  import org.dbunit.dataset.stream.IDataSetProducer;
  import org.dbunit.dataset.stream.StreamingDataSet;
  import org.dbunit.dataset.xml.FlatXmlProducer;
 @@ -36,6 +37,7 @@
  
  import java.io.File;
  import java.io.IOException;
 +import java.io.FileInputStream;
  import java.sql.SQLException;
  
  /**
 @@ -161,6 +163,7 @@
      public void setFormat(String format)
      {
          if (format.equalsIgnoreCase("flat")
 +                || format.equalsIgnoreCase("excel")
                  || format.equalsIgnoreCase("xml"))
          {
              this.format = format;
 @@ -195,6 +198,9 @@
              {
                  producer = new XmlProducer(new InputSource(src.toURL().toString()));
              }
 +            else if (format.equalsIgnoreCase("excel")) {
 +                // 何もしない
 +            }
              else
              {
                  producer = new FlatXmlProducer(new InputSource(src.toURL().toString()));
 @@ -205,11 +211,13 @@
              {
                  dataset = new StreamingDataSet(producer);
              }
 +            else if (format.equalsIgnoreCase("excel")) {
 +                dataset = new XlsDataSet(new FileInputStream(src));
 +            }
              else
              {
                  dataset = new CachedDataSet(producer);
              }
 -
              _operation.execute(connection, dataset);
          }
          catch (IOException e)

こんなでイイのか...