/* * Copyright (c) 2008, the JUNG Project and the Regents of the University * of California * All rights reserved. * * This software is open-source under the BSD license; see either * "license.txt" or * http://jung.sourceforge.net/license.txt for a description. */ package edu.uci.ics.jung.io.graphml.parser; import javax.xml.stream.XMLEventReader; import javax.xml.stream.events.Characters; import javax.xml.stream.events.EndElement; import javax.xml.stream.events.StartElement; import javax.xml.stream.events.XMLEvent; import edu.uci.ics.jung.graph.Hypergraph; import edu.uci.ics.jung.io.GraphIOException; import edu.uci.ics.jung.io.graphml.ExceptionConverter; /** * Parses an element that just contains text. * * @author Nathan Mittler - nathan.mittler@gmail.com */ public class StringElementParser<G extends Hypergraph<V,E>,V,E> extends AbstractElementParser<G,V,E> { public StringElementParser(ParserContext<G,V,E> parserContext) { super(parserContext); } public String parse(XMLEventReader xmlEventReader, StartElement start) throws GraphIOException { try { String str = null; while (xmlEventReader.hasNext()) { XMLEvent event = xmlEventReader.nextEvent(); if (event.isStartElement()) { // Parse the unknown element. getUnknownParser().parse(xmlEventReader, event .asStartElement()); } else if (event.isEndElement()) { EndElement end = (EndElement) event; verifyMatch(start, end); break; } else if (event.isCharacters()) { Characters characters = (Characters) event; str = characters.getData(); } } return str; } catch (Exception e) { ExceptionConverter.convert(e); } return null; } }