X-Git-Url: http://jaekl.net/gitweb/?p=cfb.git;a=blobdiff_plain;f=prod%2Fnet%2Fjaekl%2Fcfb%2Fxml%2FBugMethod.java;h=2e001b23abe93116f71c47782bc1f21b428308e6;hp=6a63b439e339de56d556616357ada548d80cf6a9;hb=a938b67bf3d3bd86f8dd7b1f958e81007bf6f2fe;hpb=08a530ef53cc4756f5e632b69c78830872ebd9f4 diff --git a/prod/net/jaekl/cfb/xml/BugMethod.java b/prod/net/jaekl/cfb/xml/BugMethod.java index 6a63b43..2e001b2 100644 --- a/prod/net/jaekl/cfb/xml/BugMethod.java +++ b/prod/net/jaekl/cfb/xml/BugMethod.java @@ -1,5 +1,7 @@ package net.jaekl.cfb.xml; +import java.util.ArrayList; + import org.xml.sax.Attributes; import net.jaekl.qd.xml.ParseResult; @@ -7,26 +9,54 @@ import net.jaekl.qd.xml.XmlParseException; public class BugMethod extends ParseResult { - static final String ROOT_TAG = "Method"; + static final String TAG = "Method"; static final String[] INTERNAL = { }; - static final Object[][] EXTERNAL = { { SourceLine.ROOT_TAG, SourceLine.class} }; + static final Object[][] EXTERNAL = { { SourceLine.TAG, SourceLine.class} }; + static final String CLASS_NAME = "classname"; + static final String METHOD_NAME = "name"; + static final String SIGNATURE = "signature"; + static final String IS_STATIC = "isStatic"; + static final String ROLE = "role"; + + static final String TRUE = "true"; // yes value for isStatic + + String m_className; + String m_methodName; + String m_signature; + boolean m_isStatic; + String m_role; // optional + ArrayList m_sourceLines; + public BugMethod() { - super(ROOT_TAG, INTERNAL, EXTERNAL); + super(TAG, INTERNAL, EXTERNAL); + m_className = m_methodName = m_signature = m_role = null; + m_isStatic = false; + m_sourceLines = new ArrayList(); } @Override - public void endContents(String uri, String localName, String qName, - String chars, Attributes attr) throws XmlParseException { - // TODO Auto-generated method stub - + public void endContents(String uri, String localName, String qName, String chars, Attributes attr) + throws XmlParseException + { + m_className = getRequiredAttr(TAG, attr, CLASS_NAME); + m_methodName = getRequiredAttr(TAG, attr, METHOD_NAME); + m_signature = getRequiredAttr(TAG, attr, SIGNATURE); + m_isStatic = getRequiredAttr(TAG, attr, IS_STATIC).equals(TRUE); + m_role = getOptionalAttr(attr, ROLE, null); } @Override public void endExternal(String uri, String localName, String qName) - throws XmlParseException { - // TODO Auto-generated method stub - + throws XmlParseException + { + if (SourceLine.TAG.equals(localName)) { + ParseResult[] collected = collectParsedChildren(SourceLine.class); + for (ParseResult pr : collected) { + assert(pr instanceof SourceLine); + m_sourceLines.add((SourceLine)pr); + } + } } }