1 package net.jaekl.cfb.xml;
3 import java.util.ArrayList;
5 import org.xml.sax.Attributes;
7 import net.jaekl.qd.xml.ParseResult;
8 import net.jaekl.qd.xml.XmlParseException;
10 public class BugInstance extends ParseResult {
12 static final String TAG = "BugInstance";
13 static final String[] INTERNAL = { };
14 static final Object[][] EXTERNAL = { { BugClass.TAG, BugClass.class},
15 { BugMethod.TAG, BugMethod.class},
16 { LocalVariable.TAG, LocalVariable.class},
17 { SourceLine.TAG, SourceLine.class} };
19 ArrayList<BugClass> m_classes;
20 ArrayList<BugMethod> m_methods;
21 ArrayList<LocalVariable> m_locals;
22 ArrayList<SourceLine> m_lines;
24 public BugInstance() {
25 super(TAG, INTERNAL, EXTERNAL);
27 m_classes = new ArrayList<BugClass>();
28 m_methods = new ArrayList<BugMethod>();
29 m_locals = new ArrayList<LocalVariable>();
30 m_lines = new ArrayList<SourceLine>();
34 public void endContents(String uri, String localName, String qName, String chars, Attributes attr)
35 throws XmlParseException
40 public void endExternal(String uri, String localName, String qName)
41 throws XmlParseException
43 if (BugClass.TAG.equals(localName)) {
44 ParseResult[] collected = collectParsedChildren(BugClass.class);
45 for (ParseResult pr : collected) {
46 assert(pr instanceof BugClass);
47 m_classes.add((BugClass) pr);
50 else if (BugMethod.TAG.equals(localName)) {
51 ParseResult[] collected = collectParsedChildren(BugMethod.class);
52 for (ParseResult pr : collected) {
53 assert(pr instanceof BugMethod);
54 m_methods.add((BugMethod)pr);
57 else if (LocalVariable.TAG.equals(localName)) {
58 ParseResult[] collected = collectParsedChildren(LocalVariable.class);
59 for (ParseResult pr : collected) {
60 assert(pr instanceof LocalVariable);
61 m_locals.add((LocalVariable)pr);
64 else if (SourceLine.TAG.equals(localName)) {
65 ParseResult[] collected = collectParsedChildren(SourceLine.class);
66 for (ParseResult pr : collected) {
67 assert(pr instanceof SourceLine);
68 m_lines.add((SourceLine)pr);