protected boolean isEmptyBand(BandData parentBand) { return parentBand != null && parentBand.getData() == Collections.EMPTY_MAP; } }
protected boolean isEmptyBand(BandData parentBand) { return parentBand != null && parentBand.getData() == Collections.EMPTY_MAP; } }
protected List<BandData> getActualData(BandData rootBand) { List<BandData> resultData = new ArrayList<>(); Map<String, List<BandData>> childrenBands = rootBand.getChildrenBands(); if (childrenBands != null && !childrenBands.isEmpty()) { childrenBands.forEach((s, bandDataList) -> bandDataList.forEach(bandData -> { if (bandData.getData() != null && !bandData.getData().isEmpty()) { resultData.add(bandData); } })); } return resultData; }
protected List<BandData> getActualData(BandData rootBand) { List<BandData> resultData = new ArrayList<>(); Map<String, List<BandData>> childrenBands = rootBand.getChildrenBands(); if (childrenBands != null && !childrenBands.isEmpty()) { childrenBands.forEach((s, bandDataList) -> bandDataList.forEach(bandData -> { if (bandData.getData() != null && !bandData.getData().isEmpty()) { resultData.add(bandData); } })); } return resultData; }
protected void addParentBandDataToParameters(BandData parentBand, Map<String, Object> currentParams) { if (parentBand != null) { String parentBandName = parentBand.getName(); for (Map.Entry<String, Object> entry : parentBand.getData().entrySet()) { currentParams.put(parentBandName + "." + entry.getKey(), entry.getValue()); } } } }
protected void addParentBandDataToParameters(BandData parentBand, Map<String, Object> currentParams) { if (parentBand != null) { String parentBandName = parentBand.getName(); for (Map.Entry<String, Object> entry : parentBand.getData().entrySet()) { currentParams.put(parentBandName + "." + entry.getKey(), entry.getValue()); } } } }
protected void addParentBandDataToParameters(BandData parentBand, Map<String, Object> currentParams) { if (parentBand != null) { String parentBandName = parentBand.getName(); for (Map.Entry<String, Object> entry : parentBand.getData().entrySet()) { currentParams.put(parentBandName + "." + entry.getKey(), entry.getValue()); } } } }
@Override protected String resolveOutputFileName(Report report, ReportTemplate reportTemplate, ReportOutputType outputType, BandData rootBand) { String generatedReportFileName = (String) rootBand.getData().get(REPORT_FILE_NAME_KEY); if (StringUtils.isNotBlank(generatedReportFileName)) { return generatedReportFileName; } else { return super.resolveOutputFileName(report, reportTemplate, outputType, rootBand); } }
protected void addParentBandDataToParameters(BandData parentBand, Map<String, Object> currentParams) { if (parentBand != null) { String parentBandName = parentBand.getName(); for (Map.Entry<String, Object> entry : parentBand.getData().entrySet()) { currentParams.put(parentBandName + "." + entry.getKey(), entry.getValue()); } } } }
protected List<KeyValueEntity> getEntries(PivotTableDescription configuration) { List<BandData> childrenByName = rootBand.getChildrenByName(configuration.getBandName()); if (childrenByName == null) return Collections.emptyList(); return childrenByName.stream() .filter(band -> band.getData() != null && !band.getData().isEmpty()) .map(band -> { KeyValueEntity entity = new KeyValueEntity(); band.getData().forEach(entity::setValue); return entity; }) .collect(Collectors.toList()); } }
protected Map getBandModel(BandData band) { Map<String, Object> model = new HashMap<String, Object>(); Map<String, Object> bands = new HashMap<String, Object>(); for (String bandName : band.getChildrenBands().keySet()) { List<BandData> subBands = band.getChildrenBands().get(bandName); List<Map> bandModels = new ArrayList<Map>(); for (BandData child : subBands) bandModels.add(getBandModel(child)); bands.put(bandName, bandModels); } model.put("bands", bands); model.put("fields", band.getData()); return model; }
protected Map getBandModel(BandData band) { Map<String, Object> model = new HashMap<String, Object>(); Map<String, Object> bands = new HashMap<String, Object>(); for (String bandName : band.getChildrenBands().keySet()) { List<BandData> subBands = band.getChildrenBands().get(bandName); List<Map> bandModels = new ArrayList<Map>(); for (BandData child : subBands) bandModels.add(getBandModel(child)); bands.put(bandName, bandModels); } model.put("bands", bands); model.put("fields", band.getData()); return model; }
protected String insertBandDataToString(BandData bandData, String resultStr) { List<String> parametersToInsert = new ArrayList<String>(); Matcher matcher = UNIVERSAL_ALIAS_PATTERN.matcher(resultStr); while (matcher.find()) { parametersToInsert.add(unwrapParameterName(matcher.group())); } for (String parameterName : parametersToInsert) { Object value = bandData.getData().get(parameterName); String fullParameterName = bandData.getName() + "." + parameterName; String valueStr = formatValue(value, parameterName, fullParameterName); resultStr = inlineParameterValue(resultStr, parameterName, valueStr); } return resultStr; }
protected String insertBandDataToString(BandData bandData, String resultStr) { List<String> parametersToInsert = new ArrayList<>(); Matcher matcher = UNIVERSAL_ALIAS_PATTERN.matcher(resultStr); while (matcher.find()) { parametersToInsert.add(unwrapParameterName(matcher.group())); } for (String parameterName : parametersToInsert) { Object value = bandData.getData().get(parameterName); String fullParameterName = bandData.getName() + "." + parameterName; String valueStr = formatValue(value, parameterName, fullParameterName); resultStr = inlineParameterValue(resultStr, parameterName, valueStr); } return resultStr; }
private String convertSerialChart(SerialChartDescription description) { List<Map<String, Object>> data = new ArrayList<>(); List<BandData> childrenByName = rootBand.getChildrenByName(description.getBandName()); for (BandData bandData : childrenByName) { data.add(bandData.getData()); } return new ChartToJsonConverter(((ReportTemplate) reportTemplate).getReport().getLocName()) .convertSerialChart(description, data); }
protected String convertPieChart(PieChartDescription description) { List<Map<String, Object>> data = new ArrayList<>(); List<BandData> childrenByName = rootBand.getChildrenByName(description.getBandName()); for (BandData bandData : childrenByName) { data.add(bandData.getData()); } return new ChartToJsonConverter(((ReportTemplate) reportTemplate).getReport().getLocName()) .convertPieChart(description, data); } }
public void extractData(Report report, Map<String, Object> params, BandData rootBand) { List<Map<String, Object>> rootBandData = controllerFactory.defaultController().extractData( contextFactory.context(report.getRootBand(), null, params) ); if (CollectionUtils.isNotEmpty(rootBandData)) { rootBand.getData().putAll(rootBandData.get(0)); } List<ReportBand> firstLevelBands = report.getRootBand().getChildren(); if (firstLevelBands != null) { for (ReportBand definition : firstLevelBands) { List<BandData> bands = createBands(definition, rootBand, params); rootBand.addChildren(bands); rootBand.getFirstLevelBandDefinitionNames().add(definition.getName()); } } }
public static void checkHeader(Collection<BandData> bandDataCollection, int expected, String... headerFields) { Assert.assertNotNull(bandDataCollection); Assert.assertEquals(1, bandDataCollection.size()); BandData bandData = bandDataCollection.iterator().next(); Assert.assertTrue(CollectionUtils.isNotEmpty(bandData.getChildrenList())); Assert.assertEquals(expected, bandData.getChildrenList().size()); bandData.getChildrenList().forEach(childData-> { Assert.assertNotNull(childData); Assert.assertNotNull(childData.getData()); Stream.of(headerFields).forEach(key-> Assert.assertTrue(childData.getData().containsKey(key))); }); }