1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.rat.document.impl;
20
21 import java.io.File;
22 import java.io.FileInputStream;
23 import java.io.FileReader;
24 import java.io.IOException;
25 import java.io.InputStream;
26 import java.io.InputStreamReader;
27 import java.io.Reader;
28 import java.net.URL;
29
30 import org.apache.rat.api.Document;
31
32
33 public class MonolithicFileDocument extends AbstractMonolithicDocument {
34 private static final String UTF_8 = "UTF-8";
35
36 private static final String FILE_URL_PREFIX = "file";
37
38 private final File file;
39
40
41
42
43
44
45 public static Document newInstance(final URL url) {
46 if (FILE_URL_PREFIX.equals(url.getProtocol())) {
47 final File f = new File(url.getFile());
48 return new MonolithicFileDocument(f);
49 }
50 return new AbstractMonolithicDocument(url.toExternalForm()){
51 public Reader reader() throws IOException {
52 return new InputStreamReader(inputStream(), UTF_8);
53 }
54
55 public InputStream inputStream() throws IOException {
56 return url.openStream();
57 }
58 };
59 }
60
61 public MonolithicFileDocument(final File file) {
62 super(DocumentImplUtils.toName(file));
63 this.file = file;
64 }
65
66 public Reader reader() throws IOException {
67 return new FileReader(file);
68 }
69
70 public InputStream inputStream() throws IOException {
71 return new FileInputStream(file);
72 }
73 }