1
2
3
4
5
6
7
8
9
10
11 package edu.uci.ics.jung.io.graphml.parser;
12
13 import javax.xml.stream.XMLEventReader;
14 import javax.xml.stream.events.Characters;
15 import javax.xml.stream.events.EndElement;
16 import javax.xml.stream.events.StartElement;
17 import javax.xml.stream.events.XMLEvent;
18
19 import edu.uci.ics.jung.graph.Hypergraph;
20 import edu.uci.ics.jung.io.GraphIOException;
21 import edu.uci.ics.jung.io.graphml.ExceptionConverter;
22
23
24
25
26
27
28 public class StringElementParser<G extends Hypergraph<V,E>,V,E> extends AbstractElementParser<G,V,E> {
29
30 public StringElementParser(ParserContext<G,V,E> parserContext) {
31 super(parserContext);
32 }
33
34 public String parse(XMLEventReader xmlEventReader, StartElement start)
35 throws GraphIOException {
36
37 try {
38 String str = null;
39
40 while (xmlEventReader.hasNext()) {
41
42 XMLEvent event = xmlEventReader.nextEvent();
43 if (event.isStartElement()) {
44
45
46 getUnknownParser().parse(xmlEventReader, event
47 .asStartElement());
48 } else if (event.isEndElement()) {
49 EndElement end = (EndElement) event;
50 verifyMatch(start, end);
51 break;
52 } else if (event.isCharacters()) {
53 Characters characters = (Characters) event;
54 str = characters.getData();
55 }
56 }
57
58 return str;
59
60 } catch (Exception e) {
61 ExceptionConverter.convert(e);
62 }
63
64 return null;
65 }
66 }