ExamplesTableStringBuilder.java

  1. package org.jbehave.core.model;

  2. import java.util.List;

  3. import org.apache.commons.lang3.StringUtils;
  4. import org.jbehave.core.model.ExamplesTable.TableProperties;

  5. public final class ExamplesTableStringBuilder {

  6.     private ExamplesTableStringBuilder() {
  7.     }

  8.     public static String buildExamplesTableString(TableProperties properties, List<String> headers,
  9.             List<List<String>> rows) {
  10.         String headerSeparator = properties.getHeaderSeparator();
  11.         String valueSeparator = properties.getValueSeparator();
  12.         String rowSeparator = properties.getRowSeparator();

  13.         StringBuilder tableBuilder = new StringBuilder();
  14.         headers.forEach(header -> tableBuilder.append(headerSeparator).append(header));
  15.         tableBuilder.append(headerSeparator).append(rowSeparator);

  16.         for (List<String> row : rows) {
  17.             for (int i = 0, headersSize = headers.size(); i < headersSize; i++) {
  18.                 tableBuilder.append(valueSeparator).append(i < row.size() ? row.get(i) : StringUtils.EMPTY);
  19.             }
  20.             tableBuilder.append(valueSeparator).append(rowSeparator);
  21.         }

  22.         return tableBuilder.toString();
  23.     }
  24. }