public MasterReport derive( final boolean preserveElementInstanceIds ) { final MasterReport report = (MasterReport) super.derive( preserveElementInstanceIds ); report.reportConfiguration = (HierarchicalConfiguration) reportConfiguration.clone(); report.reportEnvironment = (ReportEnvironment) reportEnvironment.clone(); if ( report.reportEnvironment instanceof DefaultReportEnvironment ) { // this is a ugly hack. Needs to be addressed in Sugar final DefaultReportEnvironment dre = (DefaultReportEnvironment) report.reportEnvironment; dre.update( report.reportConfiguration ); } report.parameterDefinition = (ReportParameterDefinition) parameterDefinition.clone(); report.parameterValues = (ReportParameterValues) parameterValues.clone(); report.dataFactory = dataFactory.derive(); // Add a listener that will handle keeping the ResourceManager in sync with changes to the Document Bundle report.addReportModelListener( new DocumentBundleChangeHandler() ); report.addReportModelListener( new ResourceBundleChangeHandler() ); return report; }
/** * Clones the report. * * @return the clone. */ public MasterReport clone() { final MasterReport report = (MasterReport) super.clone(); report.reportConfiguration = (HierarchicalConfiguration) reportConfiguration.clone(); report.reportEnvironment = (ReportEnvironment) reportEnvironment.clone(); if ( report.reportEnvironment instanceof DefaultReportEnvironment ) { // this is a ugly hack. Needs to be addressed in Sugar final DefaultReportEnvironment dre = (DefaultReportEnvironment) report.reportEnvironment; dre.update( report.reportConfiguration ); } report.parameterDefinition = (ReportParameterDefinition) parameterDefinition.clone(); report.parameterValues = (ReportParameterValues) parameterValues.clone(); report.dataFactory = dataFactory.derive(); // Add a listener that will handle keeping the ResourceManager in sync with changes to the Document Bundle report.addReportModelListener( new DocumentBundleChangeHandler() ); report.addReportModelListener( new ResourceBundleChangeHandler() ); return report; }