code: public static MetaData getPZMetaDataFromFile(final String line, final char delimiter, final char qualifier, final Parser p,
              final boolean addSuffixToDuplicateColumnNames) {
          final List<ColumnMetaData> results = new ArrayList<>();
          final Set<String> dupCheck = new HashSet<>();
  
          final List<String> lineData = splitLine(line, delimiter, qualifier, FPConstants.SPLITLINE_SIZE_INIT, false, false);
          for (final String colName : lineData) {
              final ColumnMetaData cmd = new ColumnMetaData();
              String colNameToUse = colName;
              if (dupCheck.contains(colNameToUse)) {
                  if (!addSuffixToDuplicateColumnNames) {
                      throw new FPException("Duplicate Column Name In File: " + colNameToUse);
                  } else {
                      int count = 2;
                      while (dupCheck.contains(colNameToUse + count)) {
                          count++;
                      }
                      colNameToUse = colName + count;
                  }
              }
              cmd.setColName(colNameToUse);
              results.add(cmd);
              dupCheck.add(cmd.getColName());
          }
  
          return new MetaData(results, buidColumnIndexMap(results, p));
      }
docs: Returns a list of ColumnMetaData objects. This is for use with delimited
  files. The first line of the file which contains data will be used as the
  column names
  
  @param line
  @param delimiter
  @param qualifier
  @param p
  PZParser used to specify additional option when working with the ColumnMetaData. Can be null
  @param addSuffixToDuplicateColumnNames
  @return PZMetaData