package net.thucydides.core.model; import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import java.util.List; public class DataTableRow { private List<? extends Object> values; // A list of strings or integers private TestResult result; public DataTableRow(List<? extends Object> values) { this(values, TestResult.UNDEFINED); } public DataTableRow(List<? extends Object> values, TestResult result) { this.values = ImmutableList.copyOf(values); this.result = result; } public List<? extends Object> getValues() { return ImmutableList.copyOf(values); } public List<String> getStringValues() { return Lists.transform(values, new Function<Object, String>() { @Override public String apply(Object o) { return o== null ? "" : o.toString(); } }); } public TestResult getResult() { return result; } public void setResult(TestResult result) { this.result = result; } public void updateResult(TestResult newResult) { if (newResult == TestResult.UNDEFINED) { setResult(newResult); } else { TestResultList testResults = TestResultList.of(this.result, newResult); setResult(testResults.getOverallResult()); } } @Override public String toString() { return "DataTableRow{" + "values=" + values + ", result=" + result + '}'; } }