private int getBundleAttribute( final DocumentMetaData metaData, final String name ) { final Object raw = metaData.getBundleAttribute( ClassicEngineBoot.METADATA_NAMESPACE, name ); if ( raw == null ) { return -1; } try { return Integer.parseInt( String.valueOf( raw ) ); } catch ( NumberFormatException nfe ) { return -1; } }
public String[] getNames( final String namespace ) { if ( namespace == null ) { throw new NullPointerException(); } return documentMetaData.getMetaDataNames( namespace ); }
public String[] getNamespaces() { return documentMetaData.getMetaDataNamespaces(); }
targetBundleMetaData.setBundleType( bundleMetaData.getBundleType() ); final String[] namespaces = bundleMetaData.getMetaDataNamespaces(); for ( int namespaceIdx = 0; namespaceIdx < namespaces.length; namespaceIdx++ ) { final String namespace = namespaces[ namespaceIdx ]; final String[] dataNames = bundleMetaData.getMetaDataNames( namespace ); for ( int dataNameIdx = 0; dataNameIdx < dataNames.length; dataNameIdx++ ) { final String dataName = dataNames[ dataNameIdx ]; final Object value = bundleMetaData.getBundleAttribute( namespace, dataName ); targetBundleMetaData.setBundleAttribute( namespace, dataName, value ); final String[] entryNames = bundleMetaData.getManifestEntryNames(); for ( int i = 0; i < entryNames.length; i++ ) { final String entryName = entryNames[ i ]; if ( "true".equals( bundleMetaData.getEntryAttribute( entryName, STICKY_FLAG ) ) == false ) { continue; final String entryMimeType = bundleMetaData.getEntryMimeType( entryName ); if ( entryMimeType == null ) { bundleMetaData.getEntryMimeType( entryName ); throw new IllegalStateException( "Found an entry with an invalid mime-type: " + entryName ); final String[] attributeNames = sourceMetaData.getEntryAttributeNames( entryName ); for ( int j = 0; j < attributeNames.length; j++ ) { final String attributeName = attributeNames[ j ]; targetBundle.getWriteableDocumentMetaData().setEntryAttribute ( entryName, attributeName, sourceMetaData.getEntryAttribute( entryName, attributeName ) );
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 ); } } } }
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 metaName = context.getTypeRegistry().convertToText( parameters.getType( 0 ), parameters.getValue( 0 ) ); final String[] namespaces = data.getMetaDataNamespaces(); for ( int i = 0; i < namespaces.length; i++ ) { final String namespace = namespaces[i]; final Object attribute = data.getBundleAttribute( namespace, metaName ); if ( attribute != null ) { return new TypeValuePair( AnyType.TYPE, attribute ); final String metaName = context.getTypeRegistry().convertToText( parameters.getType( 1 ), parameters.getValue( 1 ) ); final Object o = data.getBundleAttribute( metaNamespace, metaName ); return new TypeValuePair( AnyType.TYPE, o );
/** * A helper method that serializes the element object. * * @param stream * the stream to which the element should be serialized. * @throws IOException * if an IO error occured or a property was not serializable. */ private void writeObject( final ObjectOutputStream stream ) throws IOException { stream.defaultWriteObject(); try { final DocumentBundle bundle = getBundle(); stream.writeObject( bundle.getMetaData().getBundleType() ); final MemoryDocumentBundle mem = new MemoryDocumentBundle(); BundleUtilities.copyStickyInto( mem, bundle ); BundleUtilities.copyInto( mem, bundle, LegacyBundleResourceRegistry.getInstance().getRegisteredFiles(), true ); BundleUtilities.copyMetaData( mem, bundle ); mem.getWriteableDocumentMetaData().setBundleType( "application/vnd.pentaho.serialized-bundle" ); final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); BundleUtilities.writeAsZip( outputStream, mem ); stream.writeObject( outputStream.toByteArray() ); } catch ( ContentIOException e ) { throw new IOException( "Unable to serialize the bundle", e ); } }
public String[] getEntries() { return documentMetaData.getManifestEntryNames(); }
public String[] getAttributeNames( final String entryName ) { return documentMetaData.getEntryAttributeNames( entryName ); } }
public String getAttribute( final String entryName, final String attributeName ) { return documentMetaData.getEntryAttribute( entryName, attributeName ); }
public String getMimeType( final String entry ) { if ( entry == null ) { throw new NullPointerException(); } return documentMetaData.getEntryMimeType( entry ); }
targetBundleMetaData.setBundleType( bundleMetaData.getBundleType() ); final String[] namespaces = bundleMetaData.getMetaDataNamespaces(); for ( int namespaceIdx = 0; namespaceIdx < namespaces.length; namespaceIdx++ ) { final String namespace = namespaces[ namespaceIdx ]; final String[] dataNames = bundleMetaData.getMetaDataNames( namespace ); for ( int dataNameIdx = 0; dataNameIdx < dataNames.length; dataNameIdx++ ) { final String dataName = dataNames[ dataNameIdx ]; final Object value = bundleMetaData.getBundleAttribute( namespace, dataName ); targetBundleMetaData.setBundleAttribute( namespace, dataName, value ); final String[] entryNames = bundleMetaData.getManifestEntryNames(); for ( int i = 0; i < entryNames.length; i++ ) { final String entryName = entryNames[ i ]; final String entryMimeType = bundleMetaData.getEntryMimeType( entryName ); if ( entryMimeType == null ) { throw new IllegalStateException( "Found an entry with an invalid mime-type: " + entryName ); final String[] attributeNames = sourceMetaData.getEntryAttributeNames( entryName ); for ( int j = 0; j < attributeNames.length; j++ ) { final String attributeName = attributeNames[ j ]; targetBundle.getWriteableDocumentMetaData().setEntryAttribute ( entryName, attributeName, sourceMetaData.getEntryAttribute( entryName, attributeName ) );
final String[] entryNames = bundleMetaData.getManifestEntryNames(); Arrays.sort( entryNames ); for ( int i = 0; i < entryNames.length; i++ ) {
targetBundleMetaData.setBundleType( bundleMetaData.getBundleType() ); final String[] namespaces = bundleMetaData.getMetaDataNamespaces(); for ( int namespaceIdx = 0; namespaceIdx < namespaces.length; namespaceIdx++ ) { final String namespace = namespaces[ namespaceIdx ]; final String[] dataNames = bundleMetaData.getMetaDataNames( namespace ); for ( int dataNameIdx = 0; dataNameIdx < dataNames.length; dataNameIdx++ ) { final String dataName = dataNames[ dataNameIdx ]; final Object value = bundleMetaData.getBundleAttribute( namespace, dataName ); targetBundleMetaData.setBundleAttribute( namespace, dataName, value ); final String[] entryNames = bundleMetaData.getManifestEntryNames(); for ( int i = 0; i < entryNames.length; i++ ) { final String entryName = entryNames[ i ]; if ( ignoreSticky && "true".equals( bundleMetaData.getEntryAttribute( entryName, STICKY_FLAG ) ) ) { continue; final String entryMimeType = bundleMetaData.getEntryMimeType( entryName ); if ( entryMimeType == null ) { bundleMetaData.getEntryMimeType( entryName ); throw new IllegalStateException( "Found an entry with an invalid mime-type: " + entryName ); final String[] attributeNames = sourceMetaData.getEntryAttributeNames( entryName ); for ( int j = 0; j < attributeNames.length; j++ ) { final String attributeName = attributeNames[ j ]; targetBundle.getWriteableDocumentMetaData().setEntryAttribute ( entryName, attributeName, sourceMetaData.getEntryAttribute( entryName, attributeName ) );
public Object getBundleAttribute( final String namespace, final String attributeName ) { if ( namespace == null ) { throw new NullPointerException(); } if ( attributeName == null ) { throw new NullPointerException(); } return documentMetaData.getBundleAttribute( namespace, attributeName ); }
public String getTitle() { final DocumentBundle bundle = getBundle(); if ( bundle != null ) { final Object o = bundle.getMetaData().getBundleAttribute( ODFMetaAttributeNames.DublinCore.NAMESPACE, ODFMetaAttributeNames.DublinCore.TITLE ); if ( o != null ) { return o.toString(); } } return null; }