class CSVDataSetDefValidator extends AbstractDataSetDefValidator<CSVDataSetDef> {

    @Override
    public Iterable<ConstraintViolation<?>> validate(CSVDataSetDef dataSetDef, boolean isCacheEnabled, boolean isPushEnabled, boolean isRefreshEnabled, Object... params) {
        assert params != null && params.length == 1;
        final Boolean isFilePath = (Boolean) params[0];
        Set<ConstraintViolation<CSVDataSetDef>> _violations = validator.validate(dataSetDef,
                getValidationGroups(isCacheEnabled, isPushEnabled, isRefreshEnabled, CSVDataSetDefValidation.class,
                        isFilePath ? CSVDataSetDefFilePathValidation.class : CSVDataSetDefFileURLValidation.class));
        return toIterable(_violations);
    }

    @Inject public  CSVDataSetDefValidator( Validator validator );

}