public void addValidationRule( ValidationRule validationRule ) { members.add( validationRule ); validationRule.getGroups().add( this ); }
@Override public Set<DataElement> getDataElements( ValidationRule validationRule ) { Set<DataElement> elements = new HashSet<>(); elements.addAll( expressionService.getDataElementsInExpression( validationRule.getLeftSide().getExpression() ) ); elements.addAll( expressionService.getDataElementsInExpression( validationRule.getRightSide().getExpression() ) ); return elements; }
/** * @param uniqueCharacter A unique character to identify the object. * @param operator The operator. * @param leftSide The left side expression. * @param rightSide The right side expression. * @param periodType The period-type. * @param skipFormValidation Skip when validating forms. */ public static ValidationRule createValidationRule( String uniqueCharacter, Operator operator, Expression leftSide, Expression rightSide, PeriodType periodType, boolean skipFormValidation ) { Assert.notNull( leftSide, "Left side expression must be specified" ); Assert.notNull( rightSide, "Rigth side expression must be specified" ); ValidationRule validationRule = new ValidationRule(); validationRule.setAutoFields(); validationRule.setName( "ValidationRule" + uniqueCharacter ); validationRule.setDescription( "Description" + uniqueCharacter ); validationRule.setOperator( operator ); validationRule.setLeftSide( leftSide ); validationRule.setRightSide( rightSide ); validationRule.setPeriodType( periodType ); validationRule.setSkipFormValidation( skipFormValidation ); return validationRule; }
public ValidationRuleExtended( ValidationRule rule ) { this.rule = rule; this.organisationUnitLevels = new HashSet<>( rule.getOrganisationUnitLevels() ); this.leftSlidingWindow = rule.getLeftSide().getSlidingWindow(); this.rightSlidingWindow = rule.getRightSide().getSlidingWindow(); }
@Override public void save( ValidationRule validationRule ) { PeriodType periodType = periodService.reloadPeriodType( validationRule.getPeriodType() ); validationRule.setPeriodType( periodType ); super.save( validationRule ); }
Expression rightSide = new Expression(); ValidationRule object = new ValidationRule(); setIdentifiableObject( object, values ); object.setDescription( getSafe( values, 3, null, 255 ) ); object.setInstruction( getSafe( values, 4, null, 255 ) ); object .setImportance( Importance.valueOf( getSafe( values, 5, Importance.MEDIUM.toString(), 255 ) ) ); .setOperator( Operator.safeValueOf( getSafe( values, 7, Operator.equal_to.toString(), 255 ) ) ); object.setPeriodType( PeriodType.getByNameIgnoreCase( getSafe( values, 8, MonthlyPeriodType.NAME, 255 ) ) ); .safeValueOf( getSafe( values, 14, MissingValueStrategy.NEVER_SKIP.toString(), 50 ) ) ); object.setLeftSide( leftSide ); object.setRightSide( rightSide ); object.setAutoFields();
PeriodTypeExtended periodX = periodTypeXMap.get( rule.getPeriodType() ); .getDimensionalItemIdsInExpression( rule.getLeftSide().getExpression() ); dimensionItemIdentifiers.putValues( expressionService.getDimensionalItemIdsInExpression( rule.getRightSide().getExpression() ) );
if ( Operator.compulsory_pair.equals( ruleX.getRule().getOperator() ) ) if ( Operator.exclusive_pair.equals( ruleX.getRule().getOperator() ) ) if ( ruleX.getRule().getLeftSide().getMissingValueStrategy() == NEVER_SKIP ) if ( ruleX.getRule().getRightSide().getMissingValueStrategy() == NEVER_SKIP ) return !expressionIsTrue( leftSide, ruleX.getRule().getOperator(), rightSide );
@Override public String allowDeleteValidationRule( ValidationRule validationRule ) { for ( ValidationResult validationResult : validationResultService.getAllValidationResults() ) { if ( validationResult.getValidationRule().equals( validationRule ) ) { return ERROR; } } return null; }
@Override public int saveValidationRule( ValidationRule validationRule ) { validationRuleStore.save( validationRule ); return validationRule.getId(); }
@Override public SortedMap<ValidationRule, String> getInvalidValidationRuleRightSideExpressions() { SortedMap<ValidationRule, String> invalids = new TreeMap<>(); I18n i18n = i18nManager.getI18n(); for ( ValidationRule rule : validationRuleService.getAllValidationRules() ) { ExpressionValidationOutcome result = expressionService.expressionIsValid( rule.getRightSide().getExpression() ); if ( !result.isValid() ) { invalids.put( rule, i18n.getString(result.getKey()) ); } } return invalids; }
@Override public SortedMap<ValidationRule, String> getInvalidValidationRuleLeftSideExpressions() { SortedMap<ValidationRule, String> invalids = new TreeMap<>(); I18n i18n = i18nManager.getI18n(); for ( ValidationRule rule : validationRuleService.getAllValidationRules() ) { ExpressionValidationOutcome result = expressionService.expressionIsValid( rule.getLeftSide().getExpression() ); if ( !result.isValid() ) { invalids.put( rule, i18n.getString(result.getKey()) ); } } return invalids; }
public void addValidationRule( ValidationRule validationRule ) { this.validationRules.add( validationRule ); validationRule.getNotificationTemplates().add( this ); }
@Override public void update( ValidationRule validationRule ) { PeriodType periodType = periodService.reloadPeriodType( validationRule.getPeriodType() ); validationRule.setPeriodType( periodType ); super.save( validationRule ); }
@Override public void deleteValidationRule( ValidationRule validationRule ) { validationResultService.getAllValidationResults().forEach( validationResult -> { if ( validationResult.getValidationRule().equals( validationRule ) ) { validationResultService.deleteValidationResult( validationResult ); } } ); }
@Override public List<Object> getUniqueValues( ValidationResult validationResult ) { return getObjectList( validationResult.getValidationRule().getId(), validationResult.getPeriod().getId(), validationResult.getOrganisationUnit().getId(), validationResult.getAttributeOptionCombo().getId(), validationResult.getDayInPeriod() ); }
private static SortedSet<MessagePair> createMessagePairs( SortedSet<ValidationResult> results ) { return results.stream() .flatMap( result -> result.getValidationRule().getNotificationTemplates().stream() .map( template -> new MessagePair( result, template ) ) ) .collect( Collectors.toCollection( TreeSet::new ) ); }
@Override public void deleteExpression( Expression expression ) { Iterator<ValidationRule> iterator = validationRuleService.getAllValidationRules().iterator(); while ( iterator.hasNext() ) { ValidationRule rule = iterator.next(); Expression leftSide = rule.getLeftSide(); Expression rightSide = rule.getRightSide(); if ( (leftSide != null && leftSide.equals( expression )) || (rightSide != null && rightSide.equals( expression )) ) { iterator.remove(); validationRuleService.deleteValidationRule( rule ); } } }
public void removeValidationRule( ValidationRule validationRule ) { members.remove( validationRule ); validationRule.getGroups().remove( this ); }
else if ( !validationRule.equals( other.validationRule ) )