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
044package org.jfree.xml.parser.coretypes;
045
046import org.jfree.xml.parser.AbstractXmlReadHandler;
047import org.jfree.xml.parser.XmlReaderException;
048import org.xml.sax.Attributes;
049import org.xml.sax.SAXException;
050
051/**
052 * Required for list contents ...
053 */
054public 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}