code: public static Map<String, Integer> buidColumnIndexMap(final List<ColumnMetaData> columns, final Parser p) {
          Map<String, Integer> map = null;
          if (columns != null && !columns.isEmpty()) {
              map = new HashMap<>();
              int idx = 0;
              for (final ColumnMetaData meta : columns) {
                  String colName = meta.getColName();
                  if (p != null && !p.isColumnNamesCaseSensitive()) {
                      // user has selected to make column names case sensitive
                      // on lookups
                      colName = colName.toLowerCase(Locale.getDefault());
                  }
                  map.put(colName, idx++);
              }
          }
          return map;
      }
docs: Build a map of name/position based on a list of ColumnMetaData.
  
  @author Benoit Xhenseval
  @author Paul Zepernick
  @param columns
  @param p
  Reference to Parser which can provide additional options on how the
  map should be build.  This can be NULL.
  @return a new Map