class CsvRow {

  public String getField(String header) {
    Integer index = findIndex(header);
    if (index == null) {
      throw new IllegalArgumentException("Header not found: '" + header + "'");
    }
    return field(index);
  }

  private  CsvRow(ImmutableList<String> headers, int lineNumber, ImmutableList<String> fields);
    CsvRow(
      ImmutableList<String> headers,
      ImmutableMap<String, Integer> searchHeaders,
      int lineNumber,
      ImmutableList<String> fields);

}