001 /** 002 * ======================================== 003 * JFreeReport : a free Java report library 004 * ======================================== 005 * 006 * Project Info: http://reporting.pentaho.org/ 007 * 008 * (C) Copyright 2000-2007, by Object Refinery Limited, Pentaho Corporation and Contributors. 009 * 010 * This library is free software; you can redistribute it and/or modify it under the terms 011 * of the GNU Lesser General Public License as published by the Free Software Foundation; 012 * either version 2.1 of the License, or (at your option) any later version. 013 * 014 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 015 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 016 * See the GNU Lesser General Public License for more details. 017 * 018 * You should have received a copy of the GNU Lesser General Public License along with this 019 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, 020 * Boston, MA 02111-1307, USA. 021 * 022 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 023 * in the United States and other countries.] 024 * 025 * ------------ 026 * $Id: OutOfOrderSectionReadHandler.java 3048 2007-07-28 18:02:42Z tmorgner $ 027 * ------------ 028 * (C) Copyright 2000-2005, by Object Refinery Limited. 029 * (C) Copyright 2005-2007, by Pentaho Corporation. 030 */ 031 package org.jfree.report.modules.factories.report.flow; 032 033 import org.jfree.report.JFreeReportInfo; 034 import org.jfree.report.structure.Element; 035 import org.jfree.report.structure.Section; 036 import org.xml.sax.Attributes; 037 import org.xml.sax.SAXException; 038 039 /** 040 * Creation-Date: 09.04.2006, 14:57:38 041 * 042 * @author Thomas Morgner 043 */ 044 public class OutOfOrderSectionReadHandler extends SectionReadHandler 045 { 046 private Section outOfOrderSection; 047 private String role; 048 private boolean printInFlow; 049 050 /** 051 * Creates a new generic read handler. The given namespace and tagname can be 052 * arbitary values and should not be confused with the ones provided by the 053 * XMLparser itself. 054 * 055 * @param namespace 056 * @param tagName 057 */ 058 public OutOfOrderSectionReadHandler() 059 { 060 outOfOrderSection = new Section(); 061 } 062 063 /** 064 * Starts parsing. 065 * 066 * @param attrs the attributes. 067 * @throws SAXException if there is a parsing error. 068 */ 069 protected void startParsing(final Attributes attrs) throws SAXException 070 { 071 super.startParsing(attrs); 072 role = attrs.getValue(getUri(), "role"); 073 final String printInFlowValue = attrs.getValue(getUri(), "print-inflow"); 074 if (printInFlowValue != null) 075 { 076 printInFlow = "true".equals(printInFlowValue); 077 } 078 else 079 { 080 printInFlow = true; 081 } 082 083 } 084 085 /** 086 * Done parsing. 087 * 088 * @throws SAXException if there is a parsing error. 089 * @throws XmlReaderException if there is a reader error. 090 */ 091 protected void doneParsing() throws SAXException 092 { 093 super.doneParsing(); 094 final Section outOfOrderSection = (Section) getElement(); 095 outOfOrderSection.setAttribute(JFreeReportInfo.REPORT_NAMESPACE, "print-in-flow", String.valueOf(printInFlow)); 096 outOfOrderSection.setAttribute(JFreeReportInfo.REPORT_NAMESPACE, "role", role); 097 } 098 099 protected Element getElement() 100 { 101 return outOfOrderSection; 102 } 103 }