{
final DefaultProcessingContext processingContext = new DefaultProcessingContext(report);
final DataSchemaDefinition definition = report.getDataSchemaDefinition();
final DefaultFlowController flowController = new DefaultFlowController(processingContext,
definition, StateUtilities.computeParameterValueSet(report), performanceMonitorContext);
final CachingDataFactory dataFactory = new CachingDataFactory(report.getDataFactory(), isCacheEnabled(report));
dataFactory.initialize(new ProcessingDataFactoryContext(processingContext, dataFactory));
try
{
final DefaultFlowController postQueryFlowController = flowController.performDesignTimeQuery
(dataFactory, report.getQuery(), report.getQueryLimit(),
report.getQueryTimeout(), flowController.getMasterRow().getResourceBundleFactory());
final Object originalEnable =
report.getAttribute(AttributeNames.Wizard.NAMESPACE, AttributeNames.Wizard.ENABLE);
report.setAttribute(AttributeNames.Wizard.NAMESPACE, AttributeNames.Wizard.ENABLE, Boolean.TRUE);
final MasterReport masterReport = processor.performPreProcessing(report, postQueryFlowController);
masterReport.setAttribute(AttributeNames.Wizard.NAMESPACE, AttributeNames.Wizard.ENABLE, originalEnable);
masterReport.setName(null);
DesignTimeUtil.resetDocumentMetaData(masterReport);
return masterReport;
}
finally
{
dataFactory.close();
}
}
finally
{
performanceMonitorContext.close();