mirror of
https://github.com/ysoftdevs/DependencyCheck.git
synced 2026-01-15 16:23:37 +01:00
3047 lines
352 KiB
HTML
3047 lines
352 KiB
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.owasp.dependencycheck.org.apache.tools.ant.util.FileUtils</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.owasp.dependencycheck.org.apache.tools.ant.util.FileUtils.html">FileUtils</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">20%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:20px"><span class="text">64/311</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">13%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:13px"><span class="text">33/248</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.061224489795919;</span>4.061</td></tr>
|
|
<tr><td><a href="org.owasp.dependencycheck.org.apache.tools.ant.util.FileUtils.html">FileUtils$1</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</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">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/4</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.061224489795919;</span>4.061</td></tr>
|
|
<tr><td><a href="org.owasp.dependencycheck.org.apache.tools.ant.util.FileUtils.html">FileUtils$2</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</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"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.061224489795919;</span>4.061</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="comment">/*</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 2</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 3</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * contributor license agreements. See the NOTICE file distributed with</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 4</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * this work for additional information regarding copyright ownership.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 5</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 6</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * (the "License"); you may not use this file except in compliance with</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 7</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * the License. You may obtain a copy of the License at</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 8</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 9</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"> 10</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 11</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 12</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 13</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 14</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * See the License for the specific language governing permissions and</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 15</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * limitations under the License.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 16</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 17</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 18</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">package</span> org.owasp.dependencycheck.org.apache.tools.ant.util;</pre></td></tr>
|
|
<tr> <td class="numLine"> 19</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 20</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"> 21</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.io.FilenameFilter;</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.IOException;</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.io.InputStream;</pre></td></tr>
|
|
<tr> <td class="numLine"> 24</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.io.InputStreamReader;</pre></td></tr>
|
|
<tr> <td class="numLine"> 25</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.io.OutputStream;</pre></td></tr>
|
|
<tr> <td class="numLine"> 26</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.io.Reader;</pre></td></tr>
|
|
<tr> <td class="numLine"> 27</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.io.Writer;</pre></td></tr>
|
|
<tr> <td class="numLine"> 28</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.net.HttpURLConnection;</pre></td></tr>
|
|
<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.net.JarURLConnection;</pre></td></tr>
|
|
<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.net.MalformedURLException;</pre></td></tr>
|
|
<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.net.URL;</pre></td></tr>
|
|
<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.net.URLConnection;</pre></td></tr>
|
|
<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.nio.channels.Channel;</pre></td></tr>
|
|
<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.text.DecimalFormat;</pre></td></tr>
|
|
<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.util.ArrayList;</pre></td></tr>
|
|
<tr> <td class="numLine"> 36</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"> 37</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.util.Iterator;</pre></td></tr>
|
|
<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.util.List;</pre></td></tr>
|
|
<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.util.Random;</pre></td></tr>
|
|
<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.util.Stack;</pre></td></tr>
|
|
<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.util.StringTokenizer;</pre></td></tr>
|
|
<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> java.util.jar.JarFile;</pre></td></tr>
|
|
<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.org.apache.tools.ant.BuildException;</pre></td></tr>
|
|
<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.org.apache.tools.ant.PathTokenizer;</pre></td></tr>
|
|
<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.org.apache.tools.ant.launch.Locator;</pre></td></tr>
|
|
<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.org.apache.tools.ant.taskdefs.condition.Os;</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="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * This class also encapsulates methods which allow Files to be referred to using abstract path names which are</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * translated to native system file paths at runtime as well as copying files or setting their last modification time.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 51</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 53</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> FileUtils {</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> <span class="keyword">final</span> <span class="keyword">int</span> DELETE_RETRY_SLEEP_MILLIS = 10;</pre></td></tr>
|
|
<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">int</span> EXPAND_SPACE = 50;</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> FileUtils PRIMARY_INSTANCE = <span class="keyword">new</span> FileUtils();</pre></td></tr>
|
|
<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 59</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//get some non-crypto-grade randomness from various places.</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 60</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> Random rand = <span class="keyword">new</span> Random(System.currentTimeMillis()</pre></td></tr>
|
|
<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> + Runtime.getRuntime().freeMemory());</pre></td></tr>
|
|
<tr> <td class="numLine"> 62</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLineCover"> 63</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">boolean</span> ON_NETWARE = Os.isFamily(<span class="string">"netware"</span>);</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 64</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">boolean</span> ON_DOS = Os.isFamily(<span class="string">"dos"</span>);</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">boolean</span> ON_WIN9X = Os.isFamily(<span class="string">"win9x"</span>);</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 66</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">boolean</span> ON_WINDOWS = Os.isFamily(<span class="string">"windows"</span>);</pre></td></tr>
|
|
<tr> <td class="numLine"> 67</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">int</span> BUF_SIZE = 8192;</pre></td></tr>
|
|
<tr> <td class="numLine"> 69</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 71</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * The granularity of timestamps under FAT.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 72</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">long</span> FAT_FILE_TIMESTAMP_GRANULARITY = 2000;</pre></td></tr>
|
|
<tr> <td class="numLine"> 74</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * The granularity of timestamps under Unix.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 78</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">long</span> UNIX_FILE_TIMESTAMP_GRANULARITY = 1000;</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="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * The granularity of timestamps under the NT File System. NTFS has a granularity of 100 nanoseconds, which is less</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 82</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * than 1 millisecond, so we round this up to 1 millisecond.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 84</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">long</span> NTFS_FILE_TIMESTAMP_GRANULARITY = 1;</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="numLine"> 86</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * A one item cache for fromUri. fromUri is called for each element when parseing ant build files. It is a costly</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * operation. This just caches the result of the last call.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 90</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">private</span> Object cacheFromUriLock = <span class="keyword">new</span> Object();</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 91</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">private</span> String cacheFromUriRequest = <span class="keyword">null</span>;</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 92</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">private</span> String cacheFromUriResponse = <span class="keyword">null</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="numLine"> 94</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 95</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Factory method.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 96</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 97</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return a new instance of FileUtils.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @deprecated since 1.7. Use getFileUtils instead, FileUtils do not have state.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 100</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> FileUtils newFileUtils() {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 101</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">new</span> FileUtils();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</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="numLine"> 104</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Method to retrieve The FileUtils, which is shared by all users of this method.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return an instance of FileUtils.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.6.3</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 109</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> FileUtils getFileUtils() {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 111</td> <td class="nbHitsCovered"> 32</td> <td class="src"><pre class="src"> <span class="keyword">return</span> PRIMARY_INSTANCE;</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="numLine"> 114</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Empty constructor.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 117</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">protected</span> FileUtils() {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 118</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Get the URL for a file taking into account # characters.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 123</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param file the file whose URL representation is required.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 124</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return The FileURL value.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @throws MalformedURLException if the URL representation cannot be formed.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 126</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 127</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> URL getFileURL(File file) <span class="keyword">throws</span> MalformedURLException {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 128</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">new</span> URL(file.toURI().toASCIIString());</span></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="numLine"> 130</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Convenience method to copy a file from a source to a destination.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * No filtering is performed.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 135</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param sourceFile Name of file to copy from.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param destFile Name of file to copy to.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the copying fails.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void copyFile(String sourceFile, String destFile) throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// copyFile(new File(sourceFile), new File(destFile), null, false, false);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 146</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 147</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Convenience method to copy a file from a source to a destination</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 148</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * specifying if token filtering must be used.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 150</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param sourceFile Name of file to copy from.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 151</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 152</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param destFile Name of file to copy to.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 153</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 154</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filters the collection of filters to apply to this copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 155</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 156</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the copying fails.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 157</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 158</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void copyFile(String sourceFile, String destFile, FilterSetCollection filters)</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 159</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 160</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// copyFile(new File(sourceFile), new File(destFile), filters, false, false);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 161</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 163</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 164</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Convenience method to copy a file from a source to a destination specifying if token</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 165</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * filtering must be used and if source files may overwrite newer destination files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 166</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 167</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param sourceFile Name of file to copy from. Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 168</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param destFile Name of file to copy to. Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 169</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filters the collection of filters to apply to this copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 170</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param overwrite Whether or not the destination file should be overwritten if it already</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 171</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * exists.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 172</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the copying fails.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 175</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void copyFile(String sourceFile, String destFile, FilterSetCollection filters,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 176</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// boolean overwrite) throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 177</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// copyFile(new File(sourceFile), new File(destFile), filters, overwrite, false);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 178</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 179</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 180</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 181</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Convenience method to copy a file from a source to a destination</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 182</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * specifying if token</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 183</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * filtering must be used, if source files may overwrite newer destination</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * files and the last</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 185</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * modified time of <code>destFile</code> file should be made equal to</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * the last modified time</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * of <code>sourceFile</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 189</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param sourceFile Name of file to copy from. Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 190</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param destFile Name of file to copy to. Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 191</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filters the collection of filters to apply to this copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 192</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param overwrite Whether or not the destination file should be</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * overwritten if it already exists.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 194</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param preserveLastModified Whether or not the last modified time of</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 195</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * the resulting file</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 196</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * should be set to that of the source file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 197</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 198</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the copying fails.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 199</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 200</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void copyFile(String sourceFile, String destFile,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 201</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// FilterSetCollection filters,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 202</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// boolean overwrite, boolean preserveLastModified)</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 203</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 204</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// copyFile(new File(sourceFile), new File(destFile), filters, overwrite,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 205</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// preserveLastModified);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 206</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 207</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 208</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 209</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Convenience method to copy a file from a source to a destination specifying if token</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 210</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * filtering must be used, if source files may overwrite newer destination files and the last</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 211</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * modified time of <code>destFile</code> file should be made equal to the last modified time</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 212</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * of <code>sourceFile</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 214</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param sourceFile Name of file to copy from. Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param destFile Name of file to copy to. Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filters the collection of filters to apply to this copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param overwrite Whether or not the destination file should be overwritten if it already</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 218</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * exists.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 219</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param preserveLastModified Whether or not the last modified time of the resulting file</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 220</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * should be set to that of the source file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 221</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param encoding the encoding used to read and write the files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 222</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 223</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the copying fails.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 224</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @since Ant 1.5</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 227</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void copyFile(String sourceFile, String destFile,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 228</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// FilterSetCollection filters, boolean overwrite,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 229</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// boolean preserveLastModified, String encoding) throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 230</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// copyFile(new File(sourceFile), new File(destFile), filters,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// overwrite, preserveLastModified, encoding);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 232</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 233</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// // CheckStyle:ParameterNumberCheck OFF - bc</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 234</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Convenience method to copy a file from a source to a</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 236</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * destination specifying if token filtering must be used, if</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 237</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * filter chains must be used, if source files may overwrite</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 238</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * newer destination files and the last modified time of</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * <code>destFile</code> file should be made equal</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 240</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * to the last modified time of <code>sourceFile</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 241</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 242</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param sourceFile Name of file to copy from.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 243</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 244</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param destFile Name of file to copy to.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 246</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filters the collection of filters to apply to this copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 247</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filterChains filterChains to apply during the copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param overwrite Whether or not the destination file should be</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 249</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * overwritten if it already exists.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param preserveLastModified Whether or not the last modified time of</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 251</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * the resulting file should be set to that</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 252</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * of the source file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param encoding the encoding used to read and write the files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param project the project instance.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 255</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 256</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the copying fails.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 257</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 258</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @since Ant 1.5</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 259</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 260</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void copyFile(String sourceFile, String destFile,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 261</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// FilterSetCollection filters, Vector filterChains,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 262</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// boolean overwrite, boolean preserveLastModified,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 263</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// String encoding, Project project) throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 264</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// copyFile(new File(sourceFile), new File(destFile), filters, filterChains, overwrite,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 265</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// preserveLastModified, encoding, project);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 266</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 267</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 268</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 269</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Convenience method to copy a file from a source to a destination specifying if token</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * filtering must be used, if filter chains must be used, if source files may overwrite newer</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 271</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * destination files and the last modified time of <code>destFile</code> file should be made</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 272</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * equal to the last modified time of <code>sourceFile</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 273</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 274</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param sourceFile Name of file to copy from. Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 275</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param destFile Name of file to copy to. Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 276</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filters the collection of filters to apply to this copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 277</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filterChains filterChains to apply during the copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 278</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param overwrite Whether or not the destination file should be overwritten if it already</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 279</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * exists.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 280</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param preserveLastModified Whether or not the last modified time of the resulting file</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 281</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * should be set to that of the source file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 282</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param inputEncoding the encoding used to read the files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 283</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param outputEncoding the encoding used to write the files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 284</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param project the project instance.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 285</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 286</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the copying fails.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 287</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 288</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @since Ant 1.6</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 289</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 290</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void copyFile(String sourceFile, String destFile,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 291</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// FilterSetCollection filters, Vector filterChains,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 292</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// boolean overwrite, boolean preserveLastModified,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 293</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// String inputEncoding, String outputEncoding,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 294</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// Project project) throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 295</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// copyFile(new File(sourceFile), new File(destFile), filters, filterChains, overwrite,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 296</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// preserveLastModified, inputEncoding, outputEncoding, project);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 297</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 298</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 299</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 300</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Convenience method to copy a file from a source to a destination. No filtering is performed.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 301</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 302</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param sourceFile the file to copy from. Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 303</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param destFile the file to copy to. Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 304</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 305</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the copying fails.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 306</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 307</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void copyFile(File sourceFile, File destFile) throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 308</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// copyFile(sourceFile, destFile, null, false, false);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 309</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 310</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 311</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 312</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Convenience method to copy a file from a source to a destination</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 313</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * specifying if token filtering must be used.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 314</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 315</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param sourceFile the file to copy from.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 316</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 317</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param destFile the file to copy to.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 318</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 319</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filters the collection of filters to apply to this copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 320</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 321</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the copying fails.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 322</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 323</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void copyFile(File sourceFile, File destFile, FilterSetCollection filters)</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 324</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 325</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// copyFile(sourceFile, destFile, filters, false, false);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 326</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 327</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 328</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 329</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Convenience method to copy a file from a source to a</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 330</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * destination specifying if token filtering must be used and if</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 331</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * source files may overwrite newer destination files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 332</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 333</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param sourceFile the file to copy from.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 334</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 335</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param destFile the file to copy to.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 336</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 337</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filters the collection of filters to apply to this copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 338</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param overwrite Whether or not the destination file should be</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 339</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * overwritten if it already exists.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 340</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 341</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the copying fails.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 342</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 343</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void copyFile(File sourceFile, File destFile, FilterSetCollection filters,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 344</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// boolean overwrite) throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 345</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// copyFile(sourceFile, destFile, filters, overwrite, false);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 346</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 347</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 348</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 349</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Convenience method to copy a file from a source to a</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 350</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * destination specifying if token filtering must be used, if</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 351</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * source files may overwrite newer destination files and the</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 352</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * last modified time of <code>destFile</code> file should be made equal</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 353</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * to the last modified time of <code>sourceFile</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 354</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 355</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param sourceFile the file to copy from.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 356</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 357</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param destFile the file to copy to.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 358</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 359</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filters the collection of filters to apply to this copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 360</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param overwrite Whether or not the destination file should be</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 361</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * overwritten if it already exists.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 362</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param preserveLastModified Whether or not the last modified time of</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 363</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * the resulting file should be set to that</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 364</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * of the source file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 365</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 366</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the copying fails.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 367</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 368</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void copyFile(File sourceFile, File destFile, FilterSetCollection filters,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 369</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// boolean overwrite, boolean preserveLastModified) throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 370</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// copyFile(sourceFile, destFile, filters, overwrite, preserveLastModified, null);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 371</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 372</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 373</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 374</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Convenience method to copy a file from a source to a destination specifying if token</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 375</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * filtering must be used, if source files may overwrite newer destination files, the last</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * modified time of <code>destFile</code> file should be made equal to the last modified time</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 377</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * of <code>sourceFile</code> and which character encoding to assume.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 378</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 379</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param sourceFile the file to copy from. Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 380</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param destFile the file to copy to. Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 381</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filters the collection of filters to apply to this copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 382</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param overwrite Whether or not the destination file should be overwritten if it already</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 383</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * exists.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param preserveLastModified Whether or not the last modified time of the resulting file</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 385</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * should be set to that of the source file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 386</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param encoding the encoding used to read and write the files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 387</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 388</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the copying fails.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 389</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 390</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @since Ant 1.5</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 391</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 392</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void copyFile(File sourceFile, File destFile,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 393</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// FilterSetCollection filters, boolean overwrite,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 394</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// boolean preserveLastModified, String encoding) throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 395</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// copyFile(sourceFile, destFile, filters, null, overwrite,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 396</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// preserveLastModified, encoding, null);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 397</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 398</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 399</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Convenience method to copy a file from a source to a</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 400</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * destination specifying if token filtering must be used, if</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * filter chains must be used, if source files may overwrite</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 402</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * newer destination files and the last modified time of</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 403</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * <code>destFile</code> file should be made equal</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 404</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * to the last modified time of <code>sourceFile</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 405</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 406</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param sourceFile the file to copy from.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 407</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 408</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param destFile the file to copy to.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 409</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 410</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filters the collection of filters to apply to this copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 411</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filterChains filterChains to apply during the copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 412</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param overwrite Whether or not the destination file should be</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 413</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * overwritten if it already exists.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 414</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param preserveLastModified Whether or not the last modified time of</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 415</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * the resulting file should be set to that</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 416</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * of the source file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 417</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param encoding the encoding used to read and write the files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 418</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param project the project instance.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 419</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 420</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the copying fails.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 421</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 422</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @since Ant 1.5</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 423</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 424</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void copyFile(File sourceFile, File destFile,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 425</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// FilterSetCollection filters, Vector filterChains,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 426</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// boolean overwrite, boolean preserveLastModified,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 427</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// String encoding, Project project) throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 428</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// copyFile(sourceFile, destFile, filters, filterChains,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 429</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// overwrite, preserveLastModified, encoding, encoding, project);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 430</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 431</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 432</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 433</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Convenience method to copy a file from a source to a</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 434</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * destination specifying if token filtering must be used, if</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 435</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * filter chains must be used, if source files may overwrite</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 436</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * newer destination files and the last modified time of</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 437</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * <code>destFile</code> file should be made equal</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 438</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * to the last modified time of <code>sourceFile</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 439</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 440</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param sourceFile the file to copy from.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 441</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 442</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param destFile the file to copy to.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 443</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 444</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filters the collection of filters to apply to this copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 445</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filterChains filterChains to apply during the copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 446</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param overwrite Whether or not the destination file should be</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 447</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * overwritten if it already exists.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 448</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param preserveLastModified Whether or not the last modified time of</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 449</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * the resulting file should be set to that</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 450</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * of the source file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 451</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param inputEncoding the encoding used to read the files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 452</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param outputEncoding the encoding used to write the files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 453</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param project the project instance.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 454</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 455</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 456</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the copying fails.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 457</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 458</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @since Ant 1.6</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 459</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 460</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void copyFile(File sourceFile, File destFile,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 461</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// FilterSetCollection filters, Vector filterChains,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 462</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// boolean overwrite, boolean preserveLastModified,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 463</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// String inputEncoding, String outputEncoding,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 464</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// Project project) throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 465</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// copyFile(sourceFile, destFile, filters, filterChains, overwrite, preserveLastModified,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 466</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// false, inputEncoding, outputEncoding, project);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 467</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 468</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 469</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 470</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Convenience method to copy a file from a source to a</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 471</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * destination specifying if token filtering must be used, if</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 472</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * filter chains must be used, if source files may overwrite</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 473</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * newer destination files and the last modified time of</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 474</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * <code>destFile</code> file should be made equal</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 475</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * to the last modified time of <code>sourceFile</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 476</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 477</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param sourceFile the file to copy from.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 478</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 479</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param destFile the file to copy to.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 480</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 481</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filters the collection of filters to apply to this copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 482</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filterChains filterChains to apply during the copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 483</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param overwrite Whether or not the destination file should be</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 484</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * overwritten if it already exists.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 485</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param preserveLastModified Whether or not the last modified time of</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 486</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * the resulting file should be set to that</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 487</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * of the source file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 488</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param append whether to append to the destination file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 489</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param inputEncoding the encoding used to read the files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 490</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param outputEncoding the encoding used to write the files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 491</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param project the project instance.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 492</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 493</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 494</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the copying fails.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 495</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 496</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @since Ant 1.8</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 497</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 498</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void copyFile(File sourceFile, File destFile,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 499</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// FilterSetCollection filters, Vector filterChains,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 500</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// boolean overwrite, boolean preserveLastModified,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 501</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// boolean append,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 502</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// String inputEncoding, String outputEncoding,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 503</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// Project project) throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 504</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// copyFile(sourceFile, destFile, filters, filterChains, overwrite,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 505</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// preserveLastModified, append, inputEncoding, outputEncoding,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 506</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// project, /* force: */ false);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 507</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 508</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 509</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 510</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Convenience method to copy a file from a source to a</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 511</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * destination specifying if token filtering must be used, if</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 512</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * filter chains must be used, if source files may overwrite</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 513</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * newer destination files and the last modified time of</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 514</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * <code>destFile</code> file should be made equal</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 515</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * to the last modified time of <code>sourceFile</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 516</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 517</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param sourceFile the file to copy from.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 518</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 519</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param destFile the file to copy to.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 520</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Must not be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 521</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filters the collection of filters to apply to this copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 522</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param filterChains filterChains to apply during the copy.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 523</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param overwrite Whether or not the destination file should be</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 524</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * overwritten if it already exists.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 525</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param preserveLastModified Whether or not the last modified time of</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 526</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * the resulting file should be set to that</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 527</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * of the source file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 528</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param append whether to append to the destination file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 529</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param inputEncoding the encoding used to read the files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 530</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param outputEncoding the encoding used to write the files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 531</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param project the project instance.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 532</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param force whether to overwrite read-only destination files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 533</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 534</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the copying fails.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 535</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 536</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @since Ant 1.8.2</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 537</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 538</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void copyFile(File sourceFile, File destFile,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 539</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// FilterSetCollection filters, Vector filterChains,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 540</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// boolean overwrite, boolean preserveLastModified,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 541</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// boolean append,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 542</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// String inputEncoding, String outputEncoding,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 543</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// Project project, boolean force) throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 544</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// ResourceUtils.copyResource(new FileResource(sourceFile),</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 545</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// new FileResource(destFile),</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 546</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// filters, filterChains, overwrite,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 547</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// preserveLastModified, append, inputEncoding,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 548</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// outputEncoding, project, force);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 549</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 550</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 551</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// // CheckStyle:ParameterNumberCheck ON</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 552</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 553</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 554</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Calls File.setLastModified(long time). Originally written to</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 555</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * to dynamically bind to that call on Java1.2+.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 556</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 557</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param file the file whose modified time is to be set</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 558</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param time the time to which the last modified time is to be set.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 559</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * if this is -1, the current time is used.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 560</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 561</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void setFileLastModified(File file, long time) {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 562</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// ResourceUtils.setLastModified(new FileResource(file), time);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 563</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 564</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 565</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Interpret the filename as a file relative to the given file unless the filename already represents an absolute</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 566</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * filename. Differs from <code>new File(file, filename)</code> in that the resulting File's path will always be a</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 567</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * normalized, absolute pathname. Also, if it is determined that <code>filename</code> is context-relative,</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 568</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <code>file</code> will be discarded and the reference will be resolved using available context/state information</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 569</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * about the filesystem.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 570</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 571</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param file the "reference" file for relative paths. This instance must be an absolute file and must not contain</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 572</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * &quot;./&quot; or &quot;../&quot; sequences (same for \ instead of /). If it is null, this call is equivalent to</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 573</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <code>new java.io.File(filename).getAbsoluteFile()</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 574</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 575</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param filename a file name.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 576</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 577</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return an absolute file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 578</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @throws java.lang.NullPointerException if filename is null.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 579</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 580</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> File resolveFile(File file, String filename) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 581</td> <td class="nbHitsUncovered"><a title="Line 581: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 581: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (!isAbsolutePath(filename)) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 582</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">char</span> sep = File.separatorChar;</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 583</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> filename = filename.replace(<span class="string">'/'</span>, sep).replace(<span class="string">'\\'</span>, sep);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 584</td> <td class="nbHitsUncovered"><a title="Line 584: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 584: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (isContextRelativePath(filename)) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 585</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> file = <span class="keyword">null</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 586</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// on cygwin, our current directory can be a UNC;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 587</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// assume user.dir is absolute or all hell breaks loose...</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 588</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String udir = System.getProperty(<span class="string">"user.dir"</span>);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 589</td> <td class="nbHitsUncovered"><a title="Line 589: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 589: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (filename.charAt(0) == sep && udir.charAt(0) == sep) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 590</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> filename = dissect(udir)[0] + filename.substring(1);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 591</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 592</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 593</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> filename = <span class="keyword">new</span> File(file, filename).getAbsolutePath();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 594</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 595</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> normalize(filename);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 596</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 597</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 598</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 599</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * On DOS and NetWare, the evaluation of certain file specifications is context-dependent. These are filenames</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 600</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * beginning with a single separator (relative to current root directory) and filenames with a drive specification</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 601</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * and no intervening separator (relative to current directory of the specified root).</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 602</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 603</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param filename the filename to evaluate.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 604</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return true if the filename is relative to system context.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 605</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @throws java.lang.NullPointerException if filename is null.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 606</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.7</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 607</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 608</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">boolean</span> isContextRelativePath(String filename) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 609</td> <td class="nbHitsUncovered"><a title="Line 609: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 609: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> <span class="keyword">if</span> (!(ON_DOS || ON_NETWARE) || filename.length() == 0) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 610</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 611</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 612</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">char</span> sep = File.separatorChar;</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 613</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> filename = filename.replace(<span class="string">'/'</span>, sep).replace(<span class="string">'\\'</span>, sep);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 614</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">char</span> c = filename.charAt(0);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 615</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">int</span> len = filename.length();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 616</td> <td class="nbHitsUncovered"><a title="Line 616: Conditional coverage 0% (0/16) [each condition: 0%, 0%, 0%, 0%, 0%, 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 616: Conditional coverage 0% (0/16) [each condition: 0%, 0%, 0%, 0%, 0%, 0%, 0%, 0%]."> <span class="keyword">return</span> (c == sep && (len == 1 || filename.charAt(1) != sep))</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 617</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> || (Character.isLetter(c) && len > 1</pre></td></tr>
|
|
<tr> <td class="numLine"> 618</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> && filename.charAt(1) == <span class="string">':'</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 619</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> && (len == 2 || filename.charAt(2) != sep));</pre></td></tr>
|
|
<tr> <td class="numLine"> 620</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 621</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 622</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 623</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Verifies that the specified filename represents an absolute path. Differs from new</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 624</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * java.io.File("filename").isAbsolute() in that a path beginning with a double file separator--signifying a Windows</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 625</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * UNC--must at minimum match "\\a\b" to be considered an absolute path.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 626</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 627</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param filename the filename to be checked.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 628</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return true if the filename represents an absolute path.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 629</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @throws java.lang.NullPointerException if filename is null.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 630</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.6.3</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 631</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 632</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">boolean</span> isAbsolutePath(String filename) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 633</td> <td class="nbHitsCovered"> 96</td> <td class="src"><pre class="src"> <span class="keyword">int</span> len = filename.length();</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 634</td> <td class="nbHitsUncovered"><a title="Line 634: Conditional coverage 50% (1/2)."> 96</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 634: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (len == 0) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 635</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 636</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 637</td> <td class="nbHitsCovered"> 96</td> <td class="src"><pre class="src"> <span class="keyword">char</span> sep = File.separatorChar;</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 638</td> <td class="nbHitsCovered"> 96</td> <td class="src"><pre class="src"> filename = filename.replace(<span class="string">'/'</span>, sep).replace(<span class="string">'\\'</span>, sep);</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 639</td> <td class="nbHitsCovered"> 96</td> <td class="src"><pre class="src"> <span class="keyword">char</span> c = filename.charAt(0);</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 640</td> <td class="nbHitsUncovered"><a title="Line 640: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> 96</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 640: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> <span class="keyword">if</span> (!(ON_DOS || ON_NETWARE)) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 641</td> <td class="nbHitsUncovered"><a title="Line 641: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 641: Conditional coverage 0% (0/2)."> <span class="keyword">return</span> (c == sep);</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 642</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 643</td> <td class="nbHitsCovered"><a title="Line 643: Conditional coverage 100% (2/2)."> 96</a></td> <td class="src"><pre class="src"> <a title="Line 643: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (c == sep) {</a></pre></td></tr>
|
|
<tr> <td class="numLine"> 644</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// CheckStyle:MagicNumber OFF</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 645</td> <td class="nbHitsUncovered"><a title="Line 645: Conditional coverage 50% (3/6) [each condition: 50%, 50%, 50%]."> 16</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 645: Conditional coverage 50% (3/6) [each condition: 50%, 50%, 50%]."> <span class="keyword">if</span> (!(ON_DOS && len > 4 && filename.charAt(1) == sep)) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 646</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr>
|
|
<tr> <td class="numLine"> 647</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 648</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// CheckStyle:MagicNumber ON</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 649</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">int</span> nextsep = filename.indexOf(sep, 2);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 650</td> <td class="nbHitsUncovered"><a title="Line 650: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 650: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">return</span> nextsep > 2 && nextsep + 1 < len;</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 651</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 652</td> <td class="nbHitsCovered"> 80</td> <td class="src"><pre class="src"> <span class="keyword">int</span> colon = filename.indexOf(<span class="string">':'</span>);</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 653</td> <td class="nbHitsUncovered"><a title="Line 653: Conditional coverage 50% (6/12) [each condition: 50%, 100%, 50%, 50%, 50%, 0%]."> 80</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 653: Conditional coverage 50% (6/12) [each condition: 50%, 100%, 50%, 50%, 50%, 0%]."> <span class="keyword">return</span> (Character.isLetter(c) && colon == 1</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 654</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> && filename.length() > 2 && filename.charAt(2) == sep)</pre></td></tr>
|
|
<tr> <td class="numLine"> 655</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> || (ON_NETWARE && colon > 0);</pre></td></tr>
|
|
<tr> <td class="numLine"> 656</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 657</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 658</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 659</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Translate a path into its native (platform specific) format.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 660</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 661</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * This method uses PathTokenizer to separate the input path into its components. This handles DOS style paths in a</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 662</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * relatively sensible way. The file separators are then converted to their platform specific versions.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 663</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 664</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param toProcess The path to be translated. May be <code>null</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 665</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 666</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return the native version of the specified path or an empty string if the path is <code>null</code> or empty.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 667</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 668</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since ant 1.7</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 669</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @see PathTokenizer</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 670</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 671</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> String translatePath(String toProcess) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 672</td> <td class="nbHitsUncovered"><a title="Line 672: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 672: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (toProcess == <span class="keyword">null</span> || toProcess.length() == 0) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 673</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="string">""</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 674</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 675</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> StringBuffer path = <span class="keyword">new</span> StringBuffer(toProcess.length() + EXPAND_SPACE);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 676</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> PathTokenizer tokenizer = <span class="keyword">new</span> PathTokenizer(toProcess);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 677</td> <td class="nbHitsUncovered"><a title="Line 677: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 677: Conditional coverage 0% (0/2)."> <span class="keyword">while</span> (tokenizer.hasMoreTokens()) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 678</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String pathComponent = tokenizer.nextToken();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 679</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> pathComponent = pathComponent.replace(<span class="string">'/'</span>, File.separatorChar);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 680</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> pathComponent = pathComponent.replace(<span class="string">'\\'</span>, File.separatorChar);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 681</td> <td class="nbHitsUncovered"><a title="Line 681: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 681: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (path.length() != 0) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 682</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> path.append(File.pathSeparatorChar);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 683</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 684</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> path.append(pathComponent);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 685</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 686</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> path.toString();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 687</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 688</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 689</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 690</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * &quot;Normalize&quot; the given absolute path.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 691</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 692</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 693</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * This includes:</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 694</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <ul></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 695</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <li>Uppercase the drive letter if there is one.</li></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 696</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <li>Remove redundant slashes after the drive spec.</li></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 697</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <li>Resolve all ./, .\, ../ and ..\ sequences.</li></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 698</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <li>DOS style paths that start with a drive letter will have \ as the separator.</li></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 699</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * </ul></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 700</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Unlike {@link File#getCanonicalPath()} this method specifically does not resolve symbolic links.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 701</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 702</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param path the path to be normalized.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 703</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return the normalized version of the path.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 704</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 705</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @throws java.lang.NullPointerException if path is null.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 706</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 707</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> File normalize(<span class="keyword">final</span> String path) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 708</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> Stack s = <span class="keyword">new</span> Stack();</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 709</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> String[] dissect = dissect(path);</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 710</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> s.push(dissect[0]);</pre></td></tr>
|
|
<tr> <td class="numLine"> 711</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLineCover"> 712</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> StringTokenizer tok = <span class="keyword">new</span> StringTokenizer(dissect[1], File.separator);</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 713</td> <td class="nbHitsCovered"><a title="Line 713: Conditional coverage 100% (2/2)."> 120</a></td> <td class="src"><pre class="src"> <a title="Line 713: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (tok.hasMoreTokens()) {</a></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 714</td> <td class="nbHitsCovered"> 104</td> <td class="src"><pre class="src"> String thisToken = tok.nextToken();</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 715</td> <td class="nbHitsUncovered"><a title="Line 715: Conditional coverage 50% (1/2)."> 104</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 715: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="string">"."</span>.equals(thisToken)) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 716</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">continue</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 717</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 718</td> <td class="nbHitsUncovered"><a title="Line 718: Conditional coverage 50% (1/2)."> 104</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 718: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="string">".."</span>.equals(thisToken)) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 719</td> <td class="nbHitsUncovered"><a title="Line 719: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 719: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (s.size() < 2) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 720</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// Cannot resolve it, so skip it.</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 721</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">new</span> File(path);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 722</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 723</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> s.pop();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 724</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> } <span class="keyword">else</span> { <span class="comment">// plain component</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 725</td> <td class="nbHitsCovered"> 104</td> <td class="src"><pre class="src"> s.push(thisToken);</pre></td></tr>
|
|
<tr> <td class="numLine"> 726</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 727</td> <td class="nbHitsCovered"> 104</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 728</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> StringBuffer sb = <span class="keyword">new</span> StringBuffer();</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 729</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">int</span> size = s.size();</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 730</td> <td class="nbHitsCovered"><a title="Line 730: Conditional coverage 100% (2/2)."> 136</a></td> <td class="src"><pre class="src"> <a title="Line 730: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < size; i++) {</a></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 731</td> <td class="nbHitsCovered"><a title="Line 731: Conditional coverage 100% (2/2)."> 120</a></td> <td class="src"><pre class="src"> <a title="Line 731: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (i > 1) {</a></pre></td></tr>
|
|
<tr> <td class="numLine"> 732</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// not before the filesystem root and not after it, since root</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 733</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// already contains one</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 734</td> <td class="nbHitsCovered"> 88</td> <td class="src"><pre class="src"> sb.append(File.separatorChar);</pre></td></tr>
|
|
<tr> <td class="numLine"> 735</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 736</td> <td class="nbHitsCovered"> 120</td> <td class="src"><pre class="src"> sb.append(s.elementAt(i));</pre></td></tr>
|
|
<tr> <td class="numLine"> 737</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 738</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> File(sb.toString());</pre></td></tr>
|
|
<tr> <td class="numLine"> 739</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 740</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 741</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 742</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Dissect the specified absolute path.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 743</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 744</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param path the path to dissect.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 745</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return String[] {root, remaining path}.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 746</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @throws java.lang.NullPointerException if path is null.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 747</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.7</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 748</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 749</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> String[] dissect(String path) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 750</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> <span class="keyword">char</span> sep = File.separatorChar;</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 751</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> path = path.replace(<span class="string">'/'</span>, sep).replace(<span class="string">'\\'</span>, sep);</pre></td></tr>
|
|
<tr> <td class="numLine"> 752</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 753</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// make sure we are dealing with an absolute path</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 754</td> <td class="nbHitsUncovered"><a title="Line 754: Conditional coverage 50% (1/2)."> 16</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 754: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!isAbsolutePath(path)) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 755</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> BuildException(path + <span class="string">" is not an absolute path"</span>);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 756</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 757</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> String root = <span class="keyword">null</span>;</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 758</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> <span class="keyword">int</span> colon = path.indexOf(<span class="string">':'</span>);</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 759</td> <td class="nbHitsUncovered"><a title="Line 759: Conditional coverage 33% (2/6) [each condition: 50%, 50%, 0%]."> 16</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 759: Conditional coverage 33% (2/6) [each condition: 50%, 50%, 0%]."> <span class="keyword">if</span> (colon > 0 && (ON_DOS || ON_NETWARE)) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 760</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLineCover"> 761</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> <span class="keyword">int</span> next = colon + 1;</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 762</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> root = path.substring(0, next);</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 763</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> <span class="keyword">char</span>[] ca = path.toCharArray();</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 764</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> root += sep;</pre></td></tr>
|
|
<tr> <td class="numLine"> 765</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//remove the initial separator; the root has it.</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 766</td> <td class="nbHitsUncovered"><a title="Line 766: Conditional coverage 50% (1/2)."> 16</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 766: Conditional coverage 50% (1/2)."> next = (ca[next] == sep) ? next + 1 : next;</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 767</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLineCover"> 768</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> StringBuffer sbPath = <span class="keyword">new</span> StringBuffer();</pre></td></tr>
|
|
<tr> <td class="numLine"> 769</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// Eliminate consecutive slashes after the drive spec:</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 770</td> <td class="nbHitsCovered"><a title="Line 770: Conditional coverage 100% (2/2)."> 1192</a></td> <td class="src"><pre class="src"> <a title="Line 770: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = next; i < ca.length; i++) {</a></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 771</td> <td class="nbHitsUncovered"><a title="Line 771: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 1176</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 771: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (ca[i] != sep || ca[i - 1] != sep) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 772</td> <td class="nbHitsCovered"> 1176</td> <td class="src"><pre class="src"> sbPath.append(ca[i]);</pre></td></tr>
|
|
<tr> <td class="numLine"> 773</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 774</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 775</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> path = sbPath.toString();</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 776</td> <td class="nbHitsUncovered"><a title="Line 776: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 16</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 776: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (path.length() > 1 && path.charAt(1) == sep) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 777</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// UNC drive</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 778</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">int</span> nextsep = path.indexOf(sep, 2);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 779</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> nextsep = path.indexOf(sep, nextsep + 1);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 780</td> <td class="nbHitsUncovered"><a title="Line 780: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 780: Conditional coverage 0% (0/2)."> root = (nextsep > 2) ? path.substring(0, nextsep + 1) : path;</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 781</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> path = path.substring(root.length());</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 782</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">else</span> {</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 783</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> root = File.separator;</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 784</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> path = path.substring(1);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 785</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 786</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> String[]{root, path};</pre></td></tr>
|
|
<tr> <td class="numLine"> 787</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 788</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 789</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 790</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Returns a VMS String representation of a <code>File</code> object. This is useful since the JVM by default</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 791</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * internally converts VMS paths to Unix style. The returned String is always an absolute path.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 792</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 793</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param f The <code>File</code> to get the VMS path for.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 794</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return The absolute VMS path to <code>f</code>.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 795</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 796</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> String toVMSPath(File f) {</pre></td></tr>
|
|
<tr> <td class="numLine"> 797</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// format: "DEVICE:[DIR.SUBDIR]FILE"</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 798</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> String osPath;</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 799</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String path = normalize(f.getAbsolutePath()).getPath();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 800</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String name = f.getName();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 801</td> <td class="nbHitsUncovered"><a title="Line 801: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 801: Conditional coverage 0% (0/2)."> <span class="keyword">boolean</span> isAbsolute = path.charAt(0) == File.separatorChar;</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 802</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// treat directories specified using .DIR syntax as files</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 803</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// CheckStyle:MagicNumber OFF</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 804</td> <td class="nbHitsUncovered"><a title="Line 804: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 804: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">boolean</span> isDirectory = f.isDirectory()</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 805</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> && !name.regionMatches(<span class="keyword">true</span>, name.length() - 4, <span class="string">".DIR"</span>, 0, 4);</pre></td></tr>
|
|
<tr> <td class="numLine"> 806</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// CheckStyle:MagicNumber ON</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 807</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String device = <span class="keyword">null</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 808</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> StringBuffer directory = <span class="keyword">null</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 809</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String file = <span class="keyword">null</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 810</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLineCover"> 811</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">int</span> index = 0;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 812</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLineCover"> 813</td> <td class="nbHitsUncovered"><a title="Line 813: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 813: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (isAbsolute) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 814</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> index = path.indexOf(File.separatorChar, 1);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 815</td> <td class="nbHitsUncovered"><a title="Line 815: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 815: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (index == -1) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 816</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> path.substring(1) + <span class="string">":[000000]"</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 817</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 818</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> device = path.substring(1, index++);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 819</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 820</td> <td class="nbHitsUncovered"><a title="Line 820: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 820: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (isDirectory) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 821</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> directory = <span class="keyword">new</span> StringBuffer(path.substring(index).replace(File.separatorChar, <span class="string">'.'</span>));</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 822</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 823</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">int</span> dirEnd = path.lastIndexOf(File.separatorChar, path.length());</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 824</td> <td class="nbHitsUncovered"><a title="Line 824: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 824: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (dirEnd == -1 || dirEnd < index) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 825</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> file = path.substring(index);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 826</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 827</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> directory = <span class="keyword">new</span> StringBuffer(path.substring(index, dirEnd).</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 828</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> replace(File.separatorChar, <span class="string">'.'</span>));</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 829</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> index = dirEnd + 1;</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 830</td> <td class="nbHitsUncovered"><a title="Line 830: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 830: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (path.length() > index) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 831</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> file = path.substring(index);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 832</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 833</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 834</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 835</td> <td class="nbHitsUncovered"><a title="Line 835: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 835: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (!isAbsolute && directory != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 836</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> directory.insert(0, <span class="string">'.'</span>);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 837</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 838</td> <td class="nbHitsUncovered"><a title="Line 838: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 838: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> osPath = ((device != <span class="keyword">null</span>) ? device + <span class="string">":"</span> : <span class="string">""</span>)</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 839</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> + ((directory != <span class="keyword">null</span>) ? <span class="string">"["</span> + directory + <span class="string">"]"</span> : <span class="string">""</span>)</pre></td></tr>
|
|
<tr> <td class="numLine"> 840</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> + ((file != <span class="keyword">null</span>) ? file : <span class="string">""</span>);</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 841</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> osPath;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 842</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 843</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 844</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 845</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Create a File object for a temporary file in a given directory. Without actually creating the file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 846</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 847</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 848</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * The file denoted by the returned abstract pathname did not exist before this method was invoked, any subsequent</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 849</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * invocation of this method will yield a different file name.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 850</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * </p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 851</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 852</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * The filename is prefixNNNNNsuffix where NNNN is a random number.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 853</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * </p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 854</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 855</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param prefix prefix before the random number.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 856</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param suffix file extension; include the '.'.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 857</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param parentDir Directory to create the temporary file in; java.io.tmpdir used if not specified.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 858</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 859</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @deprecated since ant 1.7.1 use createTempFile(String, String, File, boolean, boolean) instead.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 860</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return a File reference to the new, nonexistent temporary file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 861</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 862</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> File createTempFile(String prefix, String suffix, File parentDir) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 863</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> createTempFile(prefix, suffix, parentDir, <span class="keyword">false</span>, <span class="keyword">false</span>);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 864</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 865</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 866</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String NULL_PLACEHOLDER = <span class="string">"null"</span>;</pre></td></tr>
|
|
<tr> <td class="numLine"> 867</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 868</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 869</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Create a temporary file in a given directory.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 870</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 871</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 872</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * The file denoted by the returned abstract pathname did not exist before this method was invoked, any subsequent</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 873</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * invocation of this method will yield a different file name.</p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 874</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 875</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param prefix prefix before the random number.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 876</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param suffix file extension; include the '.'.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 877</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param parentDir Directory to create the temporary file in; java.io.tmpdir used if not specified.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 878</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param deleteOnExit whether to set the tempfile for deletion on normal VM exit.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 879</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param createFile true if the file must actually be created. If false chances exist that a file with the same</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 880</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * name is created in the time between invoking this method and the moment the file is actually created. If possible</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 881</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * set to true.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 882</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 883</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return a File reference to the new temporary file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 884</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.7.1</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 885</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 886</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> File createTempFile(String prefix, String suffix, File parentDir,</pre></td></tr>
|
|
<tr> <td class="numLine"> 887</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">boolean</span> deleteOnExit, <span class="keyword">boolean</span> createFile) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 888</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File result = <span class="keyword">null</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 889</td> <td class="nbHitsUncovered"><a title="Line 889: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 889: Conditional coverage 0% (0/2)."> String parent = (parentDir == <span class="keyword">null</span>)</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 890</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> ? System.getProperty(<span class="string">"java.io.tmpdir"</span>)</pre></td></tr>
|
|
<tr> <td class="numLine"> 891</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> : parentDir.getPath();</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 892</td> <td class="nbHitsUncovered"><a title="Line 892: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 892: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (prefix == <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 893</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> prefix = NULL_PLACEHOLDER;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 894</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 895</td> <td class="nbHitsUncovered"><a title="Line 895: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 895: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (suffix == <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 896</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> suffix = NULL_PLACEHOLDER;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 897</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 898</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLineCover"> 899</td> <td class="nbHitsUncovered"><a title="Line 899: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 899: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (createFile) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 900</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 901</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> result = File.createTempFile(prefix, suffix, <span class="keyword">new</span> File(parent));</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 902</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException e) {</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 903</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> BuildException(<span class="string">"Could not create tempfile in "</span></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 904</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> + parent, e);</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 905</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 906</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 907</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> DecimalFormat fmt = <span class="keyword">new</span> DecimalFormat(<span class="string">"#####"</span>);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 908</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">synchronized</span> (rand) {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 909</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">do</span> {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 910</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> result = <span class="keyword">new</span> File(parent, prefix</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 911</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> + fmt.format(rand.nextInt(Integer.MAX_VALUE)) + suffix);</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 912</td> <td class="nbHitsUncovered"><a title="Line 912: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 912: Conditional coverage 0% (0/2)."> } <span class="keyword">while</span> (result.exists());</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 913</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 914</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 915</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLineCover"> 916</td> <td class="nbHitsUncovered"><a title="Line 916: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 916: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (deleteOnExit) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 917</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> result.deleteOnExit();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 918</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 919</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> result;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 920</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 921</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 922</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 923</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Create a File object for a temporary file in a given directory. Without actually creating the file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 924</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 925</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 926</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * The file denoted by the returned abstract pathname did not exist before this method was invoked, any subsequent</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 927</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * invocation of this method will yield a different file name.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 928</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * </p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 929</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 930</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * The filename is prefixNNNNNsuffix where NNNN is a random number.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 931</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * </p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 932</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 933</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param prefix prefix before the random number.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 934</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param suffix file extension; include the '.'.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 935</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param parentDir Directory to create the temporary file in; java.io.tmpdir used if not specified.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 936</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param deleteOnExit whether to set the tempfile for deletion on normal VM exit.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 937</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 938</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @deprecated since ant 1.7.1 use createTempFile(String, String, File, boolean, boolean) instead.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 939</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return a File reference to the new, nonexistent temporary file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 940</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 941</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> File createTempFile(String prefix, String suffix,</pre></td></tr>
|
|
<tr> <td class="numLine"> 942</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> File parentDir, <span class="keyword">boolean</span> deleteOnExit) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 943</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> createTempFile(prefix, suffix, parentDir, deleteOnExit, <span class="keyword">false</span>);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 944</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 945</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 946</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 947</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Compares the contents of two files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 948</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 949</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param f1 the file whose content is to be compared.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 950</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param f2 the other file whose content is to be compared.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 951</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 952</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @return true if the content of the files is the same.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 953</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 954</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the files cannot be read.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 955</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 956</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public boolean contentEquals(File f1, File f2) throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 957</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// return contentEquals(f1, f2, false);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 958</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 959</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 960</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 961</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Compares the contents of two files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 962</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 963</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param f1 the file whose content is to be compared.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 964</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param f2 the other file whose content is to be compared.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 965</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param textfile true if the file is to be treated as a text file and</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 966</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * differences in kind of line break are to be ignored.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 967</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 968</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @return true if the content of the files is the same.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 969</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 970</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if the files cannot be read.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 971</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @since Ant 1.6.3</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 972</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 973</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public boolean contentEquals(File f1, File f2, boolean textfile) throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 974</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// return ResourceUtils.contentEquals(new FileResource(f1), new FileResource(f2), textfile);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 975</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 976</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 977</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * This was originally an emulation of {@link File#getParentFile} for JDK 1.1, but it is now implemented using that</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 978</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * method (Ant 1.6.3 onwards).</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 979</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 980</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param f the file whose parent is required.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 981</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return the given file's parent, or null if the file does not have a parent.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 982</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since 1.10</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 983</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @deprecated since 1.7. Just use {@link File#getParentFile} directly.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 984</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 985</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> File getParentFile(File f) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 986</td> <td class="nbHitsUncovered"><a title="Line 986: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 986: Conditional coverage 0% (0/2)."> <span class="keyword">return</span> (f == <span class="keyword">null</span>) ? <span class="keyword">null</span> : f.getParentFile();</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 987</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 988</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 989</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 990</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Read from reader till EOF.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 991</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 992</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param rdr the reader from which to read.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 993</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return the contents read out of the given reader.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 994</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 995</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @throws IOException if the contents could not be read out from the reader.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 996</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 997</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> String readFully(Reader rdr) <span class="keyword">throws</span> IOException {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 998</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> readFully(rdr, BUF_SIZE);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 999</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1000</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1001</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1002</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Read from reader till EOF.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1003</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1004</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param rdr the reader from which to read.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1005</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param bufferSize the buffer size to use when reading.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1006</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1007</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return the contents read out of the given reader.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1008</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1009</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @throws IOException if the contents could not be read out from the reader.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1010</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1011</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> String readFully(Reader rdr, <span class="keyword">int</span> bufferSize)</pre></td></tr>
|
|
<tr> <td class="numLine"> 1012</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">throws</span> IOException {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1013</td> <td class="nbHitsUncovered"><a title="Line 1013: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1013: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (bufferSize <= 0) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1014</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IllegalArgumentException(<span class="string">"Buffer size must be greater "</span></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1015</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> + <span class="string">"than 0"</span>);</pre></td></tr>
|
|
<tr> <td class="numLine"> 1016</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1017</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> <span class="keyword">char</span>[] buffer = <span class="keyword">new</span> <span class="keyword">char</span>[bufferSize];</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1018</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">int</span> bufferLength = 0;</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1019</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> StringBuffer textBuffer = <span class="keyword">null</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1020</td> <td class="nbHitsUncovered"><a title="Line 1020: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1020: Conditional coverage 0% (0/2)."> <span class="keyword">while</span> (bufferLength != -1) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1021</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> bufferLength = rdr.read(buffer);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1022</td> <td class="nbHitsUncovered"><a title="Line 1022: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1022: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (bufferLength > 0) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1023</td> <td class="nbHitsUncovered"><a title="Line 1023: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1023: Conditional coverage 0% (0/2)."> textBuffer = (textBuffer == <span class="keyword">null</span>) ? <span class="keyword">new</span> StringBuffer() : textBuffer;</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1024</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> textBuffer.append(<span class="keyword">new</span> String(buffer, 0, bufferLength));</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1025</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1026</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1027</td> <td class="nbHitsUncovered"><a title="Line 1027: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1027: Conditional coverage 0% (0/2)."> <span class="keyword">return</span> (textBuffer == <span class="keyword">null</span>) ? <span class="keyword">null</span> : textBuffer.toString();</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1028</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1029</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1030</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1031</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Safe read fully - do not return a null for an empty reader.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1032</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1033</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param reader the input to read from.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1034</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return the string.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1035</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @throws IOException if unable to read from reader.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1036</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.7.1</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1037</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1038</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> String safeReadFully(Reader reader) <span class="keyword">throws</span> IOException {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1039</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String ret = readFully(reader);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1040</td> <td class="nbHitsUncovered"><a title="Line 1040: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1040: Conditional coverage 0% (0/2)."> <span class="keyword">return</span> ret == <span class="keyword">null</span> ? <span class="string">""</span> : ret;</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1041</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1042</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1043</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1044</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * This was originally an emulation of File.createNewFile for JDK 1.1, but it is now implemented using that method</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1045</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * (Ant 1.6.3 onwards).</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1046</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1047</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1048</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * This method has historically <strong>not</strong> guaranteed that the operation was atomic. In its current</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1049</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * implementation it is.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1050</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1051</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param f the file to be created.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1052</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return true if the file did not exist already.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1053</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @throws IOException on error.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1054</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.5</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1055</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1056</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> createNewFile(File f) <span class="keyword">throws</span> IOException {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1057</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> f.createNewFile();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1058</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1059</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1060</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1061</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Create a new file, optionally creating parent directories.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1062</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1063</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param f the file to be created.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1064</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param mkdirs <code>boolean</code> whether to create parent directories.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1065</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return true if the file did not exist already.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1066</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @throws IOException on error.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1067</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.6.3</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1068</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1069</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> createNewFile(File f, <span class="keyword">boolean</span> mkdirs) <span class="keyword">throws</span> IOException {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1070</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File parent = f.getParentFile();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1071</td> <td class="nbHitsUncovered"><a title="Line 1071: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1071: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (mkdirs && !(parent.exists())) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1072</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> parent.mkdirs();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1073</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1074</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> f.createNewFile();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1075</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1076</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1077</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1078</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Checks whether a given file is a symbolic link.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1079</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1080</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1081</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * It doesn't really test for symbolic links but whether the canonical and absolute paths of the file are</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1082</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * identical--this may lead to false positives on some platforms.</p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1083</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1084</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param parent the parent directory of the file to test</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1085</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param name the name of the file to test.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1086</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1087</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return true if the file is a symbolic link.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1088</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @throws IOException on error.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1089</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.5</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1090</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @deprecated use SymbolicLinkUtils instead</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1091</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1092</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> isSymbolicLink(File parent, String name)</pre></td></tr>
|
|
<tr> <td class="numLine"> 1093</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">throws</span> IOException {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1094</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> SymbolicLinkUtils u = SymbolicLinkUtils.getSymbolicLinkUtils();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1095</td> <td class="nbHitsUncovered"><a title="Line 1095: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1095: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (parent == <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1096</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> u.isSymbolicLink(name);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1097</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1098</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> u.isSymbolicLink(parent, name);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1099</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1100</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1101</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1102</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Removes a leading path from a second path.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1103</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1104</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param leading The leading path, must not be null, must be absolute.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1105</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param path The path to remove from, must not be null, must be absolute.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1106</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1107</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return path's normalized absolute if it doesn't start with leading; path's path with leading's path removed</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1108</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * otherwise.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1109</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1110</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.5</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1111</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1112</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> String removeLeadingPath(File leading, File path) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1113</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> String l = normalize(leading.getAbsolutePath()).getAbsolutePath();</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1114</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> String p = normalize(path.getAbsolutePath()).getAbsolutePath();</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1115</td> <td class="nbHitsUncovered"><a title="Line 1115: Conditional coverage 50% (1/2)."> 8</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1115: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (l.equals(p)) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1116</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="string">""</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1117</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1118</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// ensure that l ends with a /</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1119</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// so we never think /foo was a parent directory of /foobar</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1120</td> <td class="nbHitsUncovered"><a title="Line 1120: Conditional coverage 50% (1/2)."> 8</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1120: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!l.endsWith(File.separator)) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1121</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> l += File.separator;</pre></td></tr>
|
|
<tr> <td class="numLine"> 1122</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1123</td> <td class="nbHitsUncovered"><a title="Line 1123: Conditional coverage 50% (1/2)."> 8</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1123: Conditional coverage 50% (1/2)."> <span class="keyword">return</span> (p.startsWith(l)) ? p.substring(l.length()) : p;</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1124</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1125</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1126</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1127</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Learn whether one path "leads" another.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1128</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1129</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param leading The leading path, must not be null, must be absolute.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1130</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param path The path to remove from, must not be null, must be absolute.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1131</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return true if path starts with leading; false otherwise.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1132</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.7</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1133</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1134</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> isLeadingPath(File leading, File path) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1135</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String l = normalize(leading.getAbsolutePath()).getAbsolutePath();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1136</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String p = normalize(path.getAbsolutePath()).getAbsolutePath();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1137</td> <td class="nbHitsUncovered"><a title="Line 1137: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1137: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (l.equals(p)) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1138</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1139</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1140</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// ensure that l ends with a /</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1141</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// so we never think /foo was a parent directory of /foobar</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1142</td> <td class="nbHitsUncovered"><a title="Line 1142: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1142: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (!l.endsWith(File.separator)) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1143</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> l += File.separator;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1144</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1145</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> p.startsWith(l);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1146</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1147</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1148</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1149</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Constructs a <code>file:</code> URI that represents the external form of the given pathname.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1150</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1151</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1152</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Will be an absolute URI if the given path is absolute.</p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1153</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1154</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1155</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * This code encodes non ASCII characters too.</p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1156</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1157</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1158</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * The coding of the output is the same as what File.toURI().toASCIIString() produces</p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1159</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1160</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * See <a href="http://www.w3.org/TR/xml11/#dt-sysid">dt-sysid</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1161</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * which makes some mention of how characters not supported by URI Reference syntax should be escaped.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1162</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1163</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param path the path in the local file system.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1164</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return the URI version of the local path.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1165</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.6</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1166</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1167</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> String toURI(String path) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1168</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">new</span> File(path).toURI().toASCIIString();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1169</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1170</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1171</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1172</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Constructs a file path from a <code>file:</code> URI.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1173</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1174</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1175</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Will be an absolute path if the given URI is absolute.</p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1176</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1177</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1178</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Swallows '%' that are not followed by two characters, doesn't deal with non-ASCII characters.</p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1179</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1180</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param uri the URI designating a file in the local filesystem.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1181</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return the local file system path for the file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1182</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.6</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1183</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1184</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> String fromURI(String uri) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1185</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">synchronized</span> (cacheFromUriLock) {</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1186</td> <td class="nbHitsUncovered"><a title="Line 1186: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1186: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (uri.equals(cacheFromUriRequest)) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1187</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> cacheFromUriResponse;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1188</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1189</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String path = Locator.fromURI(uri);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1190</td> <td class="nbHitsUncovered"><a title="Line 1190: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1190: Conditional coverage 0% (0/2)."> String ret = isAbsolutePath(path) ? normalize(path).getAbsolutePath() : path;</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1191</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> cacheFromUriRequest = uri;</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1192</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> cacheFromUriResponse = ret;</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1193</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> ret;</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1194</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1195</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1196</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1197</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1198</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Compares two filenames.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1199</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1200</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1201</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Unlike java.io.File#equals this method will try to compare the absolute paths and &quot;normalize&quot; the</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1202</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * filenames before comparing them.</p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1203</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1204</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param f1 the file whose name is to be compared.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1205</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param f2 the other file whose name is to be compared.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1206</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1207</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return true if the file are for the same file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1208</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1209</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.5.3</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1210</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1211</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> fileNameEquals(File f1, File f2) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1212</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> normalize(f1.getAbsolutePath()).getAbsolutePath().equals(</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1213</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> normalize(f2.getAbsolutePath()).getAbsolutePath());</pre></td></tr>
|
|
<tr> <td class="numLine"> 1214</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1215</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1216</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1217</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Are the two File instances pointing to the same object on the file system?</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1218</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1219</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.8.2</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1220</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1221</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> areSame(File f1, File f2) <span class="keyword">throws</span> IOException {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1222</td> <td class="nbHitsUncovered"><a title="Line 1222: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1222: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (f1 == <span class="keyword">null</span> && f2 == <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1223</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1224</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1225</td> <td class="nbHitsUncovered"><a title="Line 1225: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1225: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (f1 == <span class="keyword">null</span> || f2 == <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1226</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1227</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1228</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File f1Normalized = normalize(f1.getAbsolutePath());</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1229</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File f2Normalized = normalize(f2.getAbsolutePath());</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1230</td> <td class="nbHitsUncovered"><a title="Line 1230: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1230: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">return</span> f1Normalized.equals(f2Normalized)</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1231</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> || f1Normalized.getCanonicalFile().equals(f2Normalized</pre></td></tr>
|
|
<tr> <td class="numLine"> 1232</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> .getCanonicalFile());</pre></td></tr>
|
|
<tr> <td class="numLine"> 1233</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1234</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1235</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// /**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1236</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * Renames a file, even if that involves crossing file system boundaries.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1237</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1238</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1239</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * This will remove <code>to</code> (if it exists), ensure that <code>to</code>'s parent directory exists and move</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1240</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * <code>from</code>, which involves deleting <code>from</code> as well.</p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1241</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1242</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param from the file to move.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1243</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @param to the new file name.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1244</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1245</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @throws IOException if anything bad happens during this process. Note that <code>to</code> may have been deleted</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1246</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * already when this happens.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1247</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1248</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// * @since Ant 1.6</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1249</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1250</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// public void rename(File from, File to) throws IOException {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1251</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// // identical logic lives in Move.renameFile():</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1252</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// from = normalize(from.getAbsolutePath()).getCanonicalFile();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1253</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// to = normalize(to.getAbsolutePath());</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1254</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// if (!from.exists()) {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1255</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// System.err.println("Cannot rename nonexistent file " + from);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1256</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// return;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1257</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1258</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// if (from.getAbsolutePath().equals(to.getAbsolutePath())) {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1259</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// System.err.println("Rename of " + from + " to " + to + " is a no-op.");</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1260</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// return;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1261</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1262</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// if (to.exists() && !(areSame(from, to) || tryHardToDelete(to))) {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1263</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// throw new IOException("Failed to delete " + to + " while trying to rename " + from);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1264</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1265</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// File parent = to.getParentFile();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1266</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// if (parent != null && !parent.isDirectory()</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1267</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// && !(parent.mkdirs() || parent.isDirectory())) {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1268</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// throw new IOException("Failed to create directory " + parent</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1269</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// + " while trying to rename " + from);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1270</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1271</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// if (!from.renameTo(to)) {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1272</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// copyFile(from, to);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1273</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// if (!tryHardToDelete(from)) {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1274</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// throw new IOException("Failed to delete " + from + " while trying to rename it.");</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1275</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1276</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1277</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1278</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1279</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1280</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Get the granularity of file timestamps. The choice is made based on OS, which is incorrect--it should really be</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1281</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * by filesystem. We do not have an easy way to probe for file systems, however, so this heuristic gives us a decent</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1282</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * default.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1283</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1284</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return the difference, in milliseconds, which two file timestamps must have in order for the two files to be</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1285</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * considered to have different timestamps.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1286</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1287</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">long</span> getFileTimestampGranularity() {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1288</td> <td class="nbHitsUncovered"><a title="Line 1288: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1288: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (ON_WIN9X) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1289</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> FAT_FILE_TIMESTAMP_GRANULARITY;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1290</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1291</td> <td class="nbHitsUncovered"><a title="Line 1291: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1291: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (ON_WINDOWS) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1292</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> NTFS_FILE_TIMESTAMP_GRANULARITY;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1293</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1294</td> <td class="nbHitsUncovered"><a title="Line 1294: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1294: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (ON_DOS) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1295</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> FAT_FILE_TIMESTAMP_GRANULARITY;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1296</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1297</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> UNIX_FILE_TIMESTAMP_GRANULARITY;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1298</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1299</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1300</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1301</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * test whether a file or directory exists, with an error in the upper/lower case spelling of the name. Using this</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1302</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * method is only interesting on case insensitive file systems (Windows).<br/></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1303</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * It will return true only if 3 conditions are met :</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1304</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <br/></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1305</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <ul></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1306</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <li>operating system is case insensitive</li></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1307</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <li>file exists</li></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1308</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <li>actual name from directory reading is different from the supplied argument</li></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1309</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * </ul></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1310</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <br/></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1311</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * the purpose is to identify files or directories on case-insensitive filesystems whose case is not what is</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1312</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * expected.<br/></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1313</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Possibly to rename them afterwards to the desired upper/lowercase combination.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1314</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <br/></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1315</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1316</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param localFile file to test</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1317</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return true if the file exists and the case of the actual file is not the case of the parameter</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1318</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.7.1</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1319</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1320</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> hasErrorInCase(File localFile) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1321</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> localFile = normalize(localFile.getAbsolutePath());</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1322</td> <td class="nbHitsUncovered"><a title="Line 1322: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1322: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (!localFile.exists()) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1323</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1324</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1325</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String localFileName = localFile.getName();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1326</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> FilenameFilter ff = <span class="keyword">new</span> FilenameFilter() {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1327</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> accept(File dir, String name) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1328</td> <td class="nbHitsUncovered"><a title="Line 1328: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1328: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">return</span> name.equalsIgnoreCase(localFileName) && (!name.equals(localFileName));</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1329</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1330</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> };</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1331</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String[] names = localFile.getParentFile().list(ff);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1332</td> <td class="nbHitsUncovered"><a title="Line 1332: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1332: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">return</span> names != <span class="keyword">null</span> && names.length == 1;</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1333</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1334</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1335</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1336</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Returns true if the source is older than the dest. If the dest file does not exist, then the test returns false;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1337</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * it is implicitly not up do date.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1338</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1339</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param source source file (should be the older).</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1340</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param dest dest file (should be the newer).</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1341</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param granularity an offset added to the source time.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1342</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return true if the source is older than the dest after accounting for granularity.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1343</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.6.3</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1344</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1345</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> isUpToDate(File source, File dest, <span class="keyword">long</span> granularity) {</pre></td></tr>
|
|
<tr> <td class="numLine"> 1346</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//do a check for the destination file existing</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1347</td> <td class="nbHitsUncovered"><a title="Line 1347: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1347: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (!dest.exists()) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1348</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//if it does not, then the file is not up to date.</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1349</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1350</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1351</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">long</span> sourceTime = source.lastModified();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1352</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">long</span> destTime = dest.lastModified();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1353</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> isUpToDate(sourceTime, destTime, granularity);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1354</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1355</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1356</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1357</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Returns true if the source is older than the dest.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1358</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1359</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param source source file (should be the older).</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1360</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param dest dest file (should be the newer).</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1361</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return true if the source is older than the dest, taking the granularity into account.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1362</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.6.3</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1363</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1364</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> isUpToDate(File source, File dest) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1365</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> isUpToDate(source, dest, getFileTimestampGranularity());</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1366</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1367</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1368</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1369</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Compare two timestamps for being up to date using the specified granularity.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1370</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1371</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param sourceTime timestamp of source file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1372</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param destTime timestamp of dest file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1373</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param granularity os/filesys granularity.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1374</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return true if the dest file is considered up to date.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1375</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1376</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> isUpToDate(<span class="keyword">long</span> sourceTime, <span class="keyword">long</span> destTime, <span class="keyword">long</span> granularity) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1377</td> <td class="nbHitsUncovered"><a title="Line 1377: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1377: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">return</span> destTime != -1 && destTime >= sourceTime + granularity;</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1378</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1379</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1380</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1381</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Compare two timestamps for being up to date using the current granularity.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1382</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1383</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param sourceTime timestamp of source file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1384</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param destTime timestamp of dest file.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1385</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return true if the dest file is considered up to date.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1386</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1387</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> isUpToDate(<span class="keyword">long</span> sourceTime, <span class="keyword">long</span> destTime) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1388</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> isUpToDate(sourceTime, destTime, getFileTimestampGranularity());</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1389</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1390</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1391</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1392</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Close a Writer without throwing any exception if something went wrong. Do not attempt to close it if the argument</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1393</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * is null.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1394</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1395</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param device output writer, can be null.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1396</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1397</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> close(Writer device) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1398</td> <td class="nbHitsUncovered"><a title="Line 1398: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1398: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (<span class="keyword">null</span> != device) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1399</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1400</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> device.close();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1401</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException e) {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1402</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//ignore</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1403</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1404</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1405</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1406</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1407</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1408</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Close a Reader without throwing any exception if something went wrong. Do not attempt to close it if the argument</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1409</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * is null.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1410</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1411</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param device Reader, can be null.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1412</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1413</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> close(Reader device) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1414</td> <td class="nbHitsUncovered"><a title="Line 1414: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1414: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (<span class="keyword">null</span> != device) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1415</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1416</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> device.close();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1417</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException e) {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1418</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//ignore</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1419</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1420</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1421</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1422</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1423</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1424</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Close a stream without throwing any exception if something went wrong. Do not attempt to close it if the argument</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1425</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * is null.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1426</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1427</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param device stream, can be null.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1428</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1429</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> close(OutputStream device) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1430</td> <td class="nbHitsUncovered"><a title="Line 1430: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1430: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (<span class="keyword">null</span> != device) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1431</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1432</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> device.close();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1433</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException e) {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1434</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//ignore</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1435</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1436</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1437</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1438</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1439</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1440</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Close a stream without throwing any exception if something went wrong. Do not attempt to close it if the argument</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1441</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * is null.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1442</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1443</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param device stream, can be null.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1444</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1445</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> close(InputStream device) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1446</td> <td class="nbHitsUncovered"><a title="Line 1446: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1446: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (<span class="keyword">null</span> != device) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1447</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1448</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> device.close();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1449</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException e) {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1450</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//ignore</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1451</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1452</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1453</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1454</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1455</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1456</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Close a Channel without throwing any exception if something went wrong. Do not attempt to close it if the</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1457</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * argument is null.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1458</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1459</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param device channel, can be null.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1460</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.8.0</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1461</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1462</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> close(Channel device) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1463</td> <td class="nbHitsUncovered"><a title="Line 1463: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1463: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (<span class="keyword">null</span> != device) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1464</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1465</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> device.close();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1466</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException e) {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1467</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//ignore</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1468</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1469</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1470</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1471</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1472</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1473</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Closes an URLConnection if its concrete implementation provides a way to close it that Ant knows of.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1474</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1475</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param conn connection, can be null</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1476</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.8.0</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1477</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1478</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> close(URLConnection conn) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1479</td> <td class="nbHitsUncovered"><a title="Line 1479: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1479: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (conn != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1480</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1481</td> <td class="nbHitsUncovered"><a title="Line 1481: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1481: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (conn <span class="keyword">instanceof</span> JarURLConnection) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1482</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> JarURLConnection juc = (JarURLConnection) conn;</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1483</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> JarFile jf = juc.getJarFile();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1484</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> jf.close();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1485</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> jf = <span class="keyword">null</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1486</td> <td class="nbHitsUncovered"><a title="Line 1486: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1486: Conditional coverage 0% (0/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (conn <span class="keyword">instanceof</span> HttpURLConnection) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1487</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ((HttpURLConnection) conn).disconnect();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1488</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1489</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException exc) {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1490</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">//ignore</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1491</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1492</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1493</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1494</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1495</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1496</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Delete the file with {@link File#delete()} if the argument is not null. Do nothing on a null argument.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1497</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1498</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param file file to delete.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1499</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1500</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> delete(File file) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1501</td> <td class="nbHitsUncovered"><a title="Line 1501: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1501: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (file != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1502</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> file.delete();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1503</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1504</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1505</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1506</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1507</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Accommodate Windows bug encountered in both Sun and IBM JDKs. Others possible. If the delete does not work, call</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1508</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * System.gc(), wait a little and try again.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1509</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1510</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return whether deletion was successful</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1511</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.8.0</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1512</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1513</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> tryHardToDelete(File f) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1514</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> tryHardToDelete(f, ON_WINDOWS);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1515</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1516</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1517</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1518</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * If delete does not work, call System.gc() if asked to, wait a little and try again.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1519</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1520</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return whether deletion was successful</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1521</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.8.3</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1522</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1523</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> tryHardToDelete(File f, <span class="keyword">boolean</span> runGC) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1524</td> <td class="nbHitsUncovered"><a title="Line 1524: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1524: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (!f.delete()) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1525</td> <td class="nbHitsUncovered"><a title="Line 1525: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1525: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (runGC) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1526</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> System.gc();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1527</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1528</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1529</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> Thread.sleep(DELETE_RETRY_SLEEP_MILLIS);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1530</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (InterruptedException ex) {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1531</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// Ignore Exception</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1532</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1533</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> f.delete();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1534</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1535</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1536</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1537</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1538</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1539</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Calculates the relative path between two files.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1540</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1541</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Implementation note:<br/> This function may throw an IOException if an I/O error occurs because its use of the</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1542</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * canonical pathname may require filesystem queries.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1543</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * </p></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1544</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1545</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param fromFile the <code>File</code> to calculate the path from</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1546</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param toFile the <code>File</code> to calculate the path to</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1547</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return the relative path between the files</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1548</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @throws Exception for undocumented reasons</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1549</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @see File#getCanonicalPath()</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1550</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1551</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.7</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1552</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1553</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> String getRelativePath(File fromFile, File toFile) <span class="keyword">throws</span> Exception {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1554</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String fromPath = fromFile.getCanonicalPath();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1555</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String toPath = toFile.getCanonicalPath();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1556</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1557</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// build the path stack info to compare</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1558</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String[] fromPathStack = getPathStack(fromPath);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1559</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String[] toPathStack = getPathStack(toPath);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1560</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1561</td> <td class="nbHitsUncovered"><a title="Line 1561: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1561: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (0 < toPathStack.length && 0 < fromPathStack.length) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1562</td> <td class="nbHitsUncovered"><a title="Line 1562: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1562: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (!fromPathStack[0].equals(toPathStack[0])) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1563</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// not the same device (would be "" on Linux/Unix)</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1564</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1565</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> getPath(Arrays.asList(toPathStack));</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1566</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1567</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
|
<tr> <td class="numLine"> 1568</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// no comparison possible</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1569</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> getPath(Arrays.asList(toPathStack));</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1570</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1571</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1572</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">int</span> minLength = Math.min(fromPathStack.length, toPathStack.length);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1573</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">int</span> same = 1; <span class="comment">// Used outside the for loop</span></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1574</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1575</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// get index of parts which are equal</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1576</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">for</span> (;</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1577</td> <td class="nbHitsUncovered"><a title="Line 1577: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1577: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> same < minLength && fromPathStack[same].equals(toPathStack[same]);</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1578</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> same++) {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1579</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// Do nothing</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1580</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1581</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1582</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> List relativePathStack = <span class="keyword">new</span> ArrayList();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1583</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1584</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// if "from" part is longer, fill it up with ".."</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1585</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// to reach path which is equal to both paths</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1586</td> <td class="nbHitsUncovered"><a title="Line 1586: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1586: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = same; i < fromPathStack.length; i++) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1587</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> relativePathStack.add(<span class="string">".."</span>);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1588</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1589</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1590</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// fill it up path with parts which were not equal</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1591</td> <td class="nbHitsUncovered"><a title="Line 1591: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1591: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = same; i < toPathStack.length; i++) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1592</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> relativePathStack.add(toPathStack[i]);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1593</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1594</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1595</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> getPath(relativePathStack);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1596</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1597</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1598</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1599</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Gets all names of the path as an array of <code>String</code>s.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1600</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1601</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param path to get names from</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1602</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return <code>String</code>s, never <code>null</code></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1603</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1604</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.7</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1605</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1606</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> String[] getPathStack(String path) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1607</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String normalizedPath = path.replace(File.separatorChar, <span class="string">'/'</span>);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1608</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1609</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> normalizedPath.split(<span class="string">"/"</span>);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1610</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1611</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1612</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1613</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Gets path from a <code>List</code> of <code>String</code>s.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1614</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1615</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param pathStack <code>List</code> of <code>String</code>s to be concatenated as a path.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1616</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return <code>String</code>, never <code>null</code></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1617</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1618</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.7</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1619</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1620</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> String getPath(List pathStack) {</pre></td></tr>
|
|
<tr> <td class="numLine"> 1621</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">// can safely use '/' because Windows understands '/' as separator</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1622</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> getPath(pathStack, <span class="string">'/'</span>);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1623</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1624</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1625</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1626</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Gets path from a <code>List</code> of <code>String</code>s.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1627</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1628</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param pathStack <code>List</code> of <code>String</code>s to be concated as a path.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1629</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @param separatorChar <code>char</code> to be used as separator between names in path</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1630</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return <code>String</code>, never <code>null</code></span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1631</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1632</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @since Ant 1.7</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1633</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1634</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> String getPath(<span class="keyword">final</span> List pathStack, <span class="keyword">final</span> <span class="keyword">char</span> separatorChar) {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1635</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> StringBuffer buffer = <span class="keyword">new</span> StringBuffer();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1636</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1637</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> Iterator iter = pathStack.iterator();</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1638</td> <td class="nbHitsUncovered"><a title="Line 1638: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1638: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (iter.hasNext()) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1639</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> buffer.append(iter.next());</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1640</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1641</td> <td class="nbHitsUncovered"><a title="Line 1641: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1641: Conditional coverage 0% (0/2)."> <span class="keyword">while</span> (iter.hasNext()) {</a></span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1642</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> buffer.append(separatorChar);</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1643</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> buffer.append(iter.next());</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1644</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1645</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> buffer.toString();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1646</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1647</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> </pre></td></tr>
|
|
<tr> <td class="numLine"> 1648</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1649</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * Get the default encoding. This is done by opening an InputStreamReader on a dummy InputStream and getting the</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1650</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * encoding. Could use System.getProperty("file.encoding"), but cannot see where this is documented.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1651</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1652</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> * @return the default file encoding.</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1653</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1654</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> String getDefaultEncoding() {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1655</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> InputStreamReader is = <span class="keyword">new</span> InputStreamReader(</span></pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1656</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">new</span> InputStream() {</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1657</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">int</span> read() {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1658</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> -1;</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1659</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1660</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> });</pre></td></tr>
|
|
<tr> <td class="numLine"> 1661</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1662</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> is.getEncoding();</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1663</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
|
<tr> <td class="numLineCover"> 1664</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> close(is);</span></pre></td></tr>
|
|
<tr> <td class="numLine"> 1665</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1666</td> <td class="nbHits"> </td>
|
|
<td class="src"><pre class="src"> }</pre></td></tr>
|
|
<tr> <td class="numLine"> 1667</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> 2.0.3 on 8/4/15 8:16 PM.</div>
|
|
</body>
|
|
</html>
|