=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/validation/DefaultValidationRuleService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/validation/DefaultValidationRuleService.java 2012-07-26 11:14:41 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/validation/DefaultValidationRuleService.java 2012-09-22 15:04:26 +0000 @@ -409,23 +409,21 @@ * @return all validation rules which have data elements assigned to it * which are members of the given data set. */ - private Collection getRelevantValidationRules( Collection dataElements ) + private Collection getRelevantValidationRules( Set dataElements ) { - final Set relevantValidationRules = new HashSet(); - + Set relevantValidationRules = new HashSet(); + + Set validationRuleElements = new HashSet(); + for ( ValidationRule validationRule : getAllValidationRules() ) { - for ( DataElement dataElement : dataElements ) + validationRuleElements.clear(); + validationRuleElements.addAll( validationRule.getLeftSide().getDataElementsInExpression() ); + validationRuleElements.addAll( validationRule.getRightSide().getDataElementsInExpression() ); + + if ( dataElements.containsAll( validationRuleElements ) ) { - if ( validationRule.getPeriodType() != null && dataElement.getPeriodType() != null - && validationRule.getPeriodType().equals( dataElement.getPeriodType() ) ) - { - if ( validationRule.getLeftSide().getDataElementsInExpression().contains( dataElement ) - || validationRule.getRightSide().getDataElementsInExpression().contains( dataElement ) ) - { - relevantValidationRules.add( validationRule ); - } - } + relevantValidationRules.add( validationRule ); } }