1 package at.meikel.dmrl.server.httpclient;
2
3 import at.meikel.dmrl.server.server.DataRetriever;
4
5 import java.io.File;
6 import java.io.FileInputStream;
7 import java.io.FileNotFoundException;
8 import java.io.IOException;
9 import java.io.InputStream;
10 import java.util.Date;
11
12 import org.apache.log4j.Logger;
13
14 public class LocalFileDataRetriever implements DataRetriever {
15
16 private final static Logger LOGGER = Logger.getLogger(LocalFileDataRetriever.class);
17 private File file;
18 private String path = "C:/michael.becker/_Privat/at.meikel.dmrl.root/at.meikel.dmrl.server/src/main/resources";
19 private InputStream inputStream;
20
21
22 public LocalFileDataRetriever(String filename) {
23 file = new File(path, filename);
24 }
25
26 @Override
27 public String getUrl() {
28 return path;
29 }
30
31 @Override
32 public InputStream retrieveInputStream() {
33 InputStream inputStream = null;
34
35 try {
36 inputStream = new FileInputStream(file);
37 } catch (FileNotFoundException e) {
38 LOGGER.warn("File '" + path + "' not found: " + e.getLocalizedMessage());
39 }
40
41 return inputStream;
42 }
43
44 @Override
45 public void freeAllResources() {
46 if (inputStream != null) {
47 try {
48 inputStream.close();
49 } catch (IOException e) {
50 LOGGER.warn("Failed to close input stream for file '" + path + "'.", e);
51 }
52 }
53 }
54
55 @Override
56 public boolean findCurrentFile() {
57 return true;
58 }
59
60 @Override
61 public String getCurrentFileName() {
62 return file.getAbsolutePath();
63 }
64
65 @Override
66 public Date getCurrentFileDate() {
67 return new Date(file.lastModified());
68 }
69
70 }