public ValidationError check(DataSet dataSet) { if (minColumns != -1 && dataSet.getColumns().size() < minColumns) { return createValidationError(ERROR_COLUMN_NUMBER); } if (maxColumns != -1 && dataSet.getColumns().size() > maxColumns) { return createValidationError(ERROR_COLUMN_NUMBER); } ValidationError error = null; boolean ok = false; int currentColumns = -1; for (ColumnType[] types : columnTypeList) { if (currentColumns < 0 || currentColumns < types.length) currentColumns = types.length; error = checkTypes(dataSet, types); if (!ok && error == null) ok = true; } if (!ok) return error; // Check extra columns type if (currentColumns > 0 && extraColumnsAllowed && extraColumnsType != null && dataSet.getColumns().size() > currentColumns) { for (int i = currentColumns; i < dataSet.getColumns().size(); i++) { ColumnType columnType = dataSet.getColumnByIndex(i).getColumnType(); if (!columnType.equals(extraColumnsType)) { return createValidationError(ERROR_COLUMN_TYPE, i, extraColumnsType, columnType); } } } return null; }
public ValidationError check(DataSet dataSet) { if (minColumns != -1 && dataSet.getColumns().size() < minColumns) { return createValidationError(ERROR_COLUMN_NUMBER); } if (maxColumns != -1 && dataSet.getColumns().size() > maxColumns) { return createValidationError(ERROR_COLUMN_NUMBER); } ValidationError error = null; boolean ok = false; int currentColumns = -1; for (ColumnType[] types : columnTypeList) { if (currentColumns < 0 || currentColumns < types.length) currentColumns = types.length; error = checkTypes(dataSet, types); if (!ok && error == null) ok = true; } if (!ok) return error; // Check extra columns type if (currentColumns > 0 && extraColumnsAllowed && extraColumnsType != null && dataSet.getColumns().size() > currentColumns) { for (int i = currentColumns; i < dataSet.getColumns().size(); i++) { ColumnType columnType = dataSet.getColumnByIndex(i).getColumnType(); if (!columnType.equals(extraColumnsType)) { return createValidationError(ERROR_COLUMN_TYPE, i, extraColumnsType, columnType); } } } return null; }