class QueryRow {

    @Override
    public int hashCode() {
        return distinctColumnIndexes.isEmpty() ? rowData.hashCode() : Lists.transform(distinctColumnIndexes, new Function<Integer, Object>() {
    
            @Override
            public Object apply(final Integer input) {
                return rowData.get(input - 1);
            }
        }).hashCode();
    }

    public  QueryRow(final List<Object> rowData);

}