public static MetaData getPZMetaDataFromFile(final String line, final char delimiter, final char qualifier, final Parser p,
            boolean addSuffixToDuplicateColumnNames) {
        final List<ColumnMetaData> results = new ArrayList<ColumnMetaData>();
        final Set<String> dupCheck = new HashSet<String>();

        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: " + cmd.getColName());
                } 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));
    }