-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
rmpestano
committed
Sep 12, 2016
1 parent
b36d86c
commit 80fdad8
Showing
7 changed files
with
309 additions
and
119 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
16 changes: 0 additions & 16 deletions
16
core/src/main/java/com/github/dbunit/rules/api/expoter/DataSetExporter.java
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
101 changes: 101 additions & 0 deletions
101
core/src/main/java/com/github/dbunit/rules/dataset/writer/YMLWriter.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
package com.github.dbunit.rules.dataset.writer; | ||
|
||
import org.dbunit.dataset.Column; | ||
import org.dbunit.dataset.DataSetException; | ||
import org.dbunit.dataset.IDataSet; | ||
import org.dbunit.dataset.ITableMetaData; | ||
import org.dbunit.dataset.stream.DataSetProducerAdapter; | ||
import org.dbunit.dataset.stream.IDataSetConsumer; | ||
|
||
import java.io.IOException; | ||
import java.io.OutputStream; | ||
import java.io.OutputStreamWriter; | ||
import java.util.logging.Level; | ||
import java.util.logging.Logger; | ||
|
||
/** | ||
* Created by pestano on 11/09/16. | ||
*/ | ||
public class YMLWriter implements IDataSetConsumer { | ||
|
||
private static final String NEW_LINE = System.getProperty("line.separator"); | ||
private static final String DOUBLE_SPACES = " "; | ||
private static final Logger LOG = Logger.getLogger(YMLWriter.class.getName()); | ||
|
||
|
||
private OutputStreamWriter out; | ||
private ITableMetaData metaData; | ||
|
||
public YMLWriter(OutputStream outputStream) throws IOException { | ||
out = new OutputStreamWriter(outputStream, "UTF-8"); | ||
} | ||
|
||
@Override | ||
public void startDataSet() throws DataSetException { | ||
|
||
} | ||
|
||
@Override | ||
public void endDataSet() throws DataSetException { | ||
try { | ||
out.flush(); | ||
} catch (IOException e) { | ||
LOG.log(Level.WARNING, "Could not end dataset.", e); | ||
} | ||
} | ||
|
||
@Override | ||
public void startTable(ITableMetaData metaData) throws DataSetException { | ||
this.metaData = metaData; | ||
try { | ||
out.write(metaData.getTableName()+":"+NEW_LINE); | ||
} catch (IOException e) { | ||
LOG.log(Level.WARNING, "Could not start table.", e); | ||
} | ||
} | ||
|
||
@Override | ||
public void endTable() throws DataSetException { | ||
try { | ||
out.write(NEW_LINE); | ||
} catch (IOException e) { | ||
LOG.log(Level.WARNING, "Could end table.", e); | ||
} | ||
} | ||
|
||
@Override | ||
public void row(Object[] values) throws DataSetException { | ||
try { | ||
for (int i = 0; i < values.length; i++) { | ||
if (i == 0) { | ||
out.write(DOUBLE_SPACES + "- "); | ||
} else{ | ||
out.write(DOUBLE_SPACES + DOUBLE_SPACES); | ||
} | ||
|
||
Column currentColumn = metaData.getColumns()[i]; | ||
out.write(metaData.getColumns()[i].getColumnName()+": "); | ||
boolean isNumber = currentColumn.getDataType().isNumber(); | ||
if(!isNumber){ | ||
out.write("\""); | ||
} | ||
if(values[i] != null){ | ||
out.write(values[i].toString()); | ||
} | ||
if(!isNumber){ | ||
out.write("\""); | ||
} | ||
out.write(NEW_LINE); | ||
} | ||
}catch (Exception e){ | ||
LOG.log(Level.WARNING, "Could not write row.",e); | ||
} | ||
} | ||
|
||
public synchronized void write(IDataSet dataSet) throws DataSetException | ||
{ | ||
DataSetProducerAdapter provider = new DataSetProducerAdapter(dataSet); | ||
provider.setConsumer(this); | ||
provider.produce(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.