public V getValue( R key1, S key2, T key3, U key4 ) { return this.get( key1 ) == null ? null : this.get( key1 ).getValue( key2, key3, key4 ); }
private void addValueToDataMap( int orgUnitId, String aocUid, DimensionalItemObject dimItemObject, Double value, Period p, MapMapMap<Integer, String, DimensionalItemObject, Long> checkForDuplicates ) { double existingValue = ObjectUtils.firstNonNull( dataMap.getValue( orgUnitId, aocUid, dimItemObject ), 0.0 ); long periodInterval = p.getEndDate().getTime() - p.getStartDate().getTime(); Long existingPeriodInterval = checkForDuplicates.getValue( orgUnitId, aocUid, dimItemObject ); if ( existingPeriodInterval != null ) { if ( existingPeriodInterval < periodInterval ) { return; // Do not overwrite the previous value if for a shorter interval } else if ( existingPeriodInterval > periodInterval ) { existingValue = 0.0; // Overwrite previous value if for a longer interval } } dataMap.putEntry( orgUnitId, aocUid, dimItemObject, value + existingValue ); checkForDuplicates.putEntry( orgUnitId, aocUid, dimItemObject, periodInterval ); }
public boolean skipValidationOfTuple( OrganisationUnit organisationUnit, ValidationRule validationRule, Period period, String attributeOptionCombo, int dayInPeriod ) { List<ValidationResult> validationResultList = initialValidationResults .getValue( organisationUnit, validationRule, period ); if ( validationResultList != null ) { for ( ValidationResult vr : validationResultList ) { if ( vr.getAttributeOptionCombo().getUid().equals( attributeOptionCombo ) && vr.getDayInPeriod() == dayInPeriod ) { return true; } } } return false; }
public Builder withInitialResults( Collection<ValidationResult> results ) { this.context.validationResults.addAll( results ); results.forEach( validationResult -> { List<ValidationResult> res = context.initialValidationResults .getValue( validationResult.getOrganisationUnit(), validationResult.getValidationRule(), validationResult.getPeriod() ); if ( res == null ) { res = new ArrayList<>(); } res.add( validationResult ); context.initialValidationResults .putEntry( validationResult.getOrganisationUnit(), validationResult.getValidationRule(), validationResult.getPeriod(), res ); } ); return this; } }