Modified: websites/production/commons/content/proper/commons-text/jacoco/org.apache.commons.text/StrTokenizer.java.html ============================================================================== --- websites/production/commons/content/proper/commons-text/jacoco/org.apache.commons.text/StrTokenizer.java.html (original) +++ websites/production/commons/content/proper/commons-text/jacoco/org.apache.commons.text/StrTokenizer.java.html Sun Mar 12 02:08:01 2017 @@ -83,46 +83,48 @@ import java.util.NoSuchElementException; */ public class StrTokenizer implements ListIterator<String>, Cloneable { + /** Comma separated values tokenizer internal variable. */ private static final StrTokenizer CSV_TOKENIZER_PROTOTYPE; + /** Tab separated values tokenizer internal variable. */ private static final StrTokenizer TSV_TOKENIZER_PROTOTYPE; static { -<span class="fc" id="L89"> CSV_TOKENIZER_PROTOTYPE = new StrTokenizer();</span> -<span class="fc" id="L90"> CSV_TOKENIZER_PROTOTYPE.setDelimiterMatcher(StrMatcher.commaMatcher());</span> -<span class="fc" id="L91"> CSV_TOKENIZER_PROTOTYPE.setQuoteMatcher(StrMatcher.doubleQuoteMatcher());</span> -<span class="fc" id="L92"> CSV_TOKENIZER_PROTOTYPE.setIgnoredMatcher(StrMatcher.noneMatcher());</span> -<span class="fc" id="L93"> CSV_TOKENIZER_PROTOTYPE.setTrimmerMatcher(StrMatcher.trimMatcher());</span> -<span class="fc" id="L94"> CSV_TOKENIZER_PROTOTYPE.setEmptyTokenAsNull(false);</span> -<span class="fc" id="L95"> CSV_TOKENIZER_PROTOTYPE.setIgnoreEmptyTokens(false);</span> - -<span class="fc" id="L97"> TSV_TOKENIZER_PROTOTYPE = new StrTokenizer();</span> -<span class="fc" id="L98"> TSV_TOKENIZER_PROTOTYPE.setDelimiterMatcher(StrMatcher.tabMatcher());</span> -<span class="fc" id="L99"> TSV_TOKENIZER_PROTOTYPE.setQuoteMatcher(StrMatcher.doubleQuoteMatcher());</span> -<span class="fc" id="L100"> TSV_TOKENIZER_PROTOTYPE.setIgnoredMatcher(StrMatcher.noneMatcher());</span> -<span class="fc" id="L101"> TSV_TOKENIZER_PROTOTYPE.setTrimmerMatcher(StrMatcher.trimMatcher());</span> -<span class="fc" id="L102"> TSV_TOKENIZER_PROTOTYPE.setEmptyTokenAsNull(false);</span> -<span class="fc" id="L103"> TSV_TOKENIZER_PROTOTYPE.setIgnoreEmptyTokens(false);</span> -<span class="fc" id="L104"> }</span> +<span class="fc" id="L91"> CSV_TOKENIZER_PROTOTYPE = new StrTokenizer();</span> +<span class="fc" id="L92"> CSV_TOKENIZER_PROTOTYPE.setDelimiterMatcher(StrMatcher.commaMatcher());</span> +<span class="fc" id="L93"> CSV_TOKENIZER_PROTOTYPE.setQuoteMatcher(StrMatcher.doubleQuoteMatcher());</span> +<span class="fc" id="L94"> CSV_TOKENIZER_PROTOTYPE.setIgnoredMatcher(StrMatcher.noneMatcher());</span> +<span class="fc" id="L95"> CSV_TOKENIZER_PROTOTYPE.setTrimmerMatcher(StrMatcher.trimMatcher());</span> +<span class="fc" id="L96"> CSV_TOKENIZER_PROTOTYPE.setEmptyTokenAsNull(false);</span> +<span class="fc" id="L97"> CSV_TOKENIZER_PROTOTYPE.setIgnoreEmptyTokens(false);</span> + +<span class="fc" id="L99"> TSV_TOKENIZER_PROTOTYPE = new StrTokenizer();</span> +<span class="fc" id="L100"> TSV_TOKENIZER_PROTOTYPE.setDelimiterMatcher(StrMatcher.tabMatcher());</span> +<span class="fc" id="L101"> TSV_TOKENIZER_PROTOTYPE.setQuoteMatcher(StrMatcher.doubleQuoteMatcher());</span> +<span class="fc" id="L102"> TSV_TOKENIZER_PROTOTYPE.setIgnoredMatcher(StrMatcher.noneMatcher());</span> +<span class="fc" id="L103"> TSV_TOKENIZER_PROTOTYPE.setTrimmerMatcher(StrMatcher.trimMatcher());</span> +<span class="fc" id="L104"> TSV_TOKENIZER_PROTOTYPE.setEmptyTokenAsNull(false);</span> +<span class="fc" id="L105"> TSV_TOKENIZER_PROTOTYPE.setIgnoreEmptyTokens(false);</span> +<span class="fc" id="L106"> }</span> /** The text to work on. */ - private char chars[]; - /** The parsed tokens */ - private String tokens[]; - /** The current iteration position */ + private char[] chars; + /** The parsed tokens. */ + private String[] tokens; + /** The current iteration position. */ private int tokenPos; - /** The delimiter matcher */ -<span class="fc" id="L114"> private StrMatcher delimMatcher = StrMatcher.splitMatcher();</span> - /** The quote matcher */ -<span class="fc" id="L116"> private StrMatcher quoteMatcher = StrMatcher.noneMatcher();</span> - /** The ignored matcher */ -<span class="fc" id="L118"> private StrMatcher ignoredMatcher = StrMatcher.noneMatcher();</span> - /** The trimmer matcher */ -<span class="fc" id="L120"> private StrMatcher trimmerMatcher = StrMatcher.noneMatcher();</span> - - /** Whether to return empty tokens as null */ -<span class="fc" id="L123"> private boolean emptyAsNull = false;</span> - /** Whether to ignore empty tokens */ -<span class="fc" id="L125"> private boolean ignoreEmptyTokens = true;</span> + /** The delimiter matcher. */ +<span class="fc" id="L116"> private StrMatcher delimMatcher = StrMatcher.splitMatcher();</span> + /** The quote matcher. */ +<span class="fc" id="L118"> private StrMatcher quoteMatcher = StrMatcher.noneMatcher();</span> + /** The ignored matcher. */ +<span class="fc" id="L120"> private StrMatcher ignoredMatcher = StrMatcher.noneMatcher();</span> + /** The trimmer matcher. */ +<span class="fc" id="L122"> private StrMatcher trimmerMatcher = StrMatcher.noneMatcher();</span> + + /** Whether to return empty tokens as null. */ +<span class="fc" id="L125"> private boolean emptyAsNull = false;</span> + /** Whether to ignore empty tokens. */ +<span class="fc" id="L127"> private boolean ignoreEmptyTokens = true;</span> //----------------------------------------------------------------------- @@ -132,7 +134,7 @@ public class StrTokenizer implements Lis * @return a clone of <code>CSV_TOKENIZER_PROTOTYPE</code>. */ private static StrTokenizer getCSVClone() { -<span class="fc" id="L135"> return (StrTokenizer) CSV_TOKENIZER_PROTOTYPE.clone();</span> +<span class="fc" id="L137"> return (StrTokenizer) CSV_TOKENIZER_PROTOTYPE.clone();</span> } /** @@ -145,7 +147,7 @@ public class StrTokenizer implements Lis * @return a new tokenizer instance which parses Comma Separated Value strings */ public static StrTokenizer getCSVInstance() { -<span class="fc" id="L148"> return getCSVClone();</span> +<span class="fc" id="L150"> return getCSVClone();</span> } /** @@ -158,9 +160,9 @@ public class StrTokenizer implements Lis * @return a new tokenizer instance which parses Comma Separated Value strings */ public static StrTokenizer getCSVInstance(final String input) { -<span class="fc" id="L161"> final StrTokenizer tok = getCSVClone();</span> -<span class="fc" id="L162"> tok.reset(input);</span> -<span class="fc" id="L163"> return tok;</span> +<span class="fc" id="L163"> final StrTokenizer tok = getCSVClone();</span> +<span class="fc" id="L164"> tok.reset(input);</span> +<span class="fc" id="L165"> return tok;</span> } /** @@ -173,9 +175,9 @@ public class StrTokenizer implements Lis * @return a new tokenizer instance which parses Comma Separated Value strings */ public static StrTokenizer getCSVInstance(final char[] input) { -<span class="fc" id="L176"> final StrTokenizer tok = getCSVClone();</span> -<span class="fc" id="L177"> tok.reset(input);</span> -<span class="fc" id="L178"> return tok;</span> +<span class="fc" id="L178"> final StrTokenizer tok = getCSVClone();</span> +<span class="fc" id="L179"> tok.reset(input);</span> +<span class="fc" id="L180"> return tok;</span> } /** @@ -184,7 +186,7 @@ public class StrTokenizer implements Lis * @return a clone of <code>TSV_TOKENIZER_PROTOTYPE</code>. */ private static StrTokenizer getTSVClone() { -<span class="fc" id="L187"> return (StrTokenizer) TSV_TOKENIZER_PROTOTYPE.clone();</span> +<span class="fc" id="L189"> return (StrTokenizer) TSV_TOKENIZER_PROTOTYPE.clone();</span> } @@ -197,7 +199,7 @@ public class StrTokenizer implements Lis * @return a new tokenizer instance which parses Tab Separated Value strings. */ public static StrTokenizer getTSVInstance() { -<span class="fc" id="L200"> return getTSVClone();</span> +<span class="fc" id="L202"> return getTSVClone();</span> } /** @@ -208,9 +210,9 @@ public class StrTokenizer implements Lis * @return a new tokenizer instance which parses Tab Separated Value strings. */ public static StrTokenizer getTSVInstance(final String input) { -<span class="fc" id="L211"> final StrTokenizer tok = getTSVClone();</span> -<span class="fc" id="L212"> tok.reset(input);</span> -<span class="fc" id="L213"> return tok;</span> +<span class="fc" id="L213"> final StrTokenizer tok = getTSVClone();</span> +<span class="fc" id="L214"> tok.reset(input);</span> +<span class="fc" id="L215"> return tok;</span> } /** @@ -221,9 +223,9 @@ public class StrTokenizer implements Lis * @return a new tokenizer instance which parses Tab Separated Value strings. */ public static StrTokenizer getTSVInstance(final char[] input) { -<span class="fc" id="L224"> final StrTokenizer tok = getTSVClone();</span> -<span class="fc" id="L225"> tok.reset(input);</span> -<span class="fc" id="L226"> return tok;</span> +<span class="fc" id="L226"> final StrTokenizer tok = getTSVClone();</span> +<span class="fc" id="L227"> tok.reset(input);</span> +<span class="fc" id="L228"> return tok;</span> } //----------------------------------------------------------------------- @@ -234,9 +236,9 @@ public class StrTokenizer implements Lis * This constructor is normally used with {@link #reset(String)}. */ public StrTokenizer() { -<span class="fc" id="L237"> super();</span> -<span class="fc" id="L238"> this.chars = null;</span> -<span class="fc" id="L239"> }</span> +<span class="fc" id="L239"> super();</span> +<span class="fc" id="L240"> this.chars = null;</span> +<span class="fc" id="L241"> }</span> /** * Constructs a tokenizer splitting on space, tab, newline and formfeed @@ -245,13 +247,13 @@ public class StrTokenizer implements Lis * @param input the string which is to be parsed */ public StrTokenizer(final String input) { -<span class="fc" id="L248"> super();</span> -<span class="fc bfc" id="L249" title="All 2 branches covered."> if (input != null) {</span> -<span class="fc" id="L250"> chars = input.toCharArray();</span> +<span class="fc" id="L250"> super();</span> +<span class="fc bfc" id="L251" title="All 2 branches covered."> if (input != null) {</span> +<span class="fc" id="L252"> chars = input.toCharArray();</span> } else { -<span class="fc" id="L252"> chars = null;</span> +<span class="fc" id="L254"> chars = null;</span> } -<span class="fc" id="L254"> }</span> +<span class="fc" id="L256"> }</span> /** * Constructs a tokenizer splitting on the specified delimiter character. @@ -260,9 +262,9 @@ public class StrTokenizer implements Lis * @param delim the field delimiter character */ public StrTokenizer(final String input, final char delim) { -<span class="fc" id="L263"> this(input);</span> -<span class="fc" id="L264"> setDelimiterChar(delim);</span> -<span class="fc" id="L265"> }</span> +<span class="fc" id="L265"> this(input);</span> +<span class="fc" id="L266"> setDelimiterChar(delim);</span> +<span class="fc" id="L267"> }</span> /** * Constructs a tokenizer splitting on the specified delimiter string. @@ -271,9 +273,9 @@ public class StrTokenizer implements Lis * @param delim the field delimiter string */ public StrTokenizer(final String input, final String delim) { -<span class="fc" id="L274"> this(input);</span> -<span class="fc" id="L275"> setDelimiterString(delim);</span> -<span class="fc" id="L276"> }</span> +<span class="fc" id="L276"> this(input);</span> +<span class="fc" id="L277"> setDelimiterString(delim);</span> +<span class="fc" id="L278"> }</span> /** * Constructs a tokenizer splitting using the specified delimiter matcher. @@ -282,9 +284,9 @@ public class StrTokenizer implements Lis * @param delim the field delimiter matcher */ public StrTokenizer(final String input, final StrMatcher delim) { -<span class="fc" id="L285"> this(input);</span> -<span class="fc" id="L286"> setDelimiterMatcher(delim);</span> -<span class="fc" id="L287"> }</span> +<span class="fc" id="L287"> this(input);</span> +<span class="fc" id="L288"> setDelimiterMatcher(delim);</span> +<span class="fc" id="L289"> }</span> /** * Constructs a tokenizer splitting on the specified delimiter character @@ -295,9 +297,9 @@ public class StrTokenizer implements Lis * @param quote the field quoted string character */ public StrTokenizer(final String input, final char delim, final char quote) { -<span class="fc" id="L298"> this(input, delim);</span> -<span class="fc" id="L299"> setQuoteChar(quote);</span> -<span class="fc" id="L300"> }</span> +<span class="fc" id="L300"> this(input, delim);</span> +<span class="fc" id="L301"> setQuoteChar(quote);</span> +<span class="fc" id="L302"> }</span> /** * Constructs a tokenizer splitting using the specified delimiter matcher @@ -308,9 +310,9 @@ public class StrTokenizer implements Lis * @param quote the field quoted string matcher */ public StrTokenizer(final String input, final StrMatcher delim, final StrMatcher quote) { -<span class="fc" id="L311"> this(input, delim);</span> -<span class="fc" id="L312"> setQuoteMatcher(quote);</span> -<span class="fc" id="L313"> }</span> +<span class="fc" id="L313"> this(input, delim);</span> +<span class="fc" id="L314"> setQuoteMatcher(quote);</span> +<span class="fc" id="L315"> }</span> /** * Constructs a tokenizer splitting on space, tab, newline and formfeed @@ -319,13 +321,13 @@ public class StrTokenizer implements Lis * @param input the string which is to be parsed, not cloned */ public StrTokenizer(final char[] input) { -<span class="fc" id="L322"> super();</span> -<span class="fc bfc" id="L323" title="All 2 branches covered."> if (input == null) {</span> -<span class="fc" id="L324"> this.chars = null;</span> +<span class="fc" id="L324"> super();</span> +<span class="fc bfc" id="L325" title="All 2 branches covered."> if (input == null) {</span> +<span class="fc" id="L326"> this.chars = null;</span> } else { -<span class="fc" id="L326"> this.chars = input.clone();</span> +<span class="fc" id="L328"> this.chars = input.clone();</span> } -<span class="fc" id="L328"> }</span> +<span class="fc" id="L330"> }</span> /** * Constructs a tokenizer splitting on the specified character. @@ -334,9 +336,9 @@ public class StrTokenizer implements Lis * @param delim the field delimiter character */ public StrTokenizer(final char[] input, final char delim) { -<span class="fc" id="L337"> this(input);</span> -<span class="fc" id="L338"> setDelimiterChar(delim);</span> -<span class="fc" id="L339"> }</span> +<span class="fc" id="L339"> this(input);</span> +<span class="fc" id="L340"> setDelimiterChar(delim);</span> +<span class="fc" id="L341"> }</span> /** * Constructs a tokenizer splitting on the specified string. @@ -345,9 +347,9 @@ public class StrTokenizer implements Lis * @param delim the field delimiter string */ public StrTokenizer(final char[] input, final String delim) { -<span class="nc" id="L348"> this(input);</span> -<span class="nc" id="L349"> setDelimiterString(delim);</span> -<span class="nc" id="L350"> }</span> +<span class="nc" id="L350"> this(input);</span> +<span class="nc" id="L351"> setDelimiterString(delim);</span> +<span class="nc" id="L352"> }</span> /** * Constructs a tokenizer splitting using the specified delimiter matcher. @@ -356,9 +358,9 @@ public class StrTokenizer implements Lis * @param delim the field delimiter matcher */ public StrTokenizer(final char[] input, final StrMatcher delim) { -<span class="nc" id="L359"> this(input);</span> -<span class="nc" id="L360"> setDelimiterMatcher(delim);</span> -<span class="nc" id="L361"> }</span> +<span class="nc" id="L361"> this(input);</span> +<span class="nc" id="L362"> setDelimiterMatcher(delim);</span> +<span class="nc" id="L363"> }</span> /** * Constructs a tokenizer splitting on the specified delimiter character @@ -369,9 +371,9 @@ public class StrTokenizer implements Lis * @param quote the field quoted string character */ public StrTokenizer(final char[] input, final char delim, final char quote) { -<span class="fc" id="L372"> this(input, delim);</span> -<span class="fc" id="L373"> setQuoteChar(quote);</span> -<span class="fc" id="L374"> }</span> +<span class="fc" id="L374"> this(input, delim);</span> +<span class="fc" id="L375"> setQuoteChar(quote);</span> +<span class="fc" id="L376"> }</span> /** * Constructs a tokenizer splitting using the specified delimiter matcher @@ -382,9 +384,9 @@ public class StrTokenizer implements Lis * @param quote the field quoted string character */ public StrTokenizer(final char[] input, final StrMatcher delim, final StrMatcher quote) { -<span class="nc" id="L385"> this(input, delim);</span> -<span class="nc" id="L386"> setQuoteMatcher(quote);</span> -<span class="nc" id="L387"> }</span> +<span class="nc" id="L387"> this(input, delim);</span> +<span class="nc" id="L388"> setQuoteMatcher(quote);</span> +<span class="nc" id="L389"> }</span> // API //----------------------------------------------------------------------- @@ -394,8 +396,8 @@ public class StrTokenizer implements Lis * @return the number of matched tokens */ public int size() { -<span class="fc" id="L397"> checkTokenized();</span> -<span class="fc" id="L398"> return tokens.length;</span> +<span class="fc" id="L399"> checkTokenized();</span> +<span class="fc" id="L400"> return tokens.length;</span> } /** @@ -406,10 +408,10 @@ public class StrTokenizer implements Lis * @return the next sequential token, or null when no more tokens are found */ public String nextToken() { -<span class="fc bfc" id="L409" title="All 2 branches covered."> if (hasNext()) {</span> -<span class="fc" id="L410"> return tokens[tokenPos++];</span> +<span class="fc bfc" id="L411" title="All 2 branches covered."> if (hasNext()) {</span> +<span class="fc" id="L412"> return tokens[tokenPos++];</span> } -<span class="fc" id="L412"> return null;</span> +<span class="fc" id="L414"> return null;</span> } /** @@ -418,10 +420,10 @@ public class StrTokenizer implements Lis * @return the previous sequential token, or null when no more tokens are found */ public String previousToken() { -<span class="fc bfc" id="L421" title="All 2 branches covered."> if (hasPrevious()) {</span> -<span class="fc" id="L422"> return tokens[--tokenPos];</span> +<span class="fc bfc" id="L423" title="All 2 branches covered."> if (hasPrevious()) {</span> +<span class="fc" id="L424"> return tokens[--tokenPos];</span> } -<span class="fc" id="L424"> return null;</span> +<span class="fc" id="L426"> return null;</span> } /** @@ -430,8 +432,8 @@ public class StrTokenizer implements Lis * @return the tokens as a String array */ public String[] getTokenArray() { -<span class="fc" id="L433"> checkTokenized();</span> -<span class="fc" id="L434"> return tokens.clone();</span> +<span class="fc" id="L435"> checkTokenized();</span> +<span class="fc" id="L436"> return tokens.clone();</span> } /** @@ -440,12 +442,12 @@ public class StrTokenizer implements Lis * @return the tokens as a String array */ public List<String> getTokenList() { -<span class="fc" id="L443"> checkTokenized();</span> -<span class="fc" id="L444"> final List<String> list = new ArrayList<>(tokens.length);</span> -<span class="fc bfc" id="L445" title="All 2 branches covered."> for (final String element : tokens) {</span> -<span class="fc" id="L446"> list.add(element);</span> +<span class="fc" id="L445"> checkTokenized();</span> +<span class="fc" id="L446"> final List<String> list = new ArrayList<>(tokens.length);</span> +<span class="fc bfc" id="L447" title="All 2 branches covered."> for (final String element : tokens) {</span> +<span class="fc" id="L448"> list.add(element);</span> } -<span class="fc" id="L448"> return list;</span> +<span class="fc" id="L450"> return list;</span> } /** @@ -456,9 +458,9 @@ public class StrTokenizer implements Lis * @return this, to enable chaining */ public StrTokenizer reset() { -<span class="fc" id="L459"> tokenPos = 0;</span> -<span class="fc" id="L460"> tokens = null;</span> -<span class="fc" id="L461"> return this;</span> +<span class="fc" id="L461"> tokenPos = 0;</span> +<span class="fc" id="L462"> tokens = null;</span> +<span class="fc" id="L463"> return this;</span> } /** @@ -470,13 +472,13 @@ public class StrTokenizer implements Lis * @return this, to enable chaining */ public StrTokenizer reset(final String input) { -<span class="fc" id="L473"> reset();</span> -<span class="fc bfc" id="L474" title="All 2 branches covered."> if (input != null) {</span> -<span class="fc" id="L475"> this.chars = input.toCharArray();</span> +<span class="fc" id="L475"> reset();</span> +<span class="fc bfc" id="L476" title="All 2 branches covered."> if (input != null) {</span> +<span class="fc" id="L477"> this.chars = input.toCharArray();</span> } else { -<span class="fc" id="L477"> this.chars = null;</span> +<span class="fc" id="L479"> this.chars = null;</span> } -<span class="fc" id="L479"> return this;</span> +<span class="fc" id="L481"> return this;</span> } /** @@ -488,13 +490,13 @@ public class StrTokenizer implements Lis * @return this, to enable chaining */ public StrTokenizer reset(final char[] input) { -<span class="fc" id="L491"> reset();</span> -<span class="fc bfc" id="L492" title="All 2 branches covered."> if (input != null) {</span> -<span class="fc" id="L493"> this.chars = input.clone();</span> +<span class="fc" id="L493"> reset();</span> +<span class="fc bfc" id="L494" title="All 2 branches covered."> if (input != null) {</span> +<span class="fc" id="L495"> this.chars = input.clone();</span> } else { -<span class="fc" id="L495"> this.chars = null;</span> +<span class="fc" id="L497"> this.chars = null;</span> } -<span class="fc" id="L497"> return this;</span> +<span class="fc" id="L499"> return this;</span> } // ListIterator @@ -506,8 +508,8 @@ public class StrTokenizer implements Lis */ @Override public boolean hasNext() { -<span class="fc" id="L509"> checkTokenized();</span> -<span class="fc bfc" id="L510" title="All 2 branches covered."> return tokenPos < tokens.length;</span> +<span class="fc" id="L511"> checkTokenized();</span> +<span class="fc bfc" id="L512" title="All 2 branches covered."> return tokenPos < tokens.length;</span> } /** @@ -518,10 +520,10 @@ public class StrTokenizer implements Lis */ @Override public String next() { -<span class="fc bfc" id="L521" title="All 2 branches covered."> if (hasNext()) {</span> -<span class="fc" id="L522"> return tokens[tokenPos++];</span> +<span class="fc bfc" id="L523" title="All 2 branches covered."> if (hasNext()) {</span> +<span class="fc" id="L524"> return tokens[tokenPos++];</span> } -<span class="fc" id="L524"> throw new NoSuchElementException();</span> +<span class="fc" id="L526"> throw new NoSuchElementException();</span> } /** @@ -531,7 +533,7 @@ public class StrTokenizer implements Lis */ @Override public int nextIndex() { -<span class="fc" id="L534"> return tokenPos;</span> +<span class="fc" id="L536"> return tokenPos;</span> } /** @@ -541,8 +543,8 @@ public class StrTokenizer implements Lis */ @Override public boolean hasPrevious() { -<span class="fc" id="L544"> checkTokenized();</span> -<span class="fc bfc" id="L545" title="All 2 branches covered."> return tokenPos > 0;</span> +<span class="fc" id="L546"> checkTokenized();</span> +<span class="fc bfc" id="L547" title="All 2 branches covered."> return tokenPos > 0;</span> } /** @@ -552,10 +554,10 @@ public class StrTokenizer implements Lis */ @Override public String previous() { -<span class="fc bfc" id="L555" title="All 2 branches covered."> if (hasPrevious()) {</span> -<span class="fc" id="L556"> return tokens[--tokenPos];</span> +<span class="fc bfc" id="L557" title="All 2 branches covered."> if (hasPrevious()) {</span> +<span class="fc" id="L558"> return tokens[--tokenPos];</span> } -<span class="fc" id="L558"> throw new NoSuchElementException();</span> +<span class="fc" id="L560"> throw new NoSuchElementException();</span> } /** @@ -565,7 +567,7 @@ public class StrTokenizer implements Lis */ @Override public int previousIndex() { -<span class="fc" id="L568"> return tokenPos - 1;</span> +<span class="fc" id="L570"> return tokenPos - 1;</span> } /** @@ -575,7 +577,7 @@ public class StrTokenizer implements Lis */ @Override public void remove() { -<span class="fc" id="L578"> throw new UnsupportedOperationException("remove() is unsupported");</span> +<span class="fc" id="L580"> throw new UnsupportedOperationException("remove() is unsupported");</span> } /** @@ -585,7 +587,7 @@ public class StrTokenizer implements Lis */ @Override public void set(final String obj) { -<span class="fc" id="L588"> throw new UnsupportedOperationException("set() is unsupported");</span> +<span class="fc" id="L590"> throw new UnsupportedOperationException("set() is unsupported");</span> } /** @@ -595,7 +597,7 @@ public class StrTokenizer implements Lis */ @Override public void add(final String obj) { -<span class="fc" id="L598"> throw new UnsupportedOperationException("add() is unsupported");</span> +<span class="fc" id="L600"> throw new UnsupportedOperationException("add() is unsupported");</span> } // Implementation @@ -604,17 +606,17 @@ public class StrTokenizer implements Lis * Checks if tokenization has been done, and if not then do it. */ private void checkTokenized() { -<span class="fc bfc" id="L607" title="All 2 branches covered."> if (tokens == null) {</span> -<span class="fc bfc" id="L608" title="All 2 branches covered."> if (chars == null) {</span> +<span class="fc bfc" id="L609" title="All 2 branches covered."> if (tokens == null) {</span> +<span class="fc bfc" id="L610" title="All 2 branches covered."> if (chars == null) {</span> // still call tokenize as subclass may do some work -<span class="fc" id="L610"> final List<String> split = tokenize(null, 0, 0);</span> -<span class="fc" id="L611"> tokens = split.toArray(new String[split.size()]);</span> -<span class="fc" id="L612"> } else {</span> -<span class="fc" id="L613"> final List<String> split = tokenize(chars, 0, chars.length);</span> -<span class="fc" id="L614"> tokens = split.toArray(new String[split.size()]);</span> +<span class="fc" id="L612"> final List<String> split = tokenize(null, 0, 0);</span> +<span class="fc" id="L613"> tokens = split.toArray(new String[split.size()]);</span> +<span class="fc" id="L614"> } else {</span> +<span class="fc" id="L615"> final List<String> split = tokenize(chars, 0, chars.length);</span> +<span class="fc" id="L616"> tokens = split.toArray(new String[split.size()]);</span> } } -<span class="fc" id="L617"> }</span> +<span class="fc" id="L619"> }</span> /** * Internal method to performs the tokenization. @@ -637,24 +639,24 @@ public class StrTokenizer implements Lis * @return the modifiable list of String tokens, unmodifiable if null array or zero count */ protected List<String> tokenize(final char[] srcChars, final int offset, final int count) { -<span class="fc bfc" id="L640" title="All 4 branches covered."> if (srcChars == null || count == 0) {</span> -<span class="fc" id="L641"> return Collections.emptyList();</span> +<span class="fc bfc" id="L642" title="All 4 branches covered."> if (srcChars == null || count == 0) {</span> +<span class="fc" id="L643"> return Collections.emptyList();</span> } -<span class="fc" id="L643"> final StrBuilder buf = new StrBuilder();</span> -<span class="fc" id="L644"> final List<String> tokenList = new ArrayList<>();</span> -<span class="fc" id="L645"> int pos = offset;</span> +<span class="fc" id="L645"> final StrBuilder buf = new StrBuilder();</span> +<span class="fc" id="L646"> final List<String> tokenList = new ArrayList<>();</span> +<span class="fc" id="L647"> int pos = offset;</span> // loop around the entire buffer -<span class="fc bfc" id="L648" title="All 4 branches covered."> while (pos >= 0 && pos < count) {</span> +<span class="fc bfc" id="L650" title="All 4 branches covered."> while (pos >= 0 && pos < count) {</span> // find next token -<span class="fc" id="L650"> pos = readNextToken(srcChars, pos, count, buf, tokenList);</span> +<span class="fc" id="L652"> pos = readNextToken(srcChars, pos, count, buf, tokenList);</span> // handle case where end of string is a delimiter -<span class="fc bfc" id="L653" title="All 2 branches covered."> if (pos >= count) {</span> -<span class="fc" id="L654"> addToken(tokenList, "");</span> +<span class="fc bfc" id="L655" title="All 2 branches covered."> if (pos >= count) {</span> +<span class="fc" id="L656"> addToken(tokenList, "");</span> } } -<span class="fc" id="L657"> return tokenList;</span> +<span class="fc" id="L659"> return tokenList;</span> } /** @@ -664,16 +666,16 @@ public class StrTokenizer implements Lis * @param tok the token to add */ private void addToken(final List<String> list, String tok) { -<span class="pc bpc" id="L667" title="1 of 4 branches missed."> if (tok == null || tok.length() == 0) {</span> -<span class="fc bfc" id="L668" title="All 2 branches covered."> if (isIgnoreEmptyTokens()) {</span> -<span class="fc" id="L669"> return;</span> +<span class="pc bpc" id="L669" title="1 of 4 branches missed."> if (tok == null || tok.length() == 0) {</span> +<span class="fc bfc" id="L670" title="All 2 branches covered."> if (isIgnoreEmptyTokens()) {</span> +<span class="fc" id="L671"> return;</span> } -<span class="fc bfc" id="L671" title="All 2 branches covered."> if (isEmptyTokenAsNull()) {</span> -<span class="fc" id="L672"> tok = null;</span> +<span class="fc bfc" id="L673" title="All 2 branches covered."> if (isEmptyTokenAsNull()) {</span> +<span class="fc" id="L674"> tok = null;</span> } } -<span class="fc" id="L675"> list.add(tok);</span> -<span class="fc" id="L676"> }</span> +<span class="fc" id="L677"> list.add(tok);</span> +<span class="fc" id="L678"> }</span> /** * Reads character by character through the String to get the next token. @@ -686,40 +688,44 @@ public class StrTokenizer implements Lis * @return the starting position of the next field (the character * immediately after the delimiter), or -1 if end of string found */ - private int readNextToken(final char[] srcChars, int start, final int len, final StrBuilder workArea, final List<String> tokenList) { + private int readNextToken(final char[] srcChars, + int start, + final int len, + final StrBuilder workArea, + final List<String> tokenList) { // skip all leading whitespace, unless it is the // field delimiter or the quote character -<span class="fc bfc" id="L692" title="All 2 branches covered."> while (start < len) {</span> -<span class="fc" id="L693"> final int removeLen = Math.max(</span> -<span class="fc" id="L694"> getIgnoredMatcher().isMatch(srcChars, start, start, len),</span> -<span class="fc" id="L695"> getTrimmerMatcher().isMatch(srcChars, start, start, len));</span> -<span class="fc bfc" id="L696" title="All 2 branches covered."> if (removeLen == 0 ||</span> -<span class="pc bpc" id="L697" title="1 of 2 branches missed."> getDelimiterMatcher().isMatch(srcChars, start, start, len) > 0 ||</span> -<span class="pc bpc" id="L698" title="1 of 2 branches missed."> getQuoteMatcher().isMatch(srcChars, start, start, len) > 0) {</span> -<span class="nc" id="L699"> break;</span> +<span class="fc bfc" id="L698" title="All 2 branches covered."> while (start < len) {</span> +<span class="fc" id="L699"> final int removeLen = Math.max(</span> +<span class="fc" id="L700"> getIgnoredMatcher().isMatch(srcChars, start, start, len),</span> +<span class="fc" id="L701"> getTrimmerMatcher().isMatch(srcChars, start, start, len));</span> +<span class="fc bfc" id="L702" title="All 2 branches covered."> if (removeLen == 0</span> +<span class="pc bpc" id="L703" title="1 of 2 branches missed."> || getDelimiterMatcher().isMatch(srcChars, start, start, len) > 0</span> +<span class="pc bpc" id="L704" title="1 of 2 branches missed."> || getQuoteMatcher().isMatch(srcChars, start, start, len) > 0) {</span> +<span class="nc" id="L705"> break;</span> } -<span class="fc" id="L701"> start += removeLen;</span> -<span class="fc" id="L702"> }</span> +<span class="fc" id="L707"> start += removeLen;</span> +<span class="fc" id="L708"> }</span> // handle reaching end -<span class="fc bfc" id="L705" title="All 2 branches covered."> if (start >= len) {</span> -<span class="fc" id="L706"> addToken(tokenList, "");</span> -<span class="fc" id="L707"> return -1;</span> +<span class="fc bfc" id="L711" title="All 2 branches covered."> if (start >= len) {</span> +<span class="fc" id="L712"> addToken(tokenList, "");</span> +<span class="fc" id="L713"> return -1;</span> } // handle empty token -<span class="fc" id="L711"> final int delimLen = getDelimiterMatcher().isMatch(srcChars, start, start, len);</span> -<span class="fc bfc" id="L712" title="All 2 branches covered."> if (delimLen > 0) {</span> -<span class="fc" id="L713"> addToken(tokenList, "");</span> -<span class="fc" id="L714"> return start + delimLen;</span> +<span class="fc" id="L717"> final int delimLen = getDelimiterMatcher().isMatch(srcChars, start, start, len);</span> +<span class="fc bfc" id="L718" title="All 2 branches covered."> if (delimLen > 0) {</span> +<span class="fc" id="L719"> addToken(tokenList, "");</span> +<span class="fc" id="L720"> return start + delimLen;</span> } // handle found token -<span class="fc" id="L718"> final int quoteLen = getQuoteMatcher().isMatch(srcChars, start, start, len);</span> -<span class="fc bfc" id="L719" title="All 2 branches covered."> if (quoteLen > 0) {</span> -<span class="fc" id="L720"> return readWithQuotes(srcChars, start + quoteLen, len, workArea, tokenList, start, quoteLen);</span> +<span class="fc" id="L724"> final int quoteLen = getQuoteMatcher().isMatch(srcChars, start, start, len);</span> +<span class="fc bfc" id="L725" title="All 2 branches covered."> if (quoteLen > 0) {</span> +<span class="fc" id="L726"> return readWithQuotes(srcChars, start + quoteLen, len, workArea, tokenList, start, quoteLen);</span> } -<span class="fc" id="L722"> return readWithQuotes(srcChars, start, len, workArea, tokenList, 0, 0);</span> +<span class="fc" id="L728"> return readWithQuotes(srcChars, start, len, workArea, tokenList, 0, 0);</span> } /** @@ -740,85 +746,85 @@ public class StrTokenizer implements Lis final List<String> tokenList, final int quoteStart, final int quoteLen) { // Loop until we've found the end of the quoted // string or the end of the input -<span class="fc" id="L743"> workArea.clear();</span> -<span class="fc" id="L744"> int pos = start;</span> -<span class="fc bfc" id="L745" title="All 2 branches covered."> boolean quoting = quoteLen > 0;</span> -<span class="fc" id="L746"> int trimStart = 0;</span> +<span class="fc" id="L749"> workArea.clear();</span> +<span class="fc" id="L750"> int pos = start;</span> +<span class="fc bfc" id="L751" title="All 2 branches covered."> boolean quoting = quoteLen > 0;</span> +<span class="fc" id="L752"> int trimStart = 0;</span> -<span class="fc bfc" id="L748" title="All 2 branches covered."> while (pos < len) {</span> +<span class="fc bfc" id="L754" title="All 2 branches covered."> while (pos < len) {</span> // quoting mode can occur several times throughout a string // we must switch between quoting and non-quoting until we // encounter a non-quoted delimiter, or end of string -<span class="fc bfc" id="L752" title="All 2 branches covered."> if (quoting) {</span> +<span class="fc bfc" id="L758" title="All 2 branches covered."> if (quoting) {</span> // In quoting mode // If we've found a quote character, see if it's // followed by a second quote. If so, then we need // to actually put the quote character into the token // rather than end the token. -<span class="fc bfc" id="L759" title="All 2 branches covered."> if (isQuote(srcChars, pos, len, quoteStart, quoteLen)) {</span> -<span class="fc bfc" id="L760" title="All 2 branches covered."> if (isQuote(srcChars, pos + quoteLen, len, quoteStart, quoteLen)) {</span> +<span class="fc bfc" id="L765" title="All 2 branches covered."> if (isQuote(srcChars, pos, len, quoteStart, quoteLen)) {</span> +<span class="fc bfc" id="L766" title="All 2 branches covered."> if (isQuote(srcChars, pos + quoteLen, len, quoteStart, quoteLen)) {</span> // matched pair of quotes, thus an escaped quote -<span class="fc" id="L762"> workArea.append(srcChars, pos, quoteLen);</span> -<span class="fc" id="L763"> pos += quoteLen * 2;</span> -<span class="fc" id="L764"> trimStart = workArea.size();</span> -<span class="fc" id="L765"> continue;</span> +<span class="fc" id="L768"> workArea.append(srcChars, pos, quoteLen);</span> +<span class="fc" id="L769"> pos += quoteLen * 2;</span> +<span class="fc" id="L770"> trimStart = workArea.size();</span> +<span class="fc" id="L771"> continue;</span> } // end of quoting -<span class="fc" id="L769"> quoting = false;</span> -<span class="fc" id="L770"> pos += quoteLen;</span> -<span class="fc" id="L771"> continue;</span> +<span class="fc" id="L775"> quoting = false;</span> +<span class="fc" id="L776"> pos += quoteLen;</span> +<span class="fc" id="L777"> continue;</span> } // copy regular character from inside quotes -<span class="fc" id="L775"> workArea.append(srcChars[pos++]);</span> -<span class="fc" id="L776"> trimStart = workArea.size();</span> +<span class="fc" id="L781"> workArea.append(srcChars[pos++]);</span> +<span class="fc" id="L782"> trimStart = workArea.size();</span> } else { // Not in quoting mode // check for delimiter, and thus end of token -<span class="fc" id="L782"> final int delimLen = getDelimiterMatcher().isMatch(srcChars, pos, start, len);</span> -<span class="fc bfc" id="L783" title="All 2 branches covered."> if (delimLen > 0) {</span> +<span class="fc" id="L788"> final int delimLen = getDelimiterMatcher().isMatch(srcChars, pos, start, len);</span> +<span class="fc bfc" id="L789" title="All 2 branches covered."> if (delimLen > 0) {</span> // return condition when end of token found -<span class="fc" id="L785"> addToken(tokenList, workArea.substring(0, trimStart));</span> -<span class="fc" id="L786"> return pos + delimLen;</span> +<span class="fc" id="L791"> addToken(tokenList, workArea.substring(0, trimStart));</span> +<span class="fc" id="L792"> return pos + delimLen;</span> } // check for quote, and thus back into quoting mode -<span class="fc bfc" id="L790" title="All 4 branches covered."> if (quoteLen > 0 && isQuote(srcChars, pos, len, quoteStart, quoteLen)) {</span> -<span class="fc" id="L791"> quoting = true;</span> -<span class="fc" id="L792"> pos += quoteLen;</span> -<span class="fc" id="L793"> continue;</span> +<span class="fc bfc" id="L796" title="All 4 branches covered."> if (quoteLen > 0 && isQuote(srcChars, pos, len, quoteStart, quoteLen)) {</span> +<span class="fc" id="L797"> quoting = true;</span> +<span class="fc" id="L798"> pos += quoteLen;</span> +<span class="fc" id="L799"> continue;</span> } // check for ignored (outside quotes), and ignore -<span class="fc" id="L797"> final int ignoredLen = getIgnoredMatcher().isMatch(srcChars, pos, start, len);</span> -<span class="fc bfc" id="L798" title="All 2 branches covered."> if (ignoredLen > 0) {</span> -<span class="fc" id="L799"> pos += ignoredLen;</span> -<span class="fc" id="L800"> continue;</span> +<span class="fc" id="L803"> final int ignoredLen = getIgnoredMatcher().isMatch(srcChars, pos, start, len);</span> +<span class="fc bfc" id="L804" title="All 2 branches covered."> if (ignoredLen > 0) {</span> +<span class="fc" id="L805"> pos += ignoredLen;</span> +<span class="fc" id="L806"> continue;</span> } // check for trimmed character // don't yet know if its at the end, so copy to workArea // use trimStart to keep track of trim at the end -<span class="fc" id="L806"> final int trimmedLen = getTrimmerMatcher().isMatch(srcChars, pos, start, len);</span> -<span class="fc bfc" id="L807" title="All 2 branches covered."> if (trimmedLen > 0) {</span> -<span class="fc" id="L808"> workArea.append(srcChars, pos, trimmedLen);</span> -<span class="fc" id="L809"> pos += trimmedLen;</span> -<span class="fc" id="L810"> continue;</span> +<span class="fc" id="L812"> final int trimmedLen = getTrimmerMatcher().isMatch(srcChars, pos, start, len);</span> +<span class="fc bfc" id="L813" title="All 2 branches covered."> if (trimmedLen > 0) {</span> +<span class="fc" id="L814"> workArea.append(srcChars, pos, trimmedLen);</span> +<span class="fc" id="L815"> pos += trimmedLen;</span> +<span class="fc" id="L816"> continue;</span> } // copy regular character from outside quotes -<span class="fc" id="L814"> workArea.append(srcChars[pos++]);</span> -<span class="fc" id="L815"> trimStart = workArea.size();</span> -<span class="fc" id="L816"> }</span> +<span class="fc" id="L820"> workArea.append(srcChars[pos++]);</span> +<span class="fc" id="L821"> trimStart = workArea.size();</span> +<span class="fc" id="L822"> }</span> } // return condition when end of string found -<span class="fc" id="L820"> addToken(tokenList, workArea.substring(0, trimStart));</span> -<span class="fc" id="L821"> return -1;</span> +<span class="fc" id="L826"> addToken(tokenList, workArea.substring(0, trimStart));</span> +<span class="fc" id="L827"> return -1;</span> } /** @@ -832,13 +838,17 @@ public class StrTokenizer implements Lis * @param quoteLen the length of the matched quote, 0 if no quoting * @return true if a quote is matched */ - private boolean isQuote(final char[] srcChars, final int pos, final int len, final int quoteStart, final int quoteLen) { -<span class="fc bfc" id="L836" title="All 2 branches covered."> for (int i = 0; i < quoteLen; i++) {</span> -<span class="fc bfc" id="L837" title="All 4 branches covered."> if (pos + i >= len || srcChars[pos + i] != srcChars[quoteStart + i]) {</span> -<span class="fc" id="L838"> return false;</span> + private boolean isQuote(final char[] srcChars, + final int pos, + final int len, + final int quoteStart, + final int quoteLen) { +<span class="fc bfc" id="L846" title="All 2 branches covered."> for (int i = 0; i < quoteLen; i++) {</span> +<span class="fc bfc" id="L847" title="All 4 branches covered."> if (pos + i >= len || srcChars[pos + i] != srcChars[quoteStart + i]) {</span> +<span class="fc" id="L848"> return false;</span> } } -<span class="fc" id="L841"> return true;</span> +<span class="fc" id="L851"> return true;</span> } // Delimiter @@ -849,7 +859,7 @@ public class StrTokenizer implements Lis * @return the delimiter matcher in use */ public StrMatcher getDelimiterMatcher() { -<span class="fc" id="L852"> return this.delimMatcher;</span> +<span class="fc" id="L862"> return this.delimMatcher;</span> } /** @@ -861,12 +871,12 @@ public class StrTokenizer implements Lis * @return this, to enable chaining */ public StrTokenizer setDelimiterMatcher(final StrMatcher delim) { -<span class="fc bfc" id="L864" title="All 2 branches covered."> if (delim == null) {</span> -<span class="fc" id="L865"> this.delimMatcher = StrMatcher.noneMatcher();</span> +<span class="fc bfc" id="L874" title="All 2 branches covered."> if (delim == null) {</span> +<span class="fc" id="L875"> this.delimMatcher = StrMatcher.noneMatcher();</span> } else { -<span class="fc" id="L867"> this.delimMatcher = delim;</span> +<span class="fc" id="L877"> this.delimMatcher = delim;</span> } -<span class="fc" id="L869"> return this;</span> +<span class="fc" id="L879"> return this;</span> } /** @@ -876,7 +886,7 @@ public class StrTokenizer implements Lis * @return this, to enable chaining */ public StrTokenizer setDelimiterChar(final char delim) { -<span class="fc" id="L879"> return setDelimiterMatcher(StrMatcher.charMatcher(delim));</span> +<span class="fc" id="L889"> return setDelimiterMatcher(StrMatcher.charMatcher(delim));</span> } /** @@ -886,7 +896,7 @@ public class StrTokenizer implements Lis * @return this, to enable chaining */ public StrTokenizer setDelimiterString(final String delim) { -<span class="fc" id="L889"> return setDelimiterMatcher(StrMatcher.stringMatcher(delim));</span> +<span class="fc" id="L899"> return setDelimiterMatcher(StrMatcher.stringMatcher(delim));</span> } // Quote @@ -901,7 +911,7 @@ public class StrTokenizer implements Lis * @return the quote matcher in use */ public StrMatcher getQuoteMatcher() { -<span class="fc" id="L904"> return quoteMatcher;</span> +<span class="fc" id="L914"> return quoteMatcher;</span> } /** @@ -914,10 +924,10 @@ public class StrTokenizer implements Lis * @return this, to enable chaining */ public StrTokenizer setQuoteMatcher(final StrMatcher quote) { -<span class="fc bfc" id="L917" title="All 2 branches covered."> if (quote != null) {</span> -<span class="fc" id="L918"> this.quoteMatcher = quote;</span> +<span class="fc bfc" id="L927" title="All 2 branches covered."> if (quote != null) {</span> +<span class="fc" id="L928"> this.quoteMatcher = quote;</span> } -<span class="fc" id="L920"> return this;</span> +<span class="fc" id="L930"> return this;</span> } /** @@ -930,7 +940,7 @@ public class StrTokenizer implements Lis * @return this, to enable chaining */ public StrTokenizer setQuoteChar(final char quote) { -<span class="fc" id="L933"> return setQuoteMatcher(StrMatcher.charMatcher(quote));</span> +<span class="fc" id="L943"> return setQuoteMatcher(StrMatcher.charMatcher(quote));</span> } // Ignored @@ -945,7 +955,7 @@ public class StrTokenizer implements Lis * @return the ignored matcher in use */ public StrMatcher getIgnoredMatcher() { -<span class="fc" id="L948"> return ignoredMatcher;</span> +<span class="fc" id="L958"> return ignoredMatcher;</span> } /** @@ -958,10 +968,10 @@ public class StrTokenizer implements Lis * @return this, to enable chaining */ public StrTokenizer setIgnoredMatcher(final StrMatcher ignored) { -<span class="fc bfc" id="L961" title="All 2 branches covered."> if (ignored != null) {</span> -<span class="fc" id="L962"> this.ignoredMatcher = ignored;</span> +<span class="fc bfc" id="L971" title="All 2 branches covered."> if (ignored != null) {</span> +<span class="fc" id="L972"> this.ignoredMatcher = ignored;</span> } -<span class="fc" id="L964"> return this;</span> +<span class="fc" id="L974"> return this;</span> } /** @@ -974,7 +984,7 @@ public class StrTokenizer implements Lis * @return this, to enable chaining */ public StrTokenizer setIgnoredChar(final char ignored) { -<span class="fc" id="L977"> return setIgnoredMatcher(StrMatcher.charMatcher(ignored));</span> +<span class="fc" id="L987"> return setIgnoredMatcher(StrMatcher.charMatcher(ignored));</span> } // Trimmer @@ -989,7 +999,7 @@ public class StrTokenizer implements Lis * @return the trimmer matcher in use */ public StrMatcher getTrimmerMatcher() { -<span class="fc" id="L992"> return trimmerMatcher;</span> +<span class="fc" id="L1002"> return trimmerMatcher;</span> } /** @@ -1002,10 +1012,10 @@ public class StrTokenizer implements Lis * @return this, to enable chaining */ public StrTokenizer setTrimmerMatcher(final StrMatcher trimmer) { -<span class="fc bfc" id="L1005" title="All 2 branches covered."> if (trimmer != null) {</span> -<span class="fc" id="L1006"> this.trimmerMatcher = trimmer;</span> +<span class="fc bfc" id="L1015" title="All 2 branches covered."> if (trimmer != null) {</span> +<span class="fc" id="L1016"> this.trimmerMatcher = trimmer;</span> } -<span class="fc" id="L1008"> return this;</span> +<span class="fc" id="L1018"> return this;</span> } //----------------------------------------------------------------------- @@ -1016,7 +1026,7 @@ public class StrTokenizer implements Lis * @return true if empty tokens are returned as null */ public boolean isEmptyTokenAsNull() { -<span class="fc" id="L1019"> return this.emptyAsNull;</span> +<span class="fc" id="L1029"> return this.emptyAsNull;</span> } /** @@ -1027,8 +1037,8 @@ public class StrTokenizer implements Lis * @return this, to enable chaining */ public StrTokenizer setEmptyTokenAsNull(final boolean emptyAsNull) { -<span class="fc" id="L1030"> this.emptyAsNull = emptyAsNull;</span> -<span class="fc" id="L1031"> return this;</span> +<span class="fc" id="L1040"> this.emptyAsNull = emptyAsNull;</span> +<span class="fc" id="L1041"> return this;</span> } //----------------------------------------------------------------------- @@ -1039,7 +1049,7 @@ public class StrTokenizer implements Lis * @return true if empty tokens are not returned */ public boolean isIgnoreEmptyTokens() { -<span class="fc" id="L1042"> return ignoreEmptyTokens;</span> +<span class="fc" id="L1052"> return ignoreEmptyTokens;</span> } /** @@ -1050,8 +1060,8 @@ public class StrTokenizer implements Lis * @return this, to enable chaining */ public StrTokenizer setIgnoreEmptyTokens(final boolean ignoreEmptyTokens) { -<span class="fc" id="L1053"> this.ignoreEmptyTokens = ignoreEmptyTokens;</span> -<span class="fc" id="L1054"> return this;</span> +<span class="fc" id="L1063"> this.ignoreEmptyTokens = ignoreEmptyTokens;</span> +<span class="fc" id="L1064"> return this;</span> } //----------------------------------------------------------------------- @@ -1061,10 +1071,10 @@ public class StrTokenizer implements Lis * @return the string content being parsed */ public String getContent() { -<span class="fc bfc" id="L1064" title="All 2 branches covered."> if (chars == null) {</span> -<span class="fc" id="L1065"> return null;</span> +<span class="fc bfc" id="L1074" title="All 2 branches covered."> if (chars == null) {</span> +<span class="fc" id="L1075"> return null;</span> } -<span class="fc" id="L1067"> return new String(chars);</span> +<span class="fc" id="L1077"> return new String(chars);</span> } //----------------------------------------------------------------------- @@ -1072,33 +1082,33 @@ public class StrTokenizer implements Lis * Creates a new instance of this Tokenizer. The new instance is reset so * that it will be at the start of the token list. * If a {@link CloneNotSupportedException} is caught, return <code>null</code>. - * + * * @return a new instance of this Tokenizer which has been reset. */ @Override public Object clone() { try { -<span class="fc" id="L1081"> return cloneReset();</span> -<span class="fc" id="L1082"> } catch (final CloneNotSupportedException ex) {</span> -<span class="fc" id="L1083"> return null;</span> +<span class="fc" id="L1091"> return cloneReset();</span> +<span class="fc" id="L1092"> } catch (final CloneNotSupportedException ex) {</span> +<span class="fc" id="L1093"> return null;</span> } } /** * Creates a new instance of this Tokenizer. The new instance is reset so that * it will be at the start of the token list. - * + * * @return a new instance of this Tokenizer which has been reset. * @throws CloneNotSupportedException if there is a problem cloning */ Object cloneReset() throws CloneNotSupportedException { // this method exists to enable 100% test coverage -<span class="fc" id="L1096"> final StrTokenizer cloned = (StrTokenizer) super.clone();</span> -<span class="fc bfc" id="L1097" title="All 2 branches covered."> if (cloned.chars != null) {</span> -<span class="fc" id="L1098"> cloned.chars = cloned.chars.clone();</span> +<span class="fc" id="L1106"> final StrTokenizer cloned = (StrTokenizer) super.clone();</span> +<span class="fc bfc" id="L1107" title="All 2 branches covered."> if (cloned.chars != null) {</span> +<span class="fc" id="L1108"> cloned.chars = cloned.chars.clone();</span> } -<span class="fc" id="L1100"> cloned.reset();</span> -<span class="fc" id="L1101"> return cloned;</span> +<span class="fc" id="L1110"> cloned.reset();</span> +<span class="fc" id="L1111"> return cloned;</span> } //----------------------------------------------------------------------- @@ -1109,10 +1119,10 @@ public class StrTokenizer implements Lis */ @Override public String toString() { -<span class="fc bfc" id="L1112" title="All 2 branches covered."> if (tokens == null) {</span> -<span class="fc" id="L1113"> return "StrTokenizer[not tokenized yet]";</span> +<span class="fc bfc" id="L1122" title="All 2 branches covered."> if (tokens == null) {</span> +<span class="fc" id="L1123"> return "StrTokenizer[not tokenized yet]";</span> } -<span class="fc" id="L1115"> return "StrTokenizer" + getTokenList();</span> +<span class="fc" id="L1125"> return "StrTokenizer" + getTokenList();</span> } }
Modified: websites/production/commons/content/proper/commons-text/jacoco/org.apache.commons.text/StringEscapeUtils$Builder.html ============================================================================== --- websites/production/commons/content/proper/commons-text/jacoco/org.apache.commons.text/StringEscapeUtils$Builder.html (original) +++ websites/production/commons/content/proper/commons-text/jacoco/org.apache.commons.text/StringEscapeUtils$Builder.html Sun Mar 12 02:08:01 2017 @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>StringEscapeUtils.Builder</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Text</a> > <a href="index.html" class="el_package">org.apache.commons.text</a> > <span class="el_class">StringEscapeUtils.Builder</span></div><h1>StringEscapeUtils.Builder</h1><table class="coverage" cellsp acing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 32</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1"> 0</td><td class="ctr2">4</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">0</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a2"><a href="StringEscapeUtils.java.html#L499" class="el_method">StringEscapeUtils.Builder(CharSequenceTranslator)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="11" alt="11"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">4</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="StringEscapeUtils.java.html#L511" class="el_method">escape(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="109" height="10" title="10" alt="10"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class= "ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="StringEscapeUtils.java.html#L522" class="el_method">append(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="7" alt="7"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="StringEscapeUtils.java.html#L533" class="el_method">toString()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="43" height="10" title="4" alt="4"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1 " id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.7.8.201612092310</span></div></body></html> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>StringEscapeUtils.Builder</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Text</a> > <a href="index.html" class="el_package">org.apache.commons.text</a> > <span class="el_class">StringEscapeUtils.Builder</span></div><h1>StringEscapeUtils.Builder</h1><table class="coverage" cellsp acing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 32</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1"> 0</td><td class="ctr2">4</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">0</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a2"><a href="StringEscapeUtils.java.html#L456" class="el_method">StringEscapeUtils.Builder(CharSequenceTranslator)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="11" alt="11"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">4</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="StringEscapeUtils.java.html#L468" class="el_method">escape(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="109" height="10" title="10" alt="10"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class= "ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="StringEscapeUtils.java.html#L479" class="el_method">append(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="7" alt="7"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="StringEscapeUtils.java.html#L490" class="el_method">toString()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="43" height="10" title="4" alt="4"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1 " id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.7.8.201612092310</span></div></body></html> \ No newline at end of file Modified: websites/production/commons/content/proper/commons-text/jacoco/org.apache.commons.text/StringEscapeUtils$XsiUnescaper.html ============================================================================== --- websites/production/commons/content/proper/commons-text/jacoco/org.apache.commons.text/StringEscapeUtils$XsiUnescaper.html (original) +++ websites/production/commons/content/proper/commons-text/jacoco/org.apache.commons.text/StringEscapeUtils$XsiUnescaper.html Sun Mar 12 02:08:01 2017 @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>StringEscapeUtils.XsiUnescaper</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Text</a> > <a href="index.html" class="el_package">org.apache.commons.text</a> > <span class="el_class">StringEscapeUtils.XsiUnescaper</span></div><h1>StringEscapeUtils.XsiUnescaper</h1><table class="c overage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">5 of 59</td><td class="ctr2">91%</td><td class="bar">1 of 8</td><td class="ctr2">87%</td><td class="ctr1">1</td><td class="ctr2">6</td><td class="ctr1">1</td><td class="ctr2">16</td><td class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="StringEscapeUtils.java.html#L424" class="el_method">translate(CharSequence, int, Writer)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="109" height="10" title="51" alt="51"/></td><td class="ctr2" id="c1">91%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="105" height="10" title="7" alt="7"/></td><td class="ctr2" id="e0">87%</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">15</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="StringEscapeUtils.java.html#L414" class="el_method">StringEscapeUtils.XsiUnescaper()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="3" alt="3"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.7.8.201612092310</span></div></body></html> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>StringEscapeUtils.XsiUnescaper</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Text</a> > <a href="index.html" class="el_package">org.apache.commons.text</a> > <span class="el_class">StringEscapeUtils.XsiUnescaper</span></div><h1>StringEscapeUtils.XsiUnescaper</h1><table class="c overage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">5 of 59</td><td class="ctr2">91%</td><td class="bar">1 of 8</td><td class="ctr2">87%</td><td class="ctr1">1</td><td class="ctr2">6</td><td class="ctr1">1</td><td class="ctr2">16</td><td class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="StringEscapeUtils.java.html#L381" class="el_method">translate(CharSequence, int, Writer)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="109" height="10" title="51" alt="51"/></td><td class="ctr2" id="c1">91%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="105" height="10" title="7" alt="7"/></td><td class="ctr2" id="e0">87%</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">15</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="StringEscapeUtils.java.html#L371" class="el_method">StringEscapeUtils.XsiUnescaper()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="3" alt="3"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.7.8.201612092310</span></div></body></html> \ No newline at end of file