class CSVParseParameters extends Observable implements Cloneable {

    @Override
    public CSVParseParameters clone()
    {
        try
        {
            CSVParseParameters result = (CSVParseParameters)super.clone();
            result.myColumnNames = New.list(myColumnNames);
            result.mySpecialColumns = New.set(StreamUtilities.map(mySpecialColumns, specialColumn -> specialColumn.clone()));
            result.myColumnsToIgnore = New.list(myColumnsToIgnore);
            result.myColumnInfo = StreamUtilities.map(myColumnInfo, columnInfo -> columnInfo.clone());
            return result;
        }
        catch (CloneNotSupportedException e)
        {
            throw new ExpectedCloneableException(e);
        }
    }

    public  CSVParseParameters();
    public  CSVParseParameters(CSVParseParameters parameters);

}