Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Array and map to datatable #534

Closed
wants to merge 2 commits into from
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Using ListOfSingleValueWriter instead of ArrayOfSingleValueWriter.
Nicholas Albion committed Dec 5, 2012
commit eeb20f53d74870fc98da34d8d9efc163ae1448da
Original file line number Diff line number Diff line change
@@ -7,7 +7,6 @@
import cucumber.deps.com.thoughtworks.xstream.io.HierarchicalStreamReader;
import cucumber.runtime.CucumberException;
import cucumber.runtime.ParameterInfo;
import cucumber.runtime.xstream.ArrayOfSingleValueWriter;
import cucumber.runtime.xstream.CellWriter;
import cucumber.runtime.xstream.ComplexTypeWriter;
import cucumber.runtime.xstream.ListOfComplexTypeReader;
@@ -183,7 +182,7 @@ public DataTable toTable(List<?> objects, String... columnNames) {
} else if( object instanceof Map ) {
writer = new MapWriter(asList(columnNames));
} else if( object.getClass().isArray() ) {
writer = new ArrayOfSingleValueWriter(asList(columnNames));
writer = new ListOfSingleValueWriter(asList(columnNames));
} else {
writer = new ComplexTypeWriter(asList(columnNames));
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -7,13 +7,21 @@

public class ListOfSingleValueWriter extends CellWriter {
private int nodeDepth;
private final List<String> columnNames;
private final List<String> values = new ArrayList<String>();

@Override
public List<String> getHeader() {
return null;
}


public ListOfSingleValueWriter() {
columnNames = null;
}

public ListOfSingleValueWriter(List<String> columnNames) {
this.columnNames = columnNames;
}

@Override
public List<String> getHeader() {
return columnNames;
}
@Override
public List<String> getValues() {
return values;
4 changes: 1 addition & 3 deletions core/src/main/java/cucumber/runtime/xstream/MapWriter.java
Original file line number Diff line number Diff line change
@@ -7,8 +7,6 @@

/**
* Supports Map&lt;String, Object> as the List item
*
* @author Nicholas Albion
*/
public class MapWriter extends CellWriter {
private String key;
@@ -22,7 +20,7 @@ public MapWriter(List<String> columnNames) {

@Override
public List<String> getHeader() {
return columnNames;
return columnNames.isEmpty() ? new ArrayList<String>(values.keySet()) : columnNames;
}

@Override