public ReportQueryImpl(ReportQuery reportQuery) { this(reportQuery.getName(), reportQuery.getScript(), reportQuery.getLoaderType(), reportQuery.getLinkParameterName(), reportQuery.getAdditionalParams()); }
public ReportQueryImpl(ReportQuery reportQuery) { this(reportQuery.getName(), reportQuery.getScript(), reportQuery.getLoaderType(), reportQuery.getLinkParameterName(), reportQuery.getAdditionalParams()); }
protected List<Map<String, Object>> getQueryData(ExtractionContext context, ReportQuery reportQuery) { try { ReportDataLoader dataLoader = loaderFactory.createDataLoader(reportQuery.getLoaderType()); return preprocessorFactory.processorBy(reportQuery.getLoaderType()) .preprocess(reportQuery, new HashMap<>(context.getParams()), (processedQuery, processedParams)-> { //fixme: ugly params overloading support, needs to push context object for dependent logic List<Map<String, Object>> result = dataLoader.loadData(processedQuery, context.getParentBandData(), processedParams); context.extendParams(processedParams); return result; }); } catch (ValidationException e) { throw e; } catch (Exception e) { throw new DataLoadingException(String.format("An error occurred while loading data for band [%s] and query [%s].", context.getBand().getName(), reportQuery.getName()), e); } }
protected List<Map<String, Object>> getQueryData(ExtractionContext context, ReportQuery reportQuery) { try { ReportDataLoader dataLoader = loaderFactory.createDataLoader(reportQuery.getLoaderType()); return preprocessorFactory.processorBy(reportQuery.getLoaderType()) .preprocess(reportQuery, new HashMap<>(context.getParams()), (processedQuery, processedParams)-> { //fixme: ugly params overloading support, needs to push context object for dependent logic List<Map<String, Object>> result = dataLoader.loadData(processedQuery, context.getParentBandData(), processedParams); context.extendParams(processedParams); return result; }); } catch (ValidationException e) { throw e; } catch (Exception e) { throw new DataLoadingException(String.format("An error occurred while loading data for band [%s] and query [%s].", context.getBand().getName(), reportQuery.getName()), e); } }
protected void writeBandDefinition(Element element, ReportBand bandDefinition) { element.addAttribute("name", bandDefinition.getName()); element.addAttribute("orientation", bandDefinition.getBandOrientation().id); Element childrenBandsElement = element.addElement("bands"); Element reportQueriesElement = element.addElement("queries"); if (bandDefinition.getReportQueries() != null) { for (ReportQuery reportQuery : bandDefinition.getReportQueries()) { Element reportQueryElement = reportQueriesElement.addElement("query"); reportQueryElement.addAttribute("name", reportQuery.getName()); reportQueryElement.addAttribute("type", reportQuery.getLoaderType()); reportQueryElement.addElement("script").setText(reportQuery.getScript()); } } if (bandDefinition.getChildren() != null) { for (ReportBand childBandDefinition : bandDefinition.getChildren()) { Element childBandElement = childrenBandsElement.addElement("band"); writeBandDefinition(childBandElement, childBandDefinition); } } } }
protected void writeBandDefinition(Element element, ReportBand bandDefinition) { element.addAttribute("name", bandDefinition.getName()); element.addAttribute("orientation", bandDefinition.getBandOrientation().id); Element childrenBandsElement = element.addElement("bands"); Element reportQueriesElement = element.addElement("queries"); if (bandDefinition.getReportQueries() != null) { for (ReportQuery reportQuery : bandDefinition.getReportQueries()) { Element reportQueryElement = reportQueriesElement.addElement("query"); reportQueryElement.addAttribute("name", reportQuery.getName()); reportQueryElement.addAttribute("type", reportQuery.getLoaderType()); reportQueryElement.addElement("script").setText(reportQuery.getScript()); } } if (bandDefinition.getChildren() != null) { for (ReportBand childBandDefinition : bandDefinition.getChildren()) { Element childBandElement = childrenBandsElement.addElement("band"); writeBandDefinition(childBandElement, childBandDefinition); } } } }