This file is indexed.

/usr/share/doc/libcobertura-java/api/src-html/net/sourceforge/cobertura/ant/InstrumentTask.html is in libcobertura-java-doc 1.9.4.1+dfsg-4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<div class="sourceContainer">
<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
<span class="sourceLineNo">002</span> * The Apache Software License, Version 1.1<a name="line.2"></a>
<span class="sourceLineNo">003</span> *<a name="line.3"></a>
<span class="sourceLineNo">004</span> * Copyright (C) 2000-2002 The Apache Software Foundation.  All rights<a name="line.4"></a>
<span class="sourceLineNo">005</span> * reserved.<a name="line.5"></a>
<span class="sourceLineNo">006</span> * Copyright (C) 2003 jcoverage ltd.<a name="line.6"></a>
<span class="sourceLineNo">007</span> * Copyright (C) 2005 Mark Doliner<a name="line.7"></a>
<span class="sourceLineNo">008</span> * Copyright (C) 2005 Joakim Erdfelt<a name="line.8"></a>
<span class="sourceLineNo">009</span> * Copyright (C) 2005 Grzegorz Lukasik<a name="line.9"></a>
<span class="sourceLineNo">010</span> * Copyright (C) 2005 Alexei Yudichev<a name="line.10"></a>
<span class="sourceLineNo">011</span> * Copyright (C) 2006 John Lewis<a name="line.11"></a>
<span class="sourceLineNo">012</span> * Copyright (C) 2006 Jiri Mares <a name="line.12"></a>
<span class="sourceLineNo">013</span> *<a name="line.13"></a>
<span class="sourceLineNo">014</span> * Redistribution and use in source and binary forms, with or without<a name="line.14"></a>
<span class="sourceLineNo">015</span> * modification, are permitted provided that the following conditions<a name="line.15"></a>
<span class="sourceLineNo">016</span> * are met:<a name="line.16"></a>
<span class="sourceLineNo">017</span> *<a name="line.17"></a>
<span class="sourceLineNo">018</span> * 1. Redistributions of source code must retain the above copyright<a name="line.18"></a>
<span class="sourceLineNo">019</span> *    notice, this list of conditions and the following disclaimer.<a name="line.19"></a>
<span class="sourceLineNo">020</span> *<a name="line.20"></a>
<span class="sourceLineNo">021</span> * 2. Redistributions in binary form must reproduce the above copyright<a name="line.21"></a>
<span class="sourceLineNo">022</span> *    notice, this list of conditions and the following disclaimer in<a name="line.22"></a>
<span class="sourceLineNo">023</span> *    the documentation and/or other materials provided with the<a name="line.23"></a>
<span class="sourceLineNo">024</span> *    distribution.<a name="line.24"></a>
<span class="sourceLineNo">025</span> *<a name="line.25"></a>
<span class="sourceLineNo">026</span> * 3. The end-user documentation included with the redistribution, if<a name="line.26"></a>
<span class="sourceLineNo">027</span> *    any, must include the following acknowlegement:<a name="line.27"></a>
<span class="sourceLineNo">028</span> *       "This product includes software developed by the<a name="line.28"></a>
<span class="sourceLineNo">029</span> *        Apache Software Foundation (http://www.apache.org/)."<a name="line.29"></a>
<span class="sourceLineNo">030</span> *    Alternately, this acknowlegement may appear in the software itself,<a name="line.30"></a>
<span class="sourceLineNo">031</span> *    if and wherever such third-party acknowlegements normally appear.<a name="line.31"></a>
<span class="sourceLineNo">032</span> *<a name="line.32"></a>
<span class="sourceLineNo">033</span> * 4. The names "Ant" and "Apache Software<a name="line.33"></a>
<span class="sourceLineNo">034</span> *    Foundation" must not be used to endorse or promote products derived<a name="line.34"></a>
<span class="sourceLineNo">035</span> *    from this software without prior written permission. For written<a name="line.35"></a>
<span class="sourceLineNo">036</span> *    permission, please contact apache@apache.org.<a name="line.36"></a>
<span class="sourceLineNo">037</span> *<a name="line.37"></a>
<span class="sourceLineNo">038</span> * 5. Products derived from this software may not be called "Apache"<a name="line.38"></a>
<span class="sourceLineNo">039</span> *    nor may "Apache" appear in their names without prior written<a name="line.39"></a>
<span class="sourceLineNo">040</span> *    permission of the Apache Group.<a name="line.40"></a>
<span class="sourceLineNo">041</span> *<a name="line.41"></a>
<span class="sourceLineNo">042</span> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED<a name="line.42"></a>
<span class="sourceLineNo">043</span> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES<a name="line.43"></a>
<span class="sourceLineNo">044</span> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE<a name="line.44"></a>
<span class="sourceLineNo">045</span> * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR<a name="line.45"></a>
<span class="sourceLineNo">046</span> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,<a name="line.46"></a>
<span class="sourceLineNo">047</span> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT<a name="line.47"></a>
<span class="sourceLineNo">048</span> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF<a name="line.48"></a>
<span class="sourceLineNo">049</span> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND<a name="line.49"></a>
<span class="sourceLineNo">050</span> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,<a name="line.50"></a>
<span class="sourceLineNo">051</span> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT<a name="line.51"></a>
<span class="sourceLineNo">052</span> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF<a name="line.52"></a>
<span class="sourceLineNo">053</span> * SUCH DAMAGE.<a name="line.53"></a>
<span class="sourceLineNo">054</span> * ====================================================================<a name="line.54"></a>
<span class="sourceLineNo">055</span> *<a name="line.55"></a>
<span class="sourceLineNo">056</span> * This software consists of voluntary contributions made by many<a name="line.56"></a>
<span class="sourceLineNo">057</span> * individuals on behalf of the Apache Software Foundation.  For more<a name="line.57"></a>
<span class="sourceLineNo">058</span> * information on the Apache Software Foundation, please see<a name="line.58"></a>
<span class="sourceLineNo">059</span> * &lt;http://www.apache.org/&gt;.<a name="line.59"></a>
<span class="sourceLineNo">060</span> */<a name="line.60"></a>
<span class="sourceLineNo">061</span><a name="line.61"></a>
<span class="sourceLineNo">062</span>package net.sourceforge.cobertura.ant;<a name="line.62"></a>
<span class="sourceLineNo">063</span><a name="line.63"></a>
<span class="sourceLineNo">064</span>import java.io.File;<a name="line.64"></a>
<span class="sourceLineNo">065</span>import java.io.IOException;<a name="line.65"></a>
<span class="sourceLineNo">066</span>import java.util.ArrayList;<a name="line.66"></a>
<span class="sourceLineNo">067</span>import java.util.HashMap;<a name="line.67"></a>
<span class="sourceLineNo">068</span>import java.util.List;<a name="line.68"></a>
<span class="sourceLineNo">069</span><a name="line.69"></a>
<span class="sourceLineNo">070</span>import net.sourceforge.cobertura.util.CommandLineBuilder;<a name="line.70"></a>
<span class="sourceLineNo">071</span><a name="line.71"></a>
<span class="sourceLineNo">072</span>import org.apache.tools.ant.BuildException;<a name="line.72"></a>
<span class="sourceLineNo">073</span>import org.apache.tools.ant.Project;<a name="line.73"></a>
<span class="sourceLineNo">074</span>import org.apache.tools.ant.types.FileSet;<a name="line.74"></a>
<span class="sourceLineNo">075</span>import org.apache.tools.ant.types.Path;<a name="line.75"></a>
<span class="sourceLineNo">076</span><a name="line.76"></a>
<span class="sourceLineNo">077</span>public class InstrumentTask extends CommonMatchingTask<a name="line.77"></a>
<span class="sourceLineNo">078</span>{<a name="line.78"></a>
<span class="sourceLineNo">079</span><a name="line.79"></a>
<span class="sourceLineNo">080</span>        private String dataFile = null;<a name="line.80"></a>
<span class="sourceLineNo">081</span><a name="line.81"></a>
<span class="sourceLineNo">082</span>        private File toDir = null;<a name="line.82"></a>
<span class="sourceLineNo">083</span><a name="line.83"></a>
<span class="sourceLineNo">084</span>        List ignoreRegexs = new ArrayList();<a name="line.84"></a>
<span class="sourceLineNo">085</span><a name="line.85"></a>
<span class="sourceLineNo">086</span>        List ignoreBranchesRegexs = new ArrayList();<a name="line.86"></a>
<span class="sourceLineNo">087</span>        <a name="line.87"></a>
<span class="sourceLineNo">088</span>        List includeClassesRegexs = new ArrayList();<a name="line.88"></a>
<span class="sourceLineNo">089</span><a name="line.89"></a>
<span class="sourceLineNo">090</span>        List excludeClassesRegexs = new ArrayList();<a name="line.90"></a>
<span class="sourceLineNo">091</span><a name="line.91"></a>
<span class="sourceLineNo">092</span>        private Integer forkedJVMDebugPort;<a name="line.92"></a>
<span class="sourceLineNo">093</span>        <a name="line.93"></a>
<span class="sourceLineNo">094</span>        private Path instrumentationClasspath = null;<a name="line.94"></a>
<span class="sourceLineNo">095</span><a name="line.95"></a>
<span class="sourceLineNo">096</span>        private HashMap fileSetMap = new HashMap();<a name="line.96"></a>
<span class="sourceLineNo">097</span><a name="line.97"></a>
<span class="sourceLineNo">098</span>        public InstrumentTask()<a name="line.98"></a>
<span class="sourceLineNo">099</span>        {<a name="line.99"></a>
<span class="sourceLineNo">100</span>                super("net.sourceforge.cobertura.instrument.Main");<a name="line.100"></a>
<span class="sourceLineNo">101</span>        }<a name="line.101"></a>
<span class="sourceLineNo">102</span><a name="line.102"></a>
<span class="sourceLineNo">103</span>        public Ignore createIgnore()<a name="line.103"></a>
<span class="sourceLineNo">104</span>        {<a name="line.104"></a>
<span class="sourceLineNo">105</span>                Ignore ignoreRegex = new Ignore();<a name="line.105"></a>
<span class="sourceLineNo">106</span>                ignoreRegexs.add(ignoreRegex);<a name="line.106"></a>
<span class="sourceLineNo">107</span>                return ignoreRegex;<a name="line.107"></a>
<span class="sourceLineNo">108</span>        }<a name="line.108"></a>
<span class="sourceLineNo">109</span><a name="line.109"></a>
<span class="sourceLineNo">110</span>        public IgnoreBranches createIgnoreBranches()<a name="line.110"></a>
<span class="sourceLineNo">111</span>        {<a name="line.111"></a>
<span class="sourceLineNo">112</span>                IgnoreBranches ignoreBranchesRegex = new IgnoreBranches();<a name="line.112"></a>
<span class="sourceLineNo">113</span>                ignoreBranchesRegexs.add(ignoreBranchesRegex);<a name="line.113"></a>
<span class="sourceLineNo">114</span>                return ignoreBranchesRegex;<a name="line.114"></a>
<span class="sourceLineNo">115</span>        }<a name="line.115"></a>
<span class="sourceLineNo">116</span><a name="line.116"></a>
<span class="sourceLineNo">117</span>        public IncludeClasses createIncludeClasses()<a name="line.117"></a>
<span class="sourceLineNo">118</span>        {<a name="line.118"></a>
<span class="sourceLineNo">119</span>                IncludeClasses includeClassesRegex = new IncludeClasses();<a name="line.119"></a>
<span class="sourceLineNo">120</span>                includeClassesRegexs.add(includeClassesRegex);<a name="line.120"></a>
<span class="sourceLineNo">121</span>                return includeClassesRegex;<a name="line.121"></a>
<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
<span class="sourceLineNo">123</span><a name="line.123"></a>
<span class="sourceLineNo">124</span>        public ExcludeClasses createExcludeClasses()<a name="line.124"></a>
<span class="sourceLineNo">125</span>        {<a name="line.125"></a>
<span class="sourceLineNo">126</span>                ExcludeClasses excludeClassesRegex = new ExcludeClasses();<a name="line.126"></a>
<span class="sourceLineNo">127</span>                excludeClassesRegexs.add(excludeClassesRegex);<a name="line.127"></a>
<span class="sourceLineNo">128</span>                return excludeClassesRegex;<a name="line.128"></a>
<span class="sourceLineNo">129</span>        }<a name="line.129"></a>
<span class="sourceLineNo">130</span><a name="line.130"></a>
<span class="sourceLineNo">131</span>        public Path createInstrumentationClasspath()<a name="line.131"></a>
<span class="sourceLineNo">132</span>        {<a name="line.132"></a>
<span class="sourceLineNo">133</span>                if (instrumentationClasspath == null) {<a name="line.133"></a>
<span class="sourceLineNo">134</span>                        instrumentationClasspath = new Path(getProject());<a name="line.134"></a>
<span class="sourceLineNo">135</span>                }<a name="line.135"></a>
<span class="sourceLineNo">136</span>                return instrumentationClasspath.createPath();<a name="line.136"></a>
<span class="sourceLineNo">137</span>        }<a name="line.137"></a>
<span class="sourceLineNo">138</span><a name="line.138"></a>
<span class="sourceLineNo">139</span>        /*<a name="line.139"></a>
<span class="sourceLineNo">140</span>         * TODO: Is the following method needed to use a classpath ref?  If so,<a name="line.140"></a>
<span class="sourceLineNo">141</span>         *       test it and uncomment it.<a name="line.141"></a>
<span class="sourceLineNo">142</span>         */<a name="line.142"></a>
<span class="sourceLineNo">143</span>        /*<a name="line.143"></a>
<span class="sourceLineNo">144</span>        public void setInstrumentationClasspathRef(Reference r)<a name="line.144"></a>
<span class="sourceLineNo">145</span>        {<a name="line.145"></a>
<span class="sourceLineNo">146</span>                createInstrumentationClasspath().setRefid(r);<a name="line.146"></a>
<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
<span class="sourceLineNo">148</span>        */<a name="line.148"></a>
<span class="sourceLineNo">149</span><a name="line.149"></a>
<span class="sourceLineNo">150</span>        public void execute() throws BuildException<a name="line.150"></a>
<span class="sourceLineNo">151</span>        {<a name="line.151"></a>
<span class="sourceLineNo">152</span>                CommandLineBuilder builder = null;<a name="line.152"></a>
<span class="sourceLineNo">153</span>                try {<a name="line.153"></a>
<span class="sourceLineNo">154</span>                        builder = new CommandLineBuilder();<a name="line.154"></a>
<span class="sourceLineNo">155</span>                        if (dataFile != null)<a name="line.155"></a>
<span class="sourceLineNo">156</span>                                builder.addArg("--datafile", dataFile);<a name="line.156"></a>
<span class="sourceLineNo">157</span>                        if (toDir != null)<a name="line.157"></a>
<span class="sourceLineNo">158</span>                                builder.addArg("--destination", toDir.getAbsolutePath());<a name="line.158"></a>
<span class="sourceLineNo">159</span><a name="line.159"></a>
<span class="sourceLineNo">160</span>                        for (int i = 0; i &lt; ignoreRegexs.size(); i++) {<a name="line.160"></a>
<span class="sourceLineNo">161</span>                                Ignore ignoreRegex = (Ignore)ignoreRegexs.get(i);<a name="line.161"></a>
<span class="sourceLineNo">162</span>                                builder.addArg("--ignore", ignoreRegex.getRegex());<a name="line.162"></a>
<span class="sourceLineNo">163</span>                        }<a name="line.163"></a>
<span class="sourceLineNo">164</span><a name="line.164"></a>
<span class="sourceLineNo">165</span>                        for (int i = 0; i &lt; ignoreBranchesRegexs.size(); i++) {<a name="line.165"></a>
<span class="sourceLineNo">166</span>                                IgnoreBranches ignoreBranchesRegex = (IgnoreBranches)ignoreBranchesRegexs.get(i);<a name="line.166"></a>
<span class="sourceLineNo">167</span>                                builder.addArg("--ignoreBranches", ignoreBranchesRegex.getRegex());<a name="line.167"></a>
<span class="sourceLineNo">168</span>                        }<a name="line.168"></a>
<span class="sourceLineNo">169</span><a name="line.169"></a>
<span class="sourceLineNo">170</span>                        for (int i = 0; i &lt; includeClassesRegexs.size(); i++) {<a name="line.170"></a>
<span class="sourceLineNo">171</span>                                IncludeClasses includeClassesRegex = (IncludeClasses)includeClassesRegexs.get(i);<a name="line.171"></a>
<span class="sourceLineNo">172</span>                                builder.addArg("--includeClasses", includeClassesRegex.getRegex());<a name="line.172"></a>
<span class="sourceLineNo">173</span>                        }<a name="line.173"></a>
<span class="sourceLineNo">174</span><a name="line.174"></a>
<span class="sourceLineNo">175</span>                        for (int i = 0; i &lt; excludeClassesRegexs.size(); i++) {<a name="line.175"></a>
<span class="sourceLineNo">176</span>                                ExcludeClasses excludeClassesRegex = (ExcludeClasses)excludeClassesRegexs.get(i);<a name="line.176"></a>
<span class="sourceLineNo">177</span>                                builder.addArg("--excludeClasses", excludeClassesRegex.getRegex());<a name="line.177"></a>
<span class="sourceLineNo">178</span>                        }<a name="line.178"></a>
<span class="sourceLineNo">179</span><a name="line.179"></a>
<span class="sourceLineNo">180</span>                        if (instrumentationClasspath != null) {<a name="line.180"></a>
<span class="sourceLineNo">181</span>                                processInstrumentationClasspath();<a name="line.181"></a>
<span class="sourceLineNo">182</span>                        }<a name="line.182"></a>
<span class="sourceLineNo">183</span>                        createArgumentsForFilesets(builder);<a name="line.183"></a>
<span class="sourceLineNo">184</span><a name="line.184"></a>
<span class="sourceLineNo">185</span>                        builder.saveArgs();<a name="line.185"></a>
<span class="sourceLineNo">186</span>                } catch (IOException ioe) {<a name="line.186"></a>
<span class="sourceLineNo">187</span>                        getProject().log("Error creating commands file.", Project.MSG_ERR);<a name="line.187"></a>
<span class="sourceLineNo">188</span>                        throw new BuildException("Unable to create the commands file.", ioe);<a name="line.188"></a>
<span class="sourceLineNo">189</span>                }<a name="line.189"></a>
<span class="sourceLineNo">190</span><a name="line.190"></a>
<span class="sourceLineNo">191</span>                // Execute GPL licensed code in separate virtual machine<a name="line.191"></a>
<span class="sourceLineNo">192</span>                getJava().createArg().setValue("--commandsfile");<a name="line.192"></a>
<span class="sourceLineNo">193</span>                getJava().createArg().setValue(builder.getCommandLineFile());<a name="line.193"></a>
<span class="sourceLineNo">194</span>                if (forkedJVMDebugPort != null &amp;&amp; forkedJVMDebugPort.intValue() &gt; 0) {<a name="line.194"></a>
<span class="sourceLineNo">195</span>                        getJava().createJvmarg().setValue("-Xdebug");<a name="line.195"></a>
<span class="sourceLineNo">196</span>                        getJava().createJvmarg().setValue("-Xrunjdwp:transport=dt_socket,address=" + forkedJVMDebugPort + ",server=y,suspend=y");<a name="line.196"></a>
<span class="sourceLineNo">197</span>                }<a name="line.197"></a>
<span class="sourceLineNo">198</span>                AntUtil.transferCoberturaDataFileProperty(getJava());<a name="line.198"></a>
<span class="sourceLineNo">199</span>                if (getJava().executeJava() != 0) {<a name="line.199"></a>
<span class="sourceLineNo">200</span>                        throw new BuildException(<a name="line.200"></a>
<span class="sourceLineNo">201</span>                                        "Error instrumenting classes. See messages above.");<a name="line.201"></a>
<span class="sourceLineNo">202</span>                }<a name="line.202"></a>
<span class="sourceLineNo">203</span><a name="line.203"></a>
<span class="sourceLineNo">204</span>                builder.dispose();<a name="line.204"></a>
<span class="sourceLineNo">205</span>        }<a name="line.205"></a>
<span class="sourceLineNo">206</span><a name="line.206"></a>
<span class="sourceLineNo">207</span>        private void processInstrumentationClasspath()<a name="line.207"></a>
<span class="sourceLineNo">208</span>        {<a name="line.208"></a>
<span class="sourceLineNo">209</span>                if (includeClassesRegexs.size() == 0)<a name="line.209"></a>
<span class="sourceLineNo">210</span>                {<a name="line.210"></a>
<span class="sourceLineNo">211</span>                        throw new BuildException("'includeClasses' is required when 'instrumentationClasspath' is used");<a name="line.211"></a>
<span class="sourceLineNo">212</span>                }<a name="line.212"></a>
<span class="sourceLineNo">213</span><a name="line.213"></a>
<span class="sourceLineNo">214</span>                String[] sources = instrumentationClasspath.list();<a name="line.214"></a>
<span class="sourceLineNo">215</span>                for (int i = 0; i &lt; sources.length; i++) {<a name="line.215"></a>
<span class="sourceLineNo">216</span>                        File fileOrDir = new File(sources[i]);<a name="line.216"></a>
<span class="sourceLineNo">217</span>                        if (fileOrDir.exists())<a name="line.217"></a>
<span class="sourceLineNo">218</span>                        {<a name="line.218"></a>
<span class="sourceLineNo">219</span>                                if (fileOrDir.isDirectory()) {<a name="line.219"></a>
<span class="sourceLineNo">220</span>                                        createFilesetForDirectory(fileOrDir);<a name="line.220"></a>
<span class="sourceLineNo">221</span>                                } else {<a name="line.221"></a>
<span class="sourceLineNo">222</span>                                        addFileToFilesets(fileOrDir);<a name="line.222"></a>
<span class="sourceLineNo">223</span>                                }<a name="line.223"></a>
<span class="sourceLineNo">224</span>                        }<a name="line.224"></a>
<span class="sourceLineNo">225</span>                }<a name="line.225"></a>
<span class="sourceLineNo">226</span>        }<a name="line.226"></a>
<span class="sourceLineNo">227</span><a name="line.227"></a>
<span class="sourceLineNo">228</span>        private void addFileToFilesets(File file)<a name="line.228"></a>
<span class="sourceLineNo">229</span>        {<a name="line.229"></a>
<span class="sourceLineNo">230</span>                File dir = file.getParentFile();<a name="line.230"></a>
<span class="sourceLineNo">231</span>                String filename = file.getName();<a name="line.231"></a>
<span class="sourceLineNo">232</span>                FileSet fileSet = getFileSet(dir);<a name="line.232"></a>
<span class="sourceLineNo">233</span>                fileSet.createInclude().setName(filename);<a name="line.233"></a>
<span class="sourceLineNo">234</span>        }<a name="line.234"></a>
<span class="sourceLineNo">235</span><a name="line.235"></a>
<span class="sourceLineNo">236</span>        private FileSet getFileSet(File dir)<a name="line.236"></a>
<span class="sourceLineNo">237</span>        {<a name="line.237"></a>
<span class="sourceLineNo">238</span>                String key = dir.getAbsolutePath();<a name="line.238"></a>
<span class="sourceLineNo">239</span>                FileSet fileSet = (FileSet)fileSetMap.get(key);<a name="line.239"></a>
<span class="sourceLineNo">240</span>                if (fileSet == null)<a name="line.240"></a>
<span class="sourceLineNo">241</span>                {<a name="line.241"></a>
<span class="sourceLineNo">242</span>                fileSet = new FileSet();<a name="line.242"></a>
<span class="sourceLineNo">243</span>                fileSet.setProject(getProject());<a name="line.243"></a>
<span class="sourceLineNo">244</span>                fileSet.setDir(dir);<a name="line.244"></a>
<span class="sourceLineNo">245</span><a name="line.245"></a>
<span class="sourceLineNo">246</span>                // Now add the new fileset to the map and to the fileSets list <a name="line.246"></a>
<span class="sourceLineNo">247</span>                fileSetMap.put(key, fileSet);<a name="line.247"></a>
<span class="sourceLineNo">248</span>                addFileset(fileSet);<a name="line.248"></a>
<span class="sourceLineNo">249</span>                }<a name="line.249"></a>
<span class="sourceLineNo">250</span>                return fileSet;<a name="line.250"></a>
<span class="sourceLineNo">251</span>        }<a name="line.251"></a>
<span class="sourceLineNo">252</span><a name="line.252"></a>
<span class="sourceLineNo">253</span>        private void createFilesetForDirectory(File dir)<a name="line.253"></a>
<span class="sourceLineNo">254</span>        {<a name="line.254"></a>
<span class="sourceLineNo">255</span>                FileSet fileSet = getFileSet(dir);<a name="line.255"></a>
<span class="sourceLineNo">256</span>                fileSet.createInclude().setName("**/*.class");<a name="line.256"></a>
<span class="sourceLineNo">257</span>        }<a name="line.257"></a>
<span class="sourceLineNo">258</span><a name="line.258"></a>
<span class="sourceLineNo">259</span>        public void setDataFile(String dataFile)<a name="line.259"></a>
<span class="sourceLineNo">260</span>        {<a name="line.260"></a>
<span class="sourceLineNo">261</span>                this.dataFile = dataFile;<a name="line.261"></a>
<span class="sourceLineNo">262</span>        }<a name="line.262"></a>
<span class="sourceLineNo">263</span><a name="line.263"></a>
<span class="sourceLineNo">264</span>        public void setToDir(File toDir)<a name="line.264"></a>
<span class="sourceLineNo">265</span>        {<a name="line.265"></a>
<span class="sourceLineNo">266</span>                this.toDir = toDir;<a name="line.266"></a>
<span class="sourceLineNo">267</span>        }<a name="line.267"></a>
<span class="sourceLineNo">268</span><a name="line.268"></a>
<span class="sourceLineNo">269</span>        public void setForkedJVMDebugPort(Integer forkedJVMDebugPort)<a name="line.269"></a>
<span class="sourceLineNo">270</span>        {<a name="line.270"></a>
<span class="sourceLineNo">271</span>                this.forkedJVMDebugPort = forkedJVMDebugPort;<a name="line.271"></a>
<span class="sourceLineNo">272</span>        }<a name="line.272"></a>
<span class="sourceLineNo">273</span><a name="line.273"></a>
<span class="sourceLineNo">274</span>}<a name="line.274"></a>




























































</pre>
</div>
</body>
</html>