Package org.pentaho.reporting.engine.classic.extensions.datasources.mondrian.writer

Source Code of org.pentaho.reporting.engine.classic.extensions.datasources.mondrian.writer.JndiDataSourceProviderWriteHandler

package org.pentaho.reporting.engine.classic.extensions.datasources.mondrian.writer;

import java.io.IOException;

import org.pentaho.reporting.engine.classic.core.modules.parser.bundle.writer.BundleWriterException;
import org.pentaho.reporting.engine.classic.core.modules.parser.bundle.writer.BundleWriterState;
import org.pentaho.reporting.engine.classic.core.modules.parser.extwriter.ReportWriterContext;
import org.pentaho.reporting.engine.classic.core.modules.parser.extwriter.ReportWriterException;
import org.pentaho.reporting.engine.classic.extensions.datasources.mondrian.DataSourceProvider;
import org.pentaho.reporting.engine.classic.extensions.datasources.mondrian.JndiDataSourceProvider;
import org.pentaho.reporting.engine.classic.extensions.datasources.mondrian.MondrianDataFactoryModule;
import org.pentaho.reporting.libraries.docbundle.WriteableDocumentBundle;
import org.pentaho.reporting.libraries.xmlns.writer.XmlWriter;

/**
* Todo: Document me!
* <p/>
* Date: 25.08.2009
* Time: 18:56:13
*
* @author Thomas Morgner.
*/
public class JndiDataSourceProviderWriteHandler
    implements DataSourceProviderBundleWriteHandler, DataSourceProviderWriteHandler
{
  /**
   * Writes a data-source into a XML-stream.
   *
   * @param bundle             the document bundle that is produced.
   * @param state              the current writer state.
   * @param xmlWriter          the XML writer that will receive the generated XML data.
   * @param dataSourceProvider the data factory that should be written.
   * @throws java.io.IOException if any error occured
   */
  public void write(final WriteableDocumentBundle bundle,
                    final BundleWriterState state,
                    final XmlWriter xmlWriter,
                    final DataSourceProvider dataSourceProvider) throws IOException, BundleWriterException
  {
    if (dataSourceProvider instanceof JndiDataSourceProvider == false)
    {
      throw new BundleWriterException("This is not a JNDI connection");
    }
    write(xmlWriter, (JndiDataSourceProvider) dataSourceProvider);
  }

  /**
   * Writes a data-source into a XML-stream.
   *
   * @param reportWriter the writer context that holds all factories.
   * @param xmlWriter    the XML writer that will receive the generated XML data.
   * @param dataFactory  the data factory that should be written.
   * @throws java.io.IOException if any error occured
   * @throws org.pentaho.reporting.engine.classic.core.modules.parser.extwriter.ReportWriterException
   *                             if the data factory cannot be written.
   */
  public void write(final ReportWriterContext reportWriter,
                    final XmlWriter xmlWriter,
                    final DataSourceProvider dataFactory) throws IOException, ReportWriterException
  {
    if (dataFactory instanceof JndiDataSourceProvider == false)
    {
      throw new ReportWriterException("This is not a JNDI connection");
    }
    write(xmlWriter, (JndiDataSourceProvider) dataFactory);
  }

  protected void write(XmlWriter writer, final JndiDataSourceProvider provider) throws IOException
  {
    writer.writeTag(MondrianDataFactoryModule.NAMESPACE, "jndi", XmlWriter.OPEN);
    writer.writeTag(MondrianDataFactoryModule.NAMESPACE, "path", XmlWriter.OPEN);
    writer.writeTextNormalized(provider.getConnectionPath(), false);
    writer.writeCloseTag();
    writer.writeCloseTag();
  }
}
TOP

Related Classes of org.pentaho.reporting.engine.classic.extensions.datasources.mondrian.writer.JndiDataSourceProviderWriteHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.