summaryrefslogtreecommitdiff
path: root/reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/ReportReadHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/ReportReadHandler.java')
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/ReportReadHandler.java232
1 files changed, 0 insertions, 232 deletions
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/ReportReadHandler.java b/reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/ReportReadHandler.java
deleted file mode 100644
index 5e7821a13a0a..000000000000
--- a/reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/ReportReadHandler.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-package com.sun.star.report.pentaho.parser.rpt;
-
-import com.sun.star.report.pentaho.OfficeNamespaces;
-import com.sun.star.report.pentaho.model.OfficeReport;
-import com.sun.star.report.pentaho.parser.ElementReadHandler;
-import com.sun.star.report.pentaho.parser.chart.ChartReadHandler;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.jfree.report.JFreeReportInfo;
-import org.jfree.report.structure.Element;
-import org.jfree.report.structure.Section;
-
-import org.pentaho.reporting.libraries.xmlns.parser.XmlReadHandler;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-
-public class ReportReadHandler extends ElementReadHandler
-{
-
- private RootTableReadHandler pageHeader;
- private RootTableReadHandler pageFooter;
- private RootTableReadHandler reportHeader;
- private RootTableReadHandler reportFooter;
- private RootTableReadHandler detail;
- private GroupReadHandler groups;
- private final OfficeReport rootSection;
- private final List<FunctionReadHandler> functionHandlers;
- private final List<ElementReadHandler> preBodyHandlers;
- private final List<ElementReadHandler> postBodyHandlers;
- private boolean pre = true;
-
- public ReportReadHandler()
- {
- rootSection = new OfficeReport();
- rootSection.setAttribute(JFreeReportInfo.REPORT_NAMESPACE, "simple-report-structure", Boolean.TRUE);
- functionHandlers = new ArrayList<FunctionReadHandler>();
- preBodyHandlers = new ArrayList<ElementReadHandler>();
- postBodyHandlers = new ArrayList<ElementReadHandler>();
- }
-
- /**
- * Returns the handler for a child element.
- *
- * @param tagName the tag name.
- * @param atts the attributes.
- * @return the handler or null, if the tagname is invalid.
- * @throws org.xml.sax.SAXException if there is a parsing error.
- */
- protected XmlReadHandler getHandlerForChild(final String uri,
- final String tagName,
- final Attributes atts)
- throws SAXException
- {
- final XmlReadHandler erh;
- if (OfficeNamespaces.CHART_NS.equals(uri))
- {
- ChartReadHandler crh = new ChartReadHandler(this);
- if (pre)
- {
- preBodyHandlers.add(crh);
- }
- else
- {
- postBodyHandlers.add(crh);
- }
- erh = crh;
- }
- else if (OfficeNamespaces.OOREPORT_NS.equals(uri))
- {
- if ("function".equals(tagName))
- {
- FunctionReadHandler frh = new FunctionReadHandler();
- functionHandlers.add(frh);
- erh = frh;
- }
- else if ("page-header".equals(tagName))
- {
- pageHeader = new RootTableReadHandler();
- erh = pageHeader;
- }
- else if ("report-header".equals(tagName))
- {
- reportHeader = new RootTableReadHandler();
- erh = reportHeader;
- }
- else if ("report-footer".equals(tagName))
- {
- reportFooter = new RootTableReadHandler();
- erh = reportFooter;
- }
- else if ("page-footer".equals(tagName))
- {
- pageFooter = new RootTableReadHandler();
- erh = pageFooter;
- }
- else if ("detail".equals(tagName))
- {
- pre = false;
- detail = new DetailRootTableReadHandler();
- erh = detail;
- }
- else if ("group".equals(tagName))
- {
- groups = new GroupReadHandler(this);
- erh = groups;
- }
- else
- {
- erh = null;
- }
- }
- else
- {
- erh = null;
- }
- return erh;
- }
-
- /**
- * Done parsing.
- *
- * @throws org.xml.sax.SAXException if there is a parsing error.
- */
- protected void doneParsing() throws SAXException
- {
- if (pageHeader != null)
- {
- rootSection.setPageHeader(pageHeader.getElement());
- }
- if (pageFooter != null)
- {
- rootSection.setPageFooter(pageFooter.getElement());
- }
- if (reportHeader != null)
- {
- rootSection.setReportHeader(reportHeader.getElement());
- }
-
- final Section preBody = createSection("report-pre-body", preBodyHandlers);
- if (preBody != null)
- {
- rootSection.setPreBodySection(preBody);
- }
-
- final Section groupBody = new Section();
- groupBody.setNamespace(JFreeReportInfo.REPORT_NAMESPACE);
- groupBody.setType("report-body");
- rootSection.setBodySection(groupBody);
-
- // XOR: Either the detail or the group section can be set ..
- if (groups != null)
- {
- groupBody.addNode(groups.getElement());
- }
- else if (detail != null)
- {
- groupBody.addNode(detail.getElement());
- }
-
- final Section postBody = createSection("report-post-body", postBodyHandlers);
- if (postBody != null)
- {
- rootSection.setPostBodySection(postBody);
- }
-
- if (reportFooter != null)
- {
- rootSection.setReportFooter(reportFooter.getElement());
- }
-
- for (int i = 0; i < functionHandlers.size(); i++)
- {
- final FunctionReadHandler handler = functionHandlers.get(i);
- rootSection.addExpression(handler.getExpression());
- }
- }
-
- public Element getElement()
- {
- return rootSection;
- }
-
- private final Section createSection(final String name, final List<ElementReadHandler> handler)
- {
- if (!handler.isEmpty())
- {
- final Section section = new Section();
- section.setNamespace(JFreeReportInfo.REPORT_NAMESPACE);
- section.setType(name);
-
- for (int i = 0; i < handler.size(); i++)
- {
- final ElementReadHandler erh = handler.get(i);
- section.addNode(erh.getElement());
- }
- return section;
- }
- return null;
- }
-
- public void setDetail(final RootTableReadHandler detail)
- {
- this.detail = detail;
- }
-
- public final RootTableReadHandler getDetail()
- {
- return detail;
- }
-
-}