public boolean containsValue( T key, V value ) { List<V> list = this.get( key ); if ( list == null ) { return false; } if ( list.contains( value ) ) { return true; } return false; }
public List<V> putValue( T key, V value ) { List<V> list = this.get( key ); list = list == null ? new ArrayList<>() : list; list.add( value ); super.put( key, list ); return null; }
public List<V> getValues( T key1, U key2 ) { return this.get( key1 ) == null ? null : this.get( key1 ).get( key2 ); } }
@Override public void replaceDataPeriodsWithAggregationPeriods( Map<String, Object> dataValueMap, DataQueryParams params, ListMap<DimensionalItemObject, DimensionalItemObject> dataPeriodAggregationPeriodMap ) { if ( params.isDisaggregation() ) { int periodIndex = params.getPeriodDimensionIndex(); if ( periodIndex == -1 ) { return; // Period is filter, nothing to replace } Set<String> keys = new HashSet<>( dataValueMap.keySet() ); for ( String key : keys ) { String[] keyArray = key.split( DIMENSION_SEP ); String periodKey = keyArray[periodIndex]; Assert.notNull( periodKey, String.format( "Period key cannot be null, key: '%s'", key ) ); List<DimensionalItemObject> periods = dataPeriodAggregationPeriodMap.get( PeriodType.getPeriodFromIsoString( periodKey ) ); Assert.notNull( periods, String.format( "Period list cannot be null, key: '%s', map: '%s'", key, dataPeriodAggregationPeriodMap.toString() ) ); Object value = dataValueMap.get( key ); for ( DimensionalItemObject period : periods ) { String[] keyCopy = keyArray.clone(); keyCopy[periodIndex] = ((Period) period).getIsoDate(); dataValueMap.put( TextUtils.toString( keyCopy, DIMENSION_SEP ), value ); } dataValueMap.remove( key ); } } }
@Override public List<Period> getDuplicatePeriods() { Collection<Period> periods = periodService.getAllPeriods(); List<Period> duplicates = new ArrayList<>(); ListMap<String, Period> map = new ListMap<>(); for ( Period period : periods ) { String key = period.getPeriodType().getName() + period.getStartDate().toString(); period.setName( period.toString() ); map.putValue( key, period ); } for ( String key : map.keySet() ) { List<Period> values = map.get( key ); if ( values != null && values.size() > 1 ) { duplicates.addAll( values ); } } return duplicates; }
/** * Groups queries by their data type. * * @param params the data query parameters. * @return a list of {@link DataQueryParams}. */ private List<DataQueryParams> groupByDataType( DataQueryParams params ) { List<DataQueryParams> queries = new ArrayList<>(); if ( !params.getDataElements().isEmpty() ) { ListMap<DataType, DimensionalItemObject> dataTypeDataElementMap = QueryPlannerUtils.getDataTypeDataElementMap( params.getDataElements() ); for ( DataType dataType : dataTypeDataElementMap.keySet() ) { DataQueryParams query = DataQueryParams.newBuilder( params ) .withDataElements( dataTypeDataElementMap.get( dataType ) ) .withDataType( dataType ).build(); queries.add( query ); } } else { DataQueryParams query = DataQueryParams.newBuilder( params ) .withDataType( DataType.NUMERIC ).build(); queries.add( query ); } logQuerySplit( queries, "data type" ); return queries; }
.withDataElements( periodTypeDataElementMap.get( periodType ) ) .withDataPeriodType( periodType ).build();
List<Option> options = new ArrayList<>( nameOptionMap.get( optionSetName ) );
.addOrSetDimensionOptions( periodDim.getDimension(), periodDim.getDimensionType(), periodDim.getDimensionName(), daysPeriodMap.get( days ) ).build();
aggregates, samplePeriodsMap.get( period ), constantMap, generator.getMissingValueStrategy() );
.withDataElements( aggregationTypeDataElementMap.get( aggregationType ) ) .withAggregationType( aggregationType ).build();
@Override public List<Grid> getDefaultDataSetReport( DataSet dataSet, Period period, OrganisationUnit unit, Set<String> dimensions, boolean selectedUnitOnly, I18nFormat format, I18n i18n ) { ListMap<CategoryCombo, DataElement> map = new ListMap<>(); for ( DataSetElement element : dataSet.getDataSetElements() ) { map.putValue( element.getResolvedCategoryCombo(), element.getDataElement() ); } DataSet tmpDataSet = new DataSet( dataSet.getName(), dataSet.getShortName(), dataSet.getPeriodType() ); tmpDataSet.setDataSetElements( dataSet.getDataSetElements() ); for ( CategoryCombo categoryCombo : map.keySet() ) { List<DataElement> dataElements = map.get( categoryCombo ); String name = categoryCombo.isDefault() ? dataSet.getName() : categoryCombo.getName(); Section section = new Section( name, dataSet, dataElements, null ); tmpDataSet.getSections().add( section ); } return getSectionDataSetReport( tmpDataSet, period, unit, dimensions, selectedUnitOnly, format, i18n ); }
List<DimensionalObject> filters = filterMap.get( dimension );