public static void resetDocumentMetaData( final MasterReport report ) { final DocumentMetaData metaData = report.getBundle().getMetaData(); if ( metaData instanceof WriteableDocumentMetaData ) { final WriteableDocumentMetaData wmd = (WriteableDocumentMetaData) metaData; wmd.setBundleAttribute( ODFMetaAttributeNames.Meta.NAMESPACE, ODFMetaAttributeNames.Meta.INITIAL_CREATOR, wmd .getBundleAttribute( ODFMetaAttributeNames.DublinCore.NAMESPACE, ODFMetaAttributeNames.DublinCore.CREATOR ) ); try { wmd.setBundleAttribute( ODFMetaAttributeNames.DublinCore.NAMESPACE, ODFMetaAttributeNames.DublinCore.CREATOR, System.getProperty( "user.name" ) ); } catch ( Exception e ) { // ignore it, not that important ... } wmd.setBundleAttribute( ODFMetaAttributeNames.DublinCore.NAMESPACE, ODFMetaAttributeNames.DublinCore.DESCRIPTION, null ); wmd.setBundleAttribute( ODFMetaAttributeNames.DublinCore.NAMESPACE, ODFMetaAttributeNames.DublinCore.SUBJECT, null ); wmd.setBundleAttribute( ODFMetaAttributeNames.DublinCore.NAMESPACE, ODFMetaAttributeNames.DublinCore.TITLE, null ); wmd.setBundleAttribute( ODFMetaAttributeNames.Meta.NAMESPACE, ODFMetaAttributeNames.Meta.CREATION_DATE, new Date() ); wmd.setBundleAttribute( ODFMetaAttributeNames.Meta.NAMESPACE, ODFMetaAttributeNames.Meta.KEYWORDS, null ); } }
int versionId = ClassicEngineBoot.computeVersionId( releaseMajor, releaseMinor, releasePatch ); if ( versionId > 0 && ClassicEngineBoot.VERSION_TRUNK != versionId ) { writeableMetaData.setBundleAttribute( ClassicEngineBoot.METADATA_NAMESPACE, "prpt-spec.version.major", releaseMajor ); writeableMetaData.setBundleAttribute( ClassicEngineBoot.METADATA_NAMESPACE, "prpt-spec.version.minor", releaseMinor ); writeableMetaData.setBundleAttribute( ClassicEngineBoot.METADATA_NAMESPACE, "prpt-spec.version.patch", releasePatch ); } else { final int minor = ( reportCompatibility / 1000 ) % 1000; final int major = ( reportCompatibility / 1000000 ); writeableMetaData.setBundleAttribute( ClassicEngineBoot.METADATA_NAMESPACE, "prpt-spec.version.major", major ); writeableMetaData.setBundleAttribute( ClassicEngineBoot.METADATA_NAMESPACE, "prpt-spec.version.minor", minor ); writeableMetaData.setBundleAttribute( ClassicEngineBoot.METADATA_NAMESPACE, "prpt-spec.version.patch", patch ); return; writeableMetaData.setBundleAttribute( ClassicEngineBoot.METADATA_NAMESPACE, "prpt-spec.version.major", 999 ); writeableMetaData.setBundleAttribute( ClassicEngineBoot.METADATA_NAMESPACE, "prpt-spec.version.minor", 999 ); writeableMetaData.setBundleAttribute( ClassicEngineBoot.METADATA_NAMESPACE, "prpt-spec.version.patch", 999 );
ClassicEngineInfo.getInstance().getName() + ' ' + ClassicEngineInfo.getInstance().getVersion(); writeableMetaData.setBundleAttribute( ODFMetaAttributeNames.Meta.NAMESPACE, ODFMetaAttributeNames.Meta.GENERATOR, version ); if ( writeableMetaData.getBundleAttribute( ODFMetaAttributeNames.Meta.NAMESPACE, ODFMetaAttributeNames.Meta.CREATION_DATE ) == null ) { writeableMetaData.setBundleAttribute( ODFMetaAttributeNames.Meta.NAMESPACE, ODFMetaAttributeNames.Meta.CREATION_DATE, currentDate ); writeableMetaData.setBundleAttribute( ODFMetaAttributeNames.DublinCore.NAMESPACE, ODFMetaAttributeNames.DublinCore.DATE, currentDate ); final MasterReport masterReport = state.getMasterReport(); final Object visibleFlag = masterReport.getAttribute( AttributeNames.Pentaho.NAMESPACE, "visible" ); if ( Boolean.FALSE.equals( visibleFlag ) ) { writeableMetaData.setBundleAttribute( ClassicEngineBoot.METADATA_NAMESPACE, "visible", "false" ); } else { writeableMetaData.setBundleAttribute( ClassicEngineBoot.METADATA_NAMESPACE, "visible", "true" );
public static void writeReportToZipStream( final MasterReport report, final OutputStream out, final DocumentMetaData metaData ) throws IOException, BundleWriterException, ContentIOException { if ( report == null ) { throw new NullPointerException(); } if ( out == null ) { throw new NullPointerException(); } final MemoryDocumentBundle documentBundle = new MemoryDocumentBundle(); final BundleWriter writer = new BundleWriter(); writer.writeReport( documentBundle, report ); // restore the metadata to match the metadata of the original bundle. final WriteableDocumentMetaData targetMetaData = (WriteableDocumentMetaData) documentBundle.getMetaData(); for ( final String namespace : metaData.getMetaDataNamespaces() ) { for ( final String name : metaData.getMetaDataNames( namespace ) ) { targetMetaData.setBundleAttribute( namespace, name, metaData.getBundleAttribute( namespace, name ) ); } } BundleUtilities.writeAsZip( out, documentBundle ); }
final String dataName = dataNames[ dataNameIdx ]; final Object value = bundleMetaData.getBundleAttribute( namespace, dataName ); targetBundleMetaData.setBundleAttribute( namespace, dataName, value );
final String dataName = dataNames[ dataNameIdx ]; final Object value = bundleMetaData.getBundleAttribute( namespace, dataName ); targetBundleMetaData.setBundleAttribute( namespace, dataName, value );
final String dataName = dataNames[ dataNameIdx ]; final Object value = bundleMetaData.getBundleAttribute( namespace, dataName ); targetBundleMetaData.setBundleAttribute( namespace, dataName, value );
public static void copyMetaData( final MemoryDocumentBundle memoryDocumentBundle, final DocumentBundle bundle ) { final WriteableDocumentMetaData memMeta = memoryDocumentBundle.getWriteableDocumentMetaData(); final DocumentMetaData metaData = bundle.getMetaData(); memMeta.setBundleType( metaData.getBundleType() ); final String[] metaNamespaces = metaData.getMetaDataNamespaces(); for ( int i = 0; i < metaNamespaces.length; i++ ) { final String metaNamespace = metaNamespaces[ i ]; final String[] metaDataNames = metaData.getMetaDataNames( metaNamespace ); for ( int j = 0; j < metaDataNames.length; j++ ) { final String metaDataName = metaDataNames[ j ]; final Object value = metaData.getBundleAttribute( metaNamespace, metaDataName ); memMeta.setBundleAttribute( metaNamespace, metaDataName, value ); } } } }
/** * The default constructor. Creates an empty but fully initialized report. */ public MasterReport() { setElementType( new MasterReportType() ); setResourceBundleFactory( new LibLoaderResourceBundleFactory() ); this.reportConfiguration = new HierarchicalConfiguration( ClassicEngineBoot.getInstance().getGlobalConfig() ); this.parameterValues = new ReportParameterValues(); setPageDefinition( null ); final TableDataFactory dataFactory = new TableDataFactory(); dataFactory.addTable( "default", new DefaultTableModel() ); this.dataFactory = dataFactory; setQuery( "default" ); // Add a listener that will handle keeping the ResourceManager in sync with changes to the Document Bundle addReportModelListener( new DocumentBundleChangeHandler() ); this.reportEnvironment = new DefaultReportEnvironment( getConfiguration() ); this.parameterDefinition = new DefaultParameterDefinition(); final MemoryDocumentBundle documentBundle = new MemoryDocumentBundle(); documentBundle.getWriteableDocumentMetaData().setBundleType( ClassicEngineBoot.BUNDLE_TYPE ); documentBundle.getWriteableDocumentMetaData().setBundleAttribute( ODFMetaAttributeNames.Meta.NAMESPACE, ODFMetaAttributeNames.Meta.CREATION_DATE, new Date() ); setBundle( documentBundle ); setContentBase( documentBundle.getBundleMainKey() ); addReportModelListener( new ResourceBundleChangeHandler() ); updateResourceBundleFactoryInternal(); }