-<html>
-<head>
-<title>tests coverage</title>
-<link rel ="stylesheet" type="text/css" href="../../../../style.css" title="Style">
-<script type="text/javascript" src="../../../../sorttable.js"></script>
-<script type="text/javascript">
- targetPage = "" + window.location.search;
- if (targetPage != "" && targetPage != "undefined")
- targetPage = targetPage.substring(1);
- if (targetPage.indexOf(":") != -1 || (targetPage != "" && !validURL(targetPage)))
- targetPage = "undefined";
- function validURL(url) {
- var pos = url.indexOf(".html");
- if (pos == -1 || pos != url.length - 5)
- return false;
- var allowNumber = false;
- var allowSep = false;
- var seenDot = false;
- for (var i = 0; i < url.length - 5; i++) {
- var ch = url.charAt(i);
- if ('a' <= ch && ch <= 'z' ||
- 'A' <= ch && ch <= 'Z' ||
- ch == '$' ||
- ch == '_') {
- allowNumber = true;
- allowSep = true;
- } else if ('0' <= ch && ch <= '9' ||
- ch == '-') {
- if (!allowNumber)
- return false;
- } else if (ch == '/' || ch == '.') {
- if (!allowSep)
- return false;
- allowNumber = false;
- allowSep = false;
- if (ch == '.')
- seenDot = true;
- if (ch == '/' && seenDot)
- return false;
- } else {
- return false;
- }
- }
- return true;
- }
- function loadFrames() {
- if (targetPage != "" && targetPage != "undefined")
- top.classFrame.location = top.targetPage;
- }
-</script>
-</head>
-<body>
-<table>
-<tr>
-<td>
-<a href="../../../../index.html?net/jaekl/qd/xml/ParseResult.html" target="_top">Frames</a>
-<a href="ParseResult.html" target="_top">No Frames</a>
-</td>
-</tr>
-</table>
-<p>
- <table cellspacing="0" cellpadding="0"class="report">
- <tr class="report">
- <th class="report"> </th>
- <th class="report">%method</th>
- <th class="report">%block</th>
- <th class="report">%branch</th>
- <th class="report">%line</th>
- </tr>
- <tr class="report">
- <td class="reportText"><span class="text">net.jaekl.qd.xml.ParseResult</span></td>
- <td class="reportValue"><table class="percentGraph" cellpadding="0" cellspacing="0" align="right"><tr><td><span class="text"><b>89</b>%(8/9)</span></td><td><table class="percentGraph" cellpadding="0" cellspacing="0"><tr><td class="percentCovered" width=" 89"></td><td class="percentUnCovered" width="11.0"></td></tr></table></td></tr></table></td>
- <td class="reportValue"><table class="percentGraph" cellpadding="0" cellspacing="0" align="right"><tr><td><span class="text"><b>81</b>%(38/47)</span></td><td><table class="percentGraph" cellpadding="0" cellspacing="0"><tr><td class="percentCovered" width=" 81"></td><td class="percentUnCovered" width="19.0"></td></tr></table></td></tr></table></td>
- <td class="reportValue"><table class="percentGraph" cellpadding="0" cellspacing="0" align="right"><tr><td><span class="text"><b>74</b>%(25/34)</span></td><td><table class="percentGraph" cellpadding="0" cellspacing="0"><tr><td class="percentCovered" width=" 74"></td><td class="percentUnCovered" width="26.0"></td></tr></table></td></tr></table></td>
- <td class="reportValue"><table class="percentGraph" cellpadding="0" cellspacing="0" align="right"><tr><td><span class="text"><b>91</b>%(60/66)</span></td><td><table class="percentGraph" cellpadding="0" cellspacing="0"><tr><td class="percentCovered" width=" 91"></td><td class="percentUnCovered" width="9.0"></td></tr></table></td></tr></table></td>
- </tr>
- </table>
- <p>
- <p>
- <table cellspacing="0" cellpadding="0"class="report" id="mcoverage">
- <tr class="report">
- <th class="report">hit count</th>
- <th class="report">method name</th>
- <th class="report">method modifiers</th>
- <th class="report">method signature</th>
- </tr>
- <tr class="report">
- <td class="reportValue_covered"><span class="text">1</span></td>
- <td class="reportText"><span class="text"><a href="#src_19"><clinit></a></span></td>
- <td class="reportText"><span class="text">[static]</span></td>
- <td class="reportText"><span class="text">void <clinit>()</span></td>
- </tr>
- <tr class="report">
- <td class="reportValue_covered"><span class="text">45</span></td>
- <td class="reportText"><span class="text"><a href="#src_32"><init></a></span></td>
- <td class="reportText"><span class="text">[public]</span></td>
- <td class="reportText"><span class="text">void <init>(java.lang.String,java.lang.String[],java.lang.Object[][])</span></td>
- </tr>
- <tr class="report">
- <td class="reportValue_covered"><span class="text">195</span></td>
- <td class="reportText"><span class="text"><a href="#src_61">characters</a></span></td>
- <td class="reportText"><span class="text">[public]</span></td>
- <td class="reportText"><span class="text">void characters(char[],int,int)</span></td>
- </tr>
- <tr class="report">
- <td class="reportValue_covered"><span class="text">20</span></td>
- <td class="reportText"><span class="text"><a href="#src_65">collectParsedChildren</a></span></td>
- <td class="reportText"><span class="text">[protected]</span></td>
- <td class="reportText"><span class="text">net.jaekl.qd.xml.ParseResult[] collectParsedChildren(java.lang.Class)</span></td>
- </tr>
- <tr class="report">
- <td class="reportValue_covered"><span class="text">216</span></td>
- <td class="reportText"><span class="text"><a href="#src_82">endElement</a></span></td>
- <td class="reportText"><span class="text">[public]</span></td>
- <td class="reportText"><span class="text">boolean endElement(java.lang.String,java.lang.String,java.lang.String)</span></td>
- </tr>
- <tr class="report">
- <td class="reportValue_covered"><span class="text">1</span></td>
- <td class="reportText"><span class="text"><a href="#src_56">getTagName</a></span></td>
- <td class="reportText"><span class="text">[public]</span></td>
- <td class="reportText"><span class="text">java.lang.String getTagName()</span></td>
- </tr>
- <tr class="report">
- <td class="reportValue_uncovered"><span class="text">0</span></td>
- <td class="reportText"><span class="text"><a href="#src_57">haveSeenMyTag</a></span></td>
- <td class="reportText"><span class="text">[public]</span></td>
- <td class="reportText"><span class="text">boolean haveSeenMyTag()</span></td>
- </tr>
- <tr class="report">
- <td class="reportValue_covered"><span class="text">255</span></td>
- <td class="reportText"><span class="text"><a href="#src_116">startElement</a></span></td>
- <td class="reportText"><span class="text">[public]</span></td>
- <td class="reportText"><span class="text">net.jaekl.qd.xml.ParseResult startElement(java.lang.String,java.lang.String,java.lang.String,org.xml.sax.Attributes)</span></td>
- </tr>
- <tr class="report">
- <td class="reportValue_covered"><span class="text">31</span></td>
- <td class="reportText"><span class="text"><a href="#src_164">validate</a></span></td>
- <td class="reportText"><span class="text">[public]</span></td>
- <td class="reportText"><span class="text">void validate()</span></td>
- </tr>
- </table>
- <p>
- <table cellspacing="0" cellpadding="0" class="src">
- <tr>
- <td class="numLine"> 1</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// Copyright (C) 2004, 2014 Christian Jaekl</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 2</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 3</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// Abstract class representing the result of parsing an XML Element.</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 4</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// A class derived from this one will know how to parse a subtree inside an XML file, and </span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 5</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// will contain the result of that parse within itself when the parse has completed.</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 6</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">//</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 7</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// Note that this code will need to be augmented and fixed if XML namespace support is desired.</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 8</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 9</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">package</span> net.jaekl.qd.xml;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 10</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 11</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> java.util.ArrayList;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 12</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> java.util.HashMap;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 13</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> java.util.HashSet;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 14</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> java.util.Iterator;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 15</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> java.util.Stack;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 16</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 17</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> org.xml.sax.Attributes;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 18</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 19<a name="src_19"></a></td>
- <td class="nbHitsCovered"> Block: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">public</span> <span Class="keyword">abstract</span> <span Class="keyword">class</span> ParseResult</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 20</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 21</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> Stack<String> m_current; <span Class="comment">// Name of the element that we're currently inside</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 22</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> StringBuilder m_chars; <span Class="comment">// character content of m_current.peek()</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 23</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> ArrayList<ParseResult> m_childParsers; <span Class="comment">// Set of all child parsers</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 24</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">boolean</span> m_haveSeenMyTag; <span Class="comment">// Have I encountered my own (root) tag yet?</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 25</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 26</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> String m_tagName; <span Class="comment">// Name of the (root) element tag that I'm parsing</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 27</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> HashSet<String> m_internal; <span Class="comment">// Tags that we will store as members of this class instance</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 28</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> HashMap<String,Class<? <span Class="keyword">extends</span> ParseResult>> m_external; <span Class="comment">// Tags that we will store as child ParseResult-derived objects</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 29</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 30</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> @SuppressWarnings(<span Class="string">"unchecked"</span>)</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 31</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">public</span> ParseResult(String tagName, String[] internalMemberTags, Object[][] externalParserTags)</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 32<a name="src_32"></a></td>
- <td class="nbHitsCovered"> Block: 1/1 </td>
- <td class="src"><pre class="src"> {</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 33</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> m_current = <span Class="keyword">new</span> Stack<String>();</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 34</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> m_chars = <span Class="keyword">new</span> StringBuilder();</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 35</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> m_childParsers = <span Class="keyword">new</span> ArrayList<ParseResult>();</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 36</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> m_haveSeenMyTag = <span Class="keyword">false</span>;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 37</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 38</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> m_tagName = tagName;</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 39</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> m_internal = <span Class="keyword">new</span> HashSet<String>();</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 40</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> m_external = <span Class="keyword">new</span> HashMap<String, Class<? <span Class="keyword">extends</span> ParseResult>>();</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 41</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 42</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">for</span> (String internalTag : internalMemberTags) {</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 43</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> m_internal.add(internalTag);</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 44</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 45</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 46</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">for</span> (<span Class="keyword">int</span> idx = 0; idx < externalParserTags.length; ++idx) {</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 47</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> String externalTag = (String)externalParserTags[idx][0];</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 48</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> Class<? <span Class="keyword">extends</span> ParseResult> parserClass = (Class<? <span Class="keyword">extends</span> ParseResult>)externalParserTags[idx][1];</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 49</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> m_external.put(externalTag, parserClass);</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 50</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 51</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> }</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 52</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 53</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">public</span> <span Class="keyword">abstract</span> <span Class="keyword">void</span> endContents(String uri, String localName, String qName, String chars) <span Class="keyword">throws</span> XmlParseException;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 54</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">public</span> <span Class="keyword">abstract</span> <span Class="keyword">void</span> endExternal(String uri, String localName, String qName) <span Class="keyword">throws</span> XmlParseException;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 55</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 56<a name="src_56"></a></td>
- <td class="nbHitsCovered"> Block: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">public</span> String getTagName() { <span Class="keyword">return</span> m_tagName; }</span></pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 57<a name="src_57"></a></td>
- <td class="nbHitsUncovered"> Block: 0/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">public</span> <span Class="keyword">boolean</span> haveSeenMyTag() { <span Class="keyword">return</span> m_haveSeenMyTag; }</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 58</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 59</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">public</span> <span Class="keyword">void</span> characters(<span Class="keyword">char</span>[] ch, <span Class="keyword">int</span> start, <span Class="keyword">int</span> length) <span Class="keyword">throws</span> XmlParseException</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 60</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 61<a name="src_61"></a></td>
- <td class="nbHitsCovered"> Block: 1/1 </td>
- <td class="src"><pre class="src"> m_chars.append(ch, start, length);</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 62</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 63</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 64</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">protected</span> ParseResult[] collectParsedChildren(Class<? <span Class="keyword">extends</span> ParseResult> cls) {</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 65<a name="src_65"></a></td>
- <td class="nbHitsCovered"> Block: 1/1 </td>
- <td class="src"><pre class="src"> ArrayList<ParseResult> collection = <span Class="keyword">new</span> ArrayList<ParseResult>();</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 66</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> Iterator<ParseResult> iter = m_childParsers.iterator();</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 67</td>
- <td class="nbHitsCovered"> Block: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">while</span> (iter.hasNext()) {</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 68</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> ParseResult pr = iter.next();</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 69</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">if</span> (pr.getClass().isAssignableFrom(cls)) {</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 70</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> collection.add(pr);</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 71</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> iter.remove();</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 72</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 73</td>
- <td class="nbHitsUncovered"> Block: 1/1 Branch: 0/1 </td>
- <td class="src"><pre class="src"> }</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 74</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 75</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> ParseResult[] result = <span Class="keyword">new</span> ParseResult[collection.size()];</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 76</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">return</span> collection.toArray(result);</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 77</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 78</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 79</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// returns true if this ParseResult's context has ended with this endElement() call</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 80</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">public</span> <span Class="keyword">boolean</span> endElement(String uri, String localName, String qName) <span Class="keyword">throws</span> XmlParseException</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 81</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 82<a name="src_82"></a></td>
- <td class="nbHitsCovered"> Block: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">assert</span> (<span Class="keyword">null</span> != localName);</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 83</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 84</td>
- <td class="nbHitsUncovered"> Block: 1/1 Branch: 1/2 </td>
- <td class="src"><pre class="src"> <span Class="keyword">boolean</span> isInternal = m_internal.contains(localName);</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 85</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 86</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">if</span> (! m_haveSeenMyTag) {</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 87</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// We're in some unrecognised prologue. Ignore it and move on.</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 88</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">return</span> <span Class="keyword">false</span>;</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 89</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 90</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 91</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">if</span> (m_tagName.equals(localName)) {</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 92</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> validate();</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 93</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">return</span> <span Class="keyword">true</span>;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 94</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 95</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 96</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">if</span> (!isInternal) {</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 97</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// Unrecognized tag. Ignore it.</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 98</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">return</span> <span Class="keyword">false</span>;</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 99</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 100</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 101</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> String tag = m_current.pop();</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 102</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">if</span> ( ! tag.equals(localName) ) {</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 103</td>
- <td class="nbHitsUncovered"> Block: 0/1 Branch: 0/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">throw</span> <span Class="keyword">new</span> MismatchedTagsException(tag, localName);</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 104</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 105</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 106</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> String chars = m_chars.toString();</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 107</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> endContents(uri, localName, qName, chars);</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 108</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 109</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">return</span> <span Class="keyword">false</span>;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 110</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 111</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 112</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// returns either itself, or a new ParseResult-derived object, whichever should handle parsing the inside of this element</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 113</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">public</span> ParseResult startElement(String uri, String localName, String qName, Attributes attributes) </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 114</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">throws</span> XmlParseException</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 115</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 116<a name="src_116"></a></td>
- <td class="nbHitsCovered"> Block: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">assert</span> (<span Class="keyword">null</span> != localName);</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 117</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 118</td>
- <td class="nbHitsUncovered"> Block: 1/1 Branch: 1/2 </td>
- <td class="src"><pre class="src"> m_chars.setLength(0);</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 119</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 120</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">if</span> (! m_haveSeenMyTag) {</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 121</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// Have we opened our own (root) tag yet?</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 122</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 123</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">if</span> (m_tagName.equals(localName)) {</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 124</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> m_haveSeenMyTag = <span Class="keyword">true</span>;</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 125</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">return</span> <span Class="keyword">this</span>;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 126</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 127</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">else</span> {</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 128</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// One of two things has happened here.</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 129</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// Either (a) we've got some sort of wrapper here, and have not yet reach our own tag, </span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 130</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// or (b) we're parsing XML that doesn't match expectations.</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 131</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// In either case, we're going to ignore this tag, and scan forward looking for our own root.</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 132</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">return</span> <span Class="keyword">this</span>;</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 133</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 134</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 135</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 136</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">if</span> (m_internal.contains(localName)) {</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 137</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> m_current.push(localName);</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 138</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">return</span> <span Class="keyword">this</span>;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 139</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 140</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 141</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> Class<? <span Class="keyword">extends</span> ParseResult> parserClass = m_external.get(localName);</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 142</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">if</span> (<span Class="keyword">null</span> != parserClass) {</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 143</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">try</span> {</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 144</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> ParseResult childParser = (ParseResult) parserClass.newInstance();</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 145</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> m_childParsers.add(childParser);</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 146</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">return</span> childParser.startElement(uri, localName, qName, attributes);</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 147</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 148</td>
- <td class="nbHitsUncovered"> Block: 0/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">catch</span> (IllegalAccessException iae) {</span></pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 149</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">throw</span> <span Class="keyword">new</span> XmlParseException(iae);</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 150</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 151</td>
- <td class="nbHitsUncovered"> Block: 0/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">catch</span> (InstantiationException ie) {</span></pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 152</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">throw</span> <span Class="keyword">new</span> XmlParseException(ie);</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 153</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 154</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 155</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 156</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// Not a recognized tag. Ignore it, rather than complaining. </span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 157</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">return</span> <span Class="keyword">this</span>;</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 158</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 159</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 160</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">public</span> <span Class="keyword">void</span> validate() <span Class="keyword">throws</span> XmlParseException</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 161</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 162</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// Default implementation is a no-op.</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 163</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// Override if you want to validate on endElement()</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 164<a name="src_164"></a></td>
- <td class="nbHitsCovered"> Block: 1/1 </td>
- <td class="src"><pre class="src"> }</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 165</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 166</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- </table>
-<p>
-<p><table cellpadding="0" cellspacing="0" class="report"> <tr class="report"> <td class="reportText"><span class="text"> Report generated 11/12/14 11:31 PM </span></td> </tr></table>
-</body>
-</html>