You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2013/01/02 23:37:51 UTC
svn commit: r844671 [9/30] - in
/websites/production/maven/content/plugins/maven-clean-plugin: ./ apidocs/
apidocs/org/apache/maven/plugin/clean/
apidocs/org/apache/maven/plugin/clean/class-use/ cobertura/ cobertura/css/
cobertura/js/ css/ examples/ im...
Modified: websites/production/maven/content/plugins/maven-clean-plugin/cobertura/org.apache.maven.plugin.clean.GlobSelector.html
==============================================================================
--- websites/production/maven/content/plugins/maven-clean-plugin/cobertura/org.apache.maven.plugin.clean.GlobSelector.html (original)
+++ websites/production/maven/content/plugins/maven-clean-plugin/cobertura/org.apache.maven.plugin.clean.GlobSelector.html Wed Jan 2 22:37:48 2013
@@ -1,291 +1,291 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-<title>Coverage Report</title>
-<link title="Style" type="text/css" rel="stylesheet" href="css/main.css"/>
-<script type="text/javascript" src="js/popup.js"></script>
-</head>
-<body>
-<h5>Coverage Report - org.apache.maven.plugin.clean.GlobSelector</h5>
-<div class="separator"> </div>
-<table class="report">
-<thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead>
- <tr><td><a href="org.apache.maven.plugin.clean.GlobSelector.html">GlobSelector</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">73 %</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:73px"><span class="text">30/41</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">58 %</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:58px"><span class="text">21/36</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.1;</span>3,1</td></tr>
-
-</table>
-<div class="separator"> </div>
-<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="keyword">package</span> org.apache.maven.plugin.clean;</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">/*</span></pre></td></tr>
-<tr> <td class="numLine"> 4</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></pre></td></tr>
-<tr> <td class="numLine"> 5</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * or more contributor license agreements. See the NOTICE file</span></pre></td></tr>
-<tr> <td class="numLine"> 6</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * distributed with this work for additional information</span></pre></td></tr>
-<tr> <td class="numLine"> 7</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * regarding copyright ownership. The ASF licenses this file</span></pre></td></tr>
-<tr> <td class="numLine"> 8</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * to you under the Apache License, Version 2.0 (the</span></pre></td></tr>
-<tr> <td class="numLine"> 9</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * "License"); you may not use this file except in compliance</span></pre></td></tr>
-<tr> <td class="numLine"> 10</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * with the License. You may obtain a copy of the License at</span></pre></td></tr>
-<tr> <td class="numLine"> 11</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
-<tr> <td class="numLine"> 12</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></pre></td></tr>
-<tr> <td class="numLine"> 13</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
-<tr> <td class="numLine"> 14</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * Unless required by applicable law or agreed to in writing,</span></pre></td></tr>
-<tr> <td class="numLine"> 15</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * software distributed under the License is distributed on an</span></pre></td></tr>
-<tr> <td class="numLine"> 16</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></pre></td></tr>
-<tr> <td class="numLine"> 17</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * KIND, either express or implied. See the License for the</span></pre></td></tr>
-<tr> <td class="numLine"> 18</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * specific language governing permissions and limitations</span></pre></td></tr>
-<tr> <td class="numLine"> 19</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * under the License.</span></pre></td></tr>
-<tr> <td class="numLine"> 20</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 21</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 22</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">import</span> java.io.File;</pre></td></tr>
-<tr> <td class="numLine"> 23</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.Arrays;</pre></td></tr>
-<tr> <td class="numLine"> 24</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 25</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.util.DirectoryScanner;</pre></td></tr>
-<tr> <td class="numLine"> 26</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.util.SelectorUtils;</pre></td></tr>
-<tr> <td class="numLine"> 27</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 28</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * Selects paths based on Ant-like glob patterns.</span></pre></td></tr>
-<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * </span></pre></td></tr>
-<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * @author Benjamin Bentmann</span></pre></td></tr>
-<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">class</span> GlobSelector</pre></td></tr>
-<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">implements</span> Selector</pre></td></tr>
-<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> String[] includes;</pre></td></tr>
-<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> String[] excludes;</pre></td></tr>
-<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> String str;</pre></td></tr>
-<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> GlobSelector( String[] includes, String[] excludes )</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="numLineCover"> 45</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>( includes, excludes, <span class="keyword">false</span> );</span></pre></td></tr>
-<tr> <td class="numLineCover"> 46</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
-<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> GlobSelector( String[] includes, String[] excludes, <span class="keyword">boolean</span> useDefaultExcludes )</pre></td></tr>
-<tr> <td class="numLineCover"> 49</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 50</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.str = <span class="string">"includes = "</span> + toString( includes ) + <span class="string">", excludes = "</span> + toString( excludes );</pre></td></tr>
-<tr> <td class="numLineCover"> 51</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.includes = normalizePatterns( includes );</pre></td></tr>
-<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.excludes = normalizePatterns( addDefaultExcludes( excludes, useDefaultExcludes ) );</pre></td></tr>
-<tr> <td class="numLineCover"> 53</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 55</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> String toString( String[] patterns )</pre></td></tr>
-<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 57</td> <td class="nbHitsUncovered"><a title="Line 57: Conditional coverage 50 % (1/2)."> 4</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 57: Conditional coverage 50 % (1/2)."> <span class="keyword">return</span> ( patterns == <span class="keyword">null</span> ) ? <span class="string">"[]"</span> : Arrays.asList( patterns ).toString();</a></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"> </pre></td></tr>
-<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> String[] addDefaultExcludes( String[] excludes, <span class="keyword">boolean</span> useDefaultExcludes )</pre></td></tr>
-<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> String[] defaults = DirectoryScanner.DEFAULTEXCLUDES;</pre></td></tr>
-<tr> <td class="numLineCover"> 63</td> <td class="nbHitsUncovered"><a title="Line 63: Conditional coverage 50 % (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 63: Conditional coverage 50 % (1/2)."> <span class="keyword">if</span> ( !useDefaultExcludes )</a></span></pre></td></tr>
-<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span> excludes;</pre></td></tr>
-<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 67</td> <td class="nbHitsUncovered"><a title="Line 67: Conditional coverage 0 % (0/4) [each condition: 0 %, 0 %]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 67: Conditional coverage 0 % (0/4) [each condition: 0 %, 0 %]."> <span class="keyword">else</span> <span class="keyword">if</span> ( excludes == <span class="keyword">null</span> || excludes.length <= 0 )</a></span></pre></td></tr>
-<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 69</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> defaults;</span></pre></td></tr>
-<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 71</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">else</span></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"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String[] patterns = <span class="keyword">new</span> String[excludes.length + defaults.length];</span></pre></td></tr>
-<tr> <td class="numLineCover"> 74</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> System.arraycopy( excludes, 0, patterns, 0, excludes.length );</span></pre></td></tr>
-<tr> <td class="numLineCover"> 75</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> System.arraycopy( defaults, 0, patterns, excludes.length, defaults.length );</span></pre></td></tr>
-<tr> <td class="numLineCover"> 76</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> patterns;</span></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"> </pre></td></tr>
-<tr> <td class="numLine"> 80</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> String[] normalizePatterns( String[] patterns )</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="numLine"> 82</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> String[] normalized;</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"><a title="Line 84: Conditional coverage 50 % (1/2)."> 4</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 84: Conditional coverage 50 % (1/2)."> <span class="keyword">if</span> ( patterns != <span class="keyword">null</span> )</a></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="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> normalized = <span class="keyword">new</span> String[patterns.length];</pre></td></tr>
-<tr> <td class="numLineCover"> 87</td> <td class="nbHitsCovered"><a title="Line 87: Conditional coverage 100 % (2/2)."> 9</a></td> <td class="src"><pre class="src"> <a title="Line 87: Conditional coverage 100 % (2/2)."> <span class="keyword">for</span> ( <span class="keyword">int</span> i = patterns.length - 1; i >= 0; i-- )</a></pre></td></tr>
-<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 89</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> normalized[i] = normalizePattern( patterns[i] );</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="numLine"> 91</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">else</span></pre></td></tr>
-<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 94</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> normalized = <span class="keyword">new</span> String[0];</span></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="numLine"> 96</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 97</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">return</span> normalized;</pre></td></tr>
-<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</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"> <span class="keyword">private</span> <span class="keyword">static</span> String normalizePattern( String pattern )</pre></td></tr>
-<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"><a title="Line 102: Conditional coverage 100 % (2/2)."> 5</a></td> <td class="src"><pre class="src"> <a title="Line 102: Conditional coverage 100 % (2/2)."> <span class="keyword">if</span> ( pattern == <span class="keyword">null</span> )</a></pre></td></tr>
-<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 104</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="string">""</span>;</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="numLine"> 106</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 107</td> <td class="nbHitsUncovered"><a title="Line 107: Conditional coverage 50 % (1/2)."> 4</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 107: Conditional coverage 50 % (1/2)."> String normalized = pattern.replace( ( File.separatorChar == <span class="string">'/'</span> ) ? <span class="string">'\\'</span> : <span class="string">'/'</span>, File.separatorChar );</a></span></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="nbHitsUncovered"><a title="Line 109: Conditional coverage 50 % (1/2)."> 4</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 109: Conditional coverage 50 % (1/2)."> <span class="keyword">if</span> ( normalized.endsWith( File.separator ) )</a></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="numLineCover"> 111</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> normalized += <span class="string">"**"</span>;</span></pre></td></tr>
-<tr> <td class="numLine"> 112</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 114</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">return</span> normalized;</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="numLine"> 116</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> isSelected( String pathname )</pre></td></tr>
-<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 119</td> <td class="nbHitsUncovered"><a title="Line 119: Conditional coverage 75 % (6/8) [each condition: 50 %, 100 %, 50 %, 100 %]."> 8</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 119: Conditional coverage 75 % (6/8) [each condition: 50 %, 100 %, 50 %, 100 %]."> <span class="keyword">return</span> ( includes.length <= 0 || isMatched( pathname, includes ) )</a></span></pre></td></tr>
-<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> && ( excludes.length <= 0 || !isMatched( pathname, excludes ) );</pre></td></tr>
-<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</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="numLine"> 123</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">boolean</span> isMatched( String pathname, String[] patterns )</pre></td></tr>
-<tr> <td class="numLine"> 124</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 125</td> <td class="nbHitsCovered"><a title="Line 125: Conditional coverage 100 % (2/2)."> 25</a></td> <td class="src"><pre class="src"> <a title="Line 125: Conditional coverage 100 % (2/2)."> <span class="keyword">for</span> ( <span class="keyword">int</span> i = patterns.length - 1; i >= 0; i-- )</a></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="numLineCover"> 127</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src"> String pattern = patterns[i];</pre></td></tr>
-<tr> <td class="numLineCover"> 128</td> <td class="nbHitsCovered"><a title="Line 128: Conditional coverage 100 % (2/2)."> 19</a></td> <td class="src"><pre class="src"> <a title="Line 128: Conditional coverage 100 % (2/2)."> <span class="keyword">if</span> ( SelectorUtils.matchPath( pattern, pathname ) )</a></pre></td></tr>
-<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 130</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr>
-<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 133</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">false</span>;</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="numLine"> 136</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> couldHoldSelected( String pathname )</pre></td></tr>
-<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 138</td> <td class="nbHitsUncovered"><a title="Line 138: Conditional coverage 50 % (1/2)."> 5</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 138: Conditional coverage 50 % (1/2)."> <span class="keyword">for</span> ( <span class="keyword">int</span> i = includes.length - 1; i >= 0; i-- )</a></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="numLineCover"> 140</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> String include = includes[i];</pre></td></tr>
-<tr> <td class="numLineCover"> 141</td> <td class="nbHitsUncovered"><a title="Line 141: Conditional coverage 50 % (1/2)."> 5</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 141: Conditional coverage 50 % (1/2)."> <span class="keyword">if</span> ( SelectorUtils.matchPatternStart( include, pathname ) )</a></span></pre></td></tr>
-<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 143</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr>
-<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 146</td> <td class="nbHitsUncovered"><a title="Line 146: Conditional coverage 0 % (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 146: Conditional coverage 0 % (0/2)."> <span class="keyword">return</span> includes.length <= 0;</a></span></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="numLine"> 148</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> String toString()</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="numLineCover"> 151</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span> str;</pre></td></tr>
-<tr> <td class="numLine"> 152</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</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>
-</table>
-
-<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 26/05/12 18:49.</div>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>Coverage Report</title>
+<link title="Style" type="text/css" rel="stylesheet" href="css/main.css"/>
+<script type="text/javascript" src="js/popup.js"></script>
+</head>
+<body>
+<h5>Coverage Report - org.apache.maven.plugin.clean.GlobSelector</h5>
+<div class="separator"> </div>
+<table class="report">
+<thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead>
+ <tr><td><a href="org.apache.maven.plugin.clean.GlobSelector.html">GlobSelector</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">73%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:73px"><span class="text">30/41</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">58%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:58px"><span class="text">21/36</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.1;</span>3,1</td></tr>
+
+</table>
+<div class="separator"> </div>
+<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="keyword">package</span> org.apache.maven.plugin.clean;</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">/*</span></pre></td></tr>
+<tr> <td class="numLine"> 4</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></pre></td></tr>
+<tr> <td class="numLine"> 5</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * or more contributor license agreements. See the NOTICE file</span></pre></td></tr>
+<tr> <td class="numLine"> 6</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * distributed with this work for additional information</span></pre></td></tr>
+<tr> <td class="numLine"> 7</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * regarding copyright ownership. The ASF licenses this file</span></pre></td></tr>
+<tr> <td class="numLine"> 8</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * to you under the Apache License, Version 2.0 (the</span></pre></td></tr>
+<tr> <td class="numLine"> 9</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * "License"); you may not use this file except in compliance</span></pre></td></tr>
+<tr> <td class="numLine"> 10</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * with the License. You may obtain a copy of the License at</span></pre></td></tr>
+<tr> <td class="numLine"> 11</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 12</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></pre></td></tr>
+<tr> <td class="numLine"> 13</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 14</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Unless required by applicable law or agreed to in writing,</span></pre></td></tr>
+<tr> <td class="numLine"> 15</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * software distributed under the License is distributed on an</span></pre></td></tr>
+<tr> <td class="numLine"> 16</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></pre></td></tr>
+<tr> <td class="numLine"> 17</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * KIND, either express or implied. See the License for the</span></pre></td></tr>
+<tr> <td class="numLine"> 18</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * specific language governing permissions and limitations</span></pre></td></tr>
+<tr> <td class="numLine"> 19</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * under the License.</span></pre></td></tr>
+<tr> <td class="numLine"> 20</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 21</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 22</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">import</span> java.io.File;</pre></td></tr>
+<tr> <td class="numLine"> 23</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.Arrays;</pre></td></tr>
+<tr> <td class="numLine"> 24</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 25</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.util.DirectoryScanner;</pre></td></tr>
+<tr> <td class="numLine"> 26</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.util.SelectorUtils;</pre></td></tr>
+<tr> <td class="numLine"> 27</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 28</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Selects paths based on Ant-like glob patterns.</span></pre></td></tr>
+<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * </span></pre></td></tr>
+<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @author Benjamin Bentmann</span></pre></td></tr>
+<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">class</span> GlobSelector</pre></td></tr>
+<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">implements</span> Selector</pre></td></tr>
+<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> String[] includes;</pre></td></tr>
+<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> String[] excludes;</pre></td></tr>
+<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> String str;</pre></td></tr>
+<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> GlobSelector( String[] includes, String[] excludes )</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="numLineCover"> 45</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>( includes, excludes, <span class="keyword">false</span> );</span></pre></td></tr>
+<tr> <td class="numLineCover"> 46</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
+<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> GlobSelector( String[] includes, String[] excludes, <span class="keyword">boolean</span> useDefaultExcludes )</pre></td></tr>
+<tr> <td class="numLineCover"> 49</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 50</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.str = <span class="string">"includes = "</span> + toString( includes ) + <span class="string">", excludes = "</span> + toString( excludes );</pre></td></tr>
+<tr> <td class="numLineCover"> 51</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.includes = normalizePatterns( includes );</pre></td></tr>
+<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.excludes = normalizePatterns( addDefaultExcludes( excludes, useDefaultExcludes ) );</pre></td></tr>
+<tr> <td class="numLineCover"> 53</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 55</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> String toString( String[] patterns )</pre></td></tr>
+<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 57</td> <td class="nbHitsUncovered"><a title="Line 57: Conditional coverage 50% (1/2)."> 4</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 57: Conditional coverage 50% (1/2)."> <span class="keyword">return</span> ( patterns == <span class="keyword">null</span> ) ? <span class="string">"[]"</span> : Arrays.asList( patterns ).toString();</a></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"> </pre></td></tr>
+<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> String[] addDefaultExcludes( String[] excludes, <span class="keyword">boolean</span> useDefaultExcludes )</pre></td></tr>
+<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> String[] defaults = DirectoryScanner.DEFAULTEXCLUDES;</pre></td></tr>
+<tr> <td class="numLineCover"> 63</td> <td class="nbHitsUncovered"><a title="Line 63: Conditional coverage 50% (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 63: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> ( !useDefaultExcludes )</a></span></pre></td></tr>
+<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span> excludes;</pre></td></tr>
+<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 67</td> <td class="nbHitsUncovered"><a title="Line 67: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 67: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">else</span> <span class="keyword">if</span> ( excludes == <span class="keyword">null</span> || excludes.length <= 0 )</a></span></pre></td></tr>
+<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 69</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> defaults;</span></pre></td></tr>
+<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 71</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">else</span></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"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String[] patterns = <span class="keyword">new</span> String[excludes.length + defaults.length];</span></pre></td></tr>
+<tr> <td class="numLineCover"> 74</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> System.arraycopy( excludes, 0, patterns, 0, excludes.length );</span></pre></td></tr>
+<tr> <td class="numLineCover"> 75</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> System.arraycopy( defaults, 0, patterns, excludes.length, defaults.length );</span></pre></td></tr>
+<tr> <td class="numLineCover"> 76</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> patterns;</span></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"> </pre></td></tr>
+<tr> <td class="numLine"> 80</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> String[] normalizePatterns( String[] patterns )</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="numLine"> 82</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> String[] normalized;</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"><a title="Line 84: Conditional coverage 50% (1/2)."> 4</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 84: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> ( patterns != <span class="keyword">null</span> )</a></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="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> normalized = <span class="keyword">new</span> String[patterns.length];</pre></td></tr>
+<tr> <td class="numLineCover"> 87</td> <td class="nbHitsCovered"><a title="Line 87: Conditional coverage 100% (2/2)."> 9</a></td> <td class="src"><pre class="src"> <a title="Line 87: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> ( <span class="keyword">int</span> i = patterns.length - 1; i >= 0; i-- )</a></pre></td></tr>
+<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 89</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> normalized[i] = normalizePattern( patterns[i] );</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="numLine"> 91</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">else</span></pre></td></tr>
+<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 94</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> normalized = <span class="keyword">new</span> String[0];</span></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="numLine"> 96</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLineCover"> 97</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">return</span> normalized;</pre></td></tr>
+<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</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"> <span class="keyword">private</span> <span class="keyword">static</span> String normalizePattern( String pattern )</pre></td></tr>
+<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"><a title="Line 102: Conditional coverage 100% (2/2)."> 5</a></td> <td class="src"><pre class="src"> <a title="Line 102: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> ( pattern == <span class="keyword">null</span> )</a></pre></td></tr>
+<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 104</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="string">""</span>;</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="numLine"> 106</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLineCover"> 107</td> <td class="nbHitsUncovered"><a title="Line 107: Conditional coverage 50% (1/2)."> 4</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 107: Conditional coverage 50% (1/2)."> String normalized = pattern.replace( ( File.separatorChar == <span class="string">'/'</span> ) ? <span class="string">'\\'</span> : <span class="string">'/'</span>, File.separatorChar );</a></span></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="nbHitsUncovered"><a title="Line 109: Conditional coverage 50% (1/2)."> 4</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 109: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> ( normalized.endsWith( File.separator ) )</a></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="numLineCover"> 111</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> normalized += <span class="string">"**"</span>;</span></pre></td></tr>
+<tr> <td class="numLine"> 112</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLineCover"> 114</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">return</span> normalized;</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="numLine"> 116</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> isSelected( String pathname )</pre></td></tr>
+<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 119</td> <td class="nbHitsUncovered"><a title="Line 119: Conditional coverage 75% (6/8) [each condition: 50%, 100%, 50%, 100%]."> 8</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 119: Conditional coverage 75% (6/8) [each condition: 50%, 100%, 50%, 100%]."> <span class="keyword">return</span> ( includes.length <= 0 || isMatched( pathname, includes ) )</a></span></pre></td></tr>
+<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> && ( excludes.length <= 0 || !isMatched( pathname, excludes ) );</pre></td></tr>
+<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</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="numLine"> 123</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">boolean</span> isMatched( String pathname, String[] patterns )</pre></td></tr>
+<tr> <td class="numLine"> 124</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 125</td> <td class="nbHitsCovered"><a title="Line 125: Conditional coverage 100% (2/2)."> 25</a></td> <td class="src"><pre class="src"> <a title="Line 125: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> ( <span class="keyword">int</span> i = patterns.length - 1; i >= 0; i-- )</a></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="numLineCover"> 127</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src"> String pattern = patterns[i];</pre></td></tr>
+<tr> <td class="numLineCover"> 128</td> <td class="nbHitsCovered"><a title="Line 128: Conditional coverage 100% (2/2)."> 19</a></td> <td class="src"><pre class="src"> <a title="Line 128: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> ( SelectorUtils.matchPath( pattern, pathname ) )</a></pre></td></tr>
+<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 130</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr>
+<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 133</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">false</span>;</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="numLine"> 136</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> couldHoldSelected( String pathname )</pre></td></tr>
+<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 138</td> <td class="nbHitsUncovered"><a title="Line 138: Conditional coverage 50% (1/2)."> 5</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 138: Conditional coverage 50% (1/2)."> <span class="keyword">for</span> ( <span class="keyword">int</span> i = includes.length - 1; i >= 0; i-- )</a></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="numLineCover"> 140</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> String include = includes[i];</pre></td></tr>
+<tr> <td class="numLineCover"> 141</td> <td class="nbHitsUncovered"><a title="Line 141: Conditional coverage 50% (1/2)."> 5</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 141: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> ( SelectorUtils.matchPatternStart( include, pathname ) )</a></span></pre></td></tr>
+<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 143</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr>
+<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 146</td> <td class="nbHitsUncovered"><a title="Line 146: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 146: Conditional coverage 0% (0/2)."> <span class="keyword">return</span> includes.length <= 0;</a></span></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="numLine"> 148</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> String toString()</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="numLineCover"> 151</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span> str;</pre></td></tr>
+<tr> <td class="numLine"> 152</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</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>
+</table>
+
+<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 2-1-13 22:40.</div>
+</body>
+</html>
\ No newline at end of file