Source:
public BooleanAnalyzerResult reduce(Collection<? extends BooleanAnalyzerResult> partialResults) { if (partialResults.isEmpty()) { return null; } final List<CrosstabDimension> columnStatisticCrosstabDimensions = new ArrayList<CrosstabDimension>(); final List<CrosstabDimension> columnValueCombinationCrosstabDimensions = new ArrayList<CrosstabDimension>(); for (BooleanAnalyzerResult partialResult : partialResults) { final Crosstab<Number> partialColumnStatisticsCrosstab = partialResult.getColumnStatisticsCrosstab(); final Crosstab<Number> partialValueCombinationCrosstab = partialResult.getValueCombinationCrosstab(); CrosstabReducerHelper.createDimensionsColumnCrosstab(columnStatisticCrosstabDimensions, partialColumnStatisticsCrosstab); createDimensionsValueCombinationCrosstab(columnValueCombinationCrosstabDimensions, partialValueCombinationCrosstab); } final Crosstab<Number> newResultColumnStatistics = new Crosstab<Number>(Number.class, columnStatisticCrosstabDimensions); final Crosstab<Number> newResultColumnValueCombination = new Crosstab<Number>(Number.class, columnValueCombinationCrosstabDimensions); final Map<ValueCombination<Number>, Number> valueCombinations = new HashMap<ValueCombination<Number>, Number>(); for (BooleanAnalyzerResult partialResult : partialResults) { final Crosstab<Number> partialColumnStatisticsCrosstab = partialResult.getColumnStatisticsCrosstab(); final Crosstab<Number> partialValueCombinationCrosstab = partialResult.getValueCombinationCrosstab(); if (partialColumnStatisticsCrosstab != null) { final CrosstabDimension columnDimension = partialColumnStatisticsCrosstab .getDimension(BooleanAnalyzer.DIMENSION_COLUMN); final CrosstabDimension measureDimension = partialColumnStatisticsCrosstab .getDimension(BooleanAnalyzer.DIMENSION_MEASURE); CrosstabReducerHelper.addData(newResultColumnStatistics, partialColumnStatisticsCrosstab, columnDimension, measureDimension); } if (partialValueCombinationCrosstab != null) { addValueCombinationsCrosstabDimension(valueCombinations, partialValueCombinationCrosstab); } } if (valueCombinations != null && columnValueCombinationCrosstabDimensions != null) { createMeasureDimensionValueCombinationCrosstab(valueCombinations, newResultColumnValueCombination); } return new BooleanAnalyzerResult(newResultColumnStatistics, newResultColumnValueCombination); }

Target:
public BooleanAnalyzerResult reduce(Collection<? extends BooleanAnalyzerResult> partialResults) { if (partialResults.isEmpty()) { return null; } final List<CrosstabDimension> columnStatisticCrosstabDimensions = new ArrayList<CrosstabDimension>(); final List<CrosstabDimension> columnValueCombinationCrosstabDimensions = new ArrayList<CrosstabDimension>(); for (BooleanAnalyzerResult partialResult : partialResults) { final Crosstab<Number> partialColumnStatisticsCrosstab = partialResult.getColumnStatisticsCrosstab(); final Crosstab<Number> partialValueCombinationCrosstab = partialResult.getValueCombinationCrosstab(); CrosstabReducerHelper.createDimensionsColumnCrosstab(columnStatisticCrosstabDimensions, partialColumnStatisticsCrosstab); createDimensionsValueCombinationCrosstab(columnValueCombinationCrosstabDimensions, partialValueCombinationCrosstab); } final Crosstab<Number> newResultColumnStatistics = new Crosstab<Number>(Number.class, columnStatisticCrosstabDimensions); final Crosstab<Number> newResultColumnValueCombination = new Crosstab<Number>(Number.class, columnValueCombinationCrosstabDimensions); final Map<ValueCombination<Number>, Number> valueCombinations = new HashMap<ValueCombination<Number>, Number>(); for (BooleanAnalyzerResult partialResult : partialResults) { final Crosstab<Number> partialColumnStatisticsCrosstab = partialResult.getColumnStatisticsCrosstab(); final Crosstab<Number> partialValueCombinationCrosstab = partialResult.getValueCombinationCrosstab(); if (partialColumnStatisticsCrosstab != null) { final CrosstabDimension columnDimension = partialColumnStatisticsCrosstab .getDimension(BooleanAnalyzer.DIMENSION_COLUMN); final CrosstabDimension measureDimension = partialColumnStatisticsCrosstab .getDimension(BooleanAnalyzer.DIMENSION_MEASURE); CrosstabReducerHelper.addData(newResultColumnStatistics, partialColumnStatisticsCrosstab, columnDimension, measureDimension); } if (partialValueCombinationCrosstab != null) { addValueCombinationsCrosstabDimension(valueCombinations, partialValueCombinationCrosstab); } } createMeasureDimensionValueCombinationCrosstab(valueCombinations, newResultColumnValueCombination); return new BooleanAnalyzerResult(newResultColumnStatistics, newResultColumnValueCombination); }