blob: e77f811378f237267018f4d663de11f8bd0ba8c9 [file] [log] [blame]
Stuart McCulloch26e7a5a2011-10-17 10:31:43 +00001package aQute.lib.osgi;
2
3import java.io.*;
4
5public class PreprocessResource extends AbstractResource {
6 final Resource resource;
7 final Processor processor;
8
9 public PreprocessResource(Processor processor, Resource r) {
10 super(r.lastModified());
11 this.processor = processor;
12 this.resource = r;
13 extra = resource.getExtra();
14 }
15
16 protected byte[] getBytes() throws Exception {
17 ByteArrayOutputStream bout = new ByteArrayOutputStream(2000);
18 OutputStreamWriter osw = new OutputStreamWriter(bout, Constants.DEFAULT_CHARSET);
19 PrintWriter pw = new PrintWriter(osw);
20 InputStream in = resource.openInputStream();
21 try {
22 BufferedReader rdr = new BufferedReader(new InputStreamReader(in,"UTF8"));
23 String line = rdr.readLine();
24 while (line != null) {
25 line = processor.getReplacer().process(line);
26 pw.println(line);
27 line = rdr.readLine();
28 }
29 pw.flush();
30 byte [] data= bout.toByteArray();
31 return data;
32
33 } finally {
34 in.close();
35 }
36 }
37}