001 /* ========================================================================
002 * JCommon : a free general purpose class library for the Java(tm) platform
003 * ========================================================================
004 *
005 * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
006 *
007 * Project Info: http://www.jfree.org/jcommon/index.html
008 *
009 * This library is free software; you can redistribute it and/or modify it
010 * under the terms of the GNU Lesser General Public License as published by
011 * the Free Software Foundation; either version 2.1 of the License, or
012 * (at your option) any later version.
013 *
014 * This library is distributed in the hope that it will be useful, but
015 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
016 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
017 * License for more details.
018 *
019 * You should have received a copy of the GNU Lesser General Public
020 * License along with this library; if not, write to the Free Software
021 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
022 * USA.
023 *
024 * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
025 * in the United States and other countries.]
026 *
027 * ----------------------
028 * StringReadHandler.java
029 * ----------------------
030 * (C)opyright 2003, 2004, by Thomas Morgner and Contributors.
031 *
032 * Original Author: Thomas Morgner;
033 * Contributor(s): David Gilbert (for Object Refinery Limited);
034 *
035 * $Id: StringReadHandler.java,v 1.6 2008/09/10 09:19:23 mungady Exp $
036 *
037 * Changes
038 * -------
039 * 03-Dec-2003 : Initial version
040 * 11-Feb-2004 : Added missing Javadocs (DG);
041 *
042 */
043
044 package org.jfree.xml.parser.coretypes;
045
046 import org.jfree.xml.parser.AbstractXmlReadHandler;
047 import org.jfree.xml.parser.XmlReaderException;
048 import org.xml.sax.Attributes;
049 import org.xml.sax.SAXException;
050
051 /**
052 * Required for list contents ...
053 */
054 public class StringReadHandler extends AbstractXmlReadHandler
055 {
056
057 /**
058 * A string buffer.
059 */
060 private StringBuffer buffer;
061
062 /**
063 * The string under construction.
064 */
065 private String result;
066
067 /**
068 * Creates a new handler.
069 */
070 public StringReadHandler ()
071 {
072 super();
073 }
074
075 /**
076 * Starts parsing.
077 *
078 * @param attrs the attributes.
079 * @throws SAXException if there is a parsing error.
080 */
081 protected void startParsing (final Attributes attrs)
082 throws SAXException
083 {
084 this.buffer = new StringBuffer();
085 }
086
087 /**
088 * This method is called to process the character data between element tags.
089 *
090 * @param ch the character buffer.
091 * @param start the start index.
092 * @param length the length.
093 * @throws SAXException if there is a parsing error.
094 */
095 public void characters (final char[] ch, final int start, final int length)
096 throws SAXException
097 {
098 this.buffer.append(ch, start, length);
099 }
100
101 /**
102 * Done parsing.
103 *
104 * @throws SAXException if there is a parsing error.
105 * @throws XmlReaderException if there is a reader error.
106 */
107 protected void doneParsing ()
108 throws SAXException, XmlReaderException
109 {
110 this.result = this.buffer.toString();
111 this.buffer = null;
112 }
113
114 /**
115 * Returns the result.
116 *
117 * @return The result.
118 */
119 public String getResult ()
120 {
121 return this.result;
122 }
123
124 /**
125 * Returns the object for this element.
126 *
127 * @return the object.
128 */
129 public Object getObject ()
130 {
131 return this.result;
132 }
133 }