Tag: cws_src680_oj14
User: fs      
Date: 2007-06-19 11:55:52+0000
Added:
   dba/reportdesign/java/com/sun/star/report/pentaho/output/OfficeManifest.java

Log:
 #i78373#

File Changes:

Directory: /dba/reportdesign/java/com/sun/star/report/pentaho/output/
=====================================================================

File [added]: OfficeManifest.java
Url: 
http://dba.openoffice.org/source/browse/dba/reportdesign/java/com/sun/star/report/pentaho/output/OfficeManifest.java?rev=1.1.2.1&content-type=text/vnd.viewcvs-markup
Added lines: 76
---------------
package com.sun.star.report.pentaho.output;

import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import com.sun.star.report.pentaho.OfficeNamespaces;
import com.sun.star.report.OutputRepository;
import org.jfree.report.JFreeReportBoot;
import org.jfree.xmlns.common.AttributeList;
import org.jfree.xmlns.writer.DefaultTagDescription;
import org.jfree.xmlns.writer.XmlWriter;
import org.jfree.xmlns.writer.XmlWriterSupport;

/**
 * Creation-Date: 19.06.2007, 10:27:02
 *
 * @author Thomas Morgner
 */
public class OfficeManifest
{
  private HashMap entries;

  public OfficeManifest()
  {
    entries = new HashMap();
  }

  public void addEntry (final String fullPath, final String mimeType)
  {
    if (fullPath == null)
    {
      throw new NullPointerException();
    }
    if (mimeType == null)
    {
      throw new NullPointerException();
    }
    entries.put (fullPath, mimeType);
  }

  public void write (final OutputRepository outputRepository) throws IOException
  {
    final DefaultTagDescription tagDescription = new DefaultTagDescription();
    tagDescription.configure (JFreeReportBoot.getInstance().getGlobalConfig(),
        OfficeDocumentReportTarget.TAG_DEF_PREFIX);

    final OutputStream manifestOutputStream =
        outputRepository.createOutputStream("META-INF/manifest.xml");

    final OutputStreamWriter writer = new 
OutputStreamWriter(manifestOutputStream, "UTF-8");
    final XmlWriter xmlWriter = new XmlWriter(writer, tagDescription);
    xmlWriter.setAlwaysAddNamespace(true);
    xmlWriter.writeXmlDeclaration("UTF-8");

    final AttributeList rootAttributes = new AttributeList();
    rootAttributes.addNamespaceDeclaration("manifest", 
OfficeNamespaces.MANIFEST_NS);
    xmlWriter.writeTag(OfficeNamespaces.MANIFEST_NS, "manifest", 
rootAttributes, XmlWriterSupport.OPEN);

    final Iterator iterator = entries.entrySet().iterator();
    while (iterator.hasNext())
    {
      final Map.Entry entry = (Map.Entry) iterator.next();
      final AttributeList entryAttrs = new AttributeList();
      entryAttrs.setAttribute(OfficeNamespaces.MANIFEST_NS, "media-type", 
(String) entry.getValue());
      entryAttrs.setAttribute(OfficeNamespaces.MANIFEST_NS, "full-path", 
(String) entry.getKey());
      xmlWriter.writeTag(OfficeNamespaces.MANIFEST_NS, "file-entry", 
entryAttrs, XmlWriterSupport.CLOSE);
    }

    xmlWriter.writeCloseTag();
    xmlWriter.close();
  }
}




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to