1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.index.reader;
20
21 import java.io.BufferedInputStream;
22 import java.io.BufferedOutputStream;
23 import java.io.File;
24 import java.io.FileInputStream;
25 import java.io.FileNotFoundException;
26 import java.io.FileOutputStream;
27 import java.io.IOException;
28 import java.io.InputStream;
29 import java.io.OutputStream;
30
31
32
33
34
35 public class DirectoryResourceHandler implements WritableResourceHandler {
36 private final File rootDirectory;
37
38 public DirectoryResourceHandler(final File rootDirectory) {
39 if (rootDirectory == null) {
40 throw new NullPointerException("null rootDirectory");
41 }
42 if (!rootDirectory.isDirectory()) {
43 throw new IllegalArgumentException("rootDirectory exists and is not a directory");
44 }
45 this.rootDirectory = rootDirectory;
46 }
47
48 public File getRootDirectory() {
49 return rootDirectory;
50 }
51
52 public WritableResource locate(final String name) {
53 return new FileResource(new File(rootDirectory, name));
54 }
55
56 private static class FileResource implements WritableResource {
57 private final File file;
58
59 private FileResource(final File file) {
60 this.file = file;
61 }
62
63 public InputStream read() throws IOException {
64 try {
65 return new BufferedInputStream(new FileInputStream(file));
66 } catch (FileNotFoundException e) {
67 return null;
68 }
69 }
70
71 public OutputStream write() throws IOException {
72 return new BufferedOutputStream(new FileOutputStream(file));
73 }
74 }
75 }