summaryrefslogtreecommitdiff
path: root/reportbuilder
diff options
context:
space:
mode:
authorOcke.Janssen <Ocke.Janssen@oracle.com>2010-11-17 11:57:13 +0100
committerOcke.Janssen <Ocke.Janssen@oracle.com>2010-11-17 11:57:13 +0100
commit521bf2062c8b6f0b5b299f9dadb20f369255d6bd (patch)
treed3cd95d1b58a7deb895cdb9f9a1db413ff38093c /reportbuilder
parentedc0f8b91ce22cc7ae7e55489522ae02bc39003d (diff)
parent2d24f7dc9b7455d178d0ad0060f6077086f6d1af (diff)
Automated merge with http://hg.services.openoffice.org/cws/dba34b
Diffstat (limited to 'reportbuilder')
-rw-r--r--reportbuilder/java/com/sun/star/report/SDBCReportData.java12
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java63
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java22
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java1
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/text/TextRawReportTarget.java22
5 files changed, 77 insertions, 43 deletions
diff --git a/reportbuilder/java/com/sun/star/report/SDBCReportData.java b/reportbuilder/java/com/sun/star/report/SDBCReportData.java
index 769657aa6bf5..a759b1712fe9 100644
--- a/reportbuilder/java/com/sun/star/report/SDBCReportData.java
+++ b/reportbuilder/java/com/sun/star/report/SDBCReportData.java
@@ -47,7 +47,6 @@ import com.sun.star.util.Time;
import java.sql.Timestamp;
-
public class SDBCReportData implements DataSource
{
@@ -349,7 +348,7 @@ public class SDBCReportData implements DataSource
private Object convertObject(final int type, final Object obj)
{
- final Object ret;
+ Object ret;
switch (type)
{
case DataType.DATE:
@@ -365,7 +364,14 @@ public class SDBCReportData implements DataSource
case DataType.NUMERIC:
if (!(obj instanceof Any))
{
- ret = new java.math.BigDecimal((String) obj);
+ try
+ {
+ ret = new java.math.BigDecimal(String.valueOf(obj));
+ }
+ catch (NumberFormatException ex)
+ {
+ ret = obj;
+ }
}
else
{
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java b/reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java
index b41252a17089..cdc8eae1b73b 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java
@@ -41,6 +41,18 @@ import com.sun.star.report.pentaho.model.OfficeStyles;
import com.sun.star.report.pentaho.model.OfficeStylesCollection;
import com.sun.star.report.pentaho.styles.LengthCalculator;
import com.sun.star.report.pentaho.styles.StyleMapper;
+import com.sun.org.apache.xerces.internal.parsers.DOMParser;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
import java.awt.Image;
@@ -54,6 +66,7 @@ import java.io.Reader;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.Writer;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
@@ -137,7 +150,6 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget
public static final String FAILED = "Failed";
public static final String VERTICAL_POS = "vertical-pos";
private static final String ZERO_CM = "0cm";
-
/** the verison of the ODF specification to which generated documents
* shall conform. */
public static final String ODF_VERSION = "1.2";
@@ -381,7 +393,7 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget
rootAttributes.addNamespaceDeclaration("xsi", OfficeNamespaces.XSI_NS);
rootAttributes.addNamespaceDeclaration("grddl", OfficeNamespaces.GRDDL_NS);
rootAttributes.setAttribute(OfficeNamespaces.OFFICE_NS, "version",
- ODF_VERSION);
+ ODF_VERSION);
this.rootXmlWriter.writeXmlDeclaration("UTF-8");
this.rootXmlWriter.writeTag(OfficeNamespaces.OFFICE_NS, "document-content", rootAttributes, XmlWriterSupport.OPEN);
@@ -1037,6 +1049,53 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget
getXmlWriter().writeCloseTag();
}
+ public void copyMeta()
+ {
+ // now copy the meta.xml
+ if (getInputRepository().isReadable("meta.xml"))
+ {
+ InputStream inputStream = null;
+ try
+ {
+ inputStream = getInputRepository().createInputStream("meta.xml");
+ DOMParser dOMParser = new DOMParser();
+ dOMParser.parse(new InputSource(inputStream));
+ Document document = dOMParser.getDocument();
+ NodeList nl = document.getElementsByTagName("document-meta/meta/generator");
+ Node node = document.getFirstChild().getFirstChild().getFirstChild().getFirstChild();
+ String creator = node.getNodeValue();
+ node.setNodeValue(creator + "/report_builder");
+ Transformer transformer = TransformerFactory.newInstance().newTransformer();
+ transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+
+ final OutputStream outputMetaStream = getOutputRepository().createOutputStream("meta.xml", "text/xml");
+ StreamResult result = new StreamResult(outputMetaStream);
+ DOMSource source = new DOMSource(document);
+ transformer.transform(source, result);
+
+ //IOUtils.getInstance().copyStreams(inputStream, outputMetaStream);
+ outputMetaStream.flush();
+ outputMetaStream.close();
+ }
+ catch (java.lang.Exception ex)
+ {
+ } finally
+ {
+ if (inputStream != null)
+ {
+ try
+ {
+ inputStream.close();
+ }
+ catch (IOException ex)
+ {
+ Logger.getLogger(OfficeDocumentReportTarget.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
+ }
+ }
+ }
+
public void endReport(final ReportStructureRoot report)
throws DataSourceException, ReportProcessingException
{
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java b/reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java
index f76d43bb807a..2013b1c492ff 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java
@@ -261,26 +261,6 @@ public class ChartRawReportTarget extends OfficeDocumentReportTarget
throws DataSourceException, ReportProcessingException
{
super.endReport(report);
- try
- {
- // now copy the meta.xml
- if (getInputRepository().isReadable("meta.xml"))
- {
- final InputStream inputStream = getInputRepository().createInputStream("meta.xml");
- try
- {
- final OutputStream outputMetaStream = getOutputRepository().createOutputStream("meta.xml", "text/xml");
- IOUtils.getInstance().copyStreams(inputStream, outputMetaStream);
- outputMetaStream.close();
- } finally
- {
- inputStream.close();
- }
- }
- }
- catch (IOException ioe)
- {
- throw new ReportProcessingException("Failed to write settings document", ioe);
- }
+ copyMeta();
}
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java b/reportbuilder/java/com/sun/star/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java
index d2c4ebd96e3c..baa43e687ccb 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java
@@ -845,6 +845,7 @@ public class SpreadsheetRawReportTarget extends OfficeDocumentReportTarget
setElementBoundaryCollectionPass(false);
resetTableCounter();
columnCounter = 0;
+ copyMeta();
}
private boolean isElementBoundaryCollectionPass()
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/output/text/TextRawReportTarget.java b/reportbuilder/java/com/sun/star/report/pentaho/output/text/TextRawReportTarget.java
index 9f3746086b87..a66f3e8b6c4d 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/output/text/TextRawReportTarget.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/output/text/TextRawReportTarget.java
@@ -26,6 +26,7 @@
************************************************************************/
package com.sun.star.report.pentaho.output.text;
+
import com.sun.star.report.DataSourceFactory;
import com.sun.star.report.ImageService;
import com.sun.star.report.InputRepository;
@@ -45,7 +46,7 @@ import com.sun.star.report.pentaho.output.StyleUtilities;
import com.sun.star.report.pentaho.styles.LengthCalculator;
import java.io.IOException;
-import java.io.InputStream;
+
import java.io.OutputStream;
import java.io.OutputStreamWriter;
@@ -53,6 +54,7 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map;
+
import org.jfree.layouting.input.style.values.CSSNumericValue;
import org.jfree.layouting.util.AttributeMap;
import org.jfree.report.DataSourceException;
@@ -67,7 +69,6 @@ import org.jfree.report.util.AttributeNameGenerator;
import org.jfree.report.util.IntegerCache;
import org.pentaho.reporting.libraries.base.util.FastStack;
-import org.pentaho.reporting.libraries.base.util.IOUtils;
import org.pentaho.reporting.libraries.base.util.ObjectUtilities;
import org.pentaho.reporting.libraries.resourceloader.ResourceKey;
import org.pentaho.reporting.libraries.resourceloader.ResourceManager;
@@ -1270,7 +1271,7 @@ public class TextRawReportTarget extends OfficeDocumentReportTarget
rootAttributes.addNamespaceDeclaration("config", OfficeNamespaces.CONFIG);
rootAttributes.addNamespaceDeclaration("ooo", OfficeNamespaces.OO2004_NS);
rootAttributes.setAttribute(OfficeNamespaces.OFFICE_NS, "version",
- OfficeDocumentReportTarget.ODF_VERSION);
+ OfficeDocumentReportTarget.ODF_VERSION);
final OutputStream outputStream = getOutputRepository().createOutputStream("settings.xml", "text/xml");
final XmlWriter xmlWriter = new XmlWriter(new OutputStreamWriter(outputStream, "UTF-8"), createTagDescription());
xmlWriter.setAlwaysAddNamespace(true);
@@ -1291,20 +1292,7 @@ public class TextRawReportTarget extends OfficeDocumentReportTarget
xmlWriter.writeCloseTag();
xmlWriter.close();
- // now copy the meta.xml
- if (getInputRepository().isReadable("meta.xml"))
- {
- final InputStream inputStream = getInputRepository().createInputStream("meta.xml");
- try
- {
- final OutputStream outputMetaStream = getOutputRepository().createOutputStream("meta.xml", "text/xml");
- IOUtils.getInstance().copyStreams(inputStream, outputMetaStream);
- outputMetaStream.close();
- } finally
- {
- inputStream.close();
- }
- }
+ copyMeta();
}
catch (IOException ioe)
{