1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.mail.resolver;
18
19 import javax.activation.DataSource;
20 import javax.activation.FileDataSource;
21 import java.io.File;
22 import java.io.IOException;
23
24
25
26
27
28
29
30 public class DataSourceFileResolver extends DataSourceBaseResolver
31 {
32
33 private final File baseDir;
34
35
36
37
38 public DataSourceFileResolver()
39 {
40 baseDir = new File(".");
41 }
42
43
44
45
46
47
48 public DataSourceFileResolver(final File baseDir)
49 {
50 this.baseDir = baseDir;
51 }
52
53
54
55
56
57
58
59 public DataSourceFileResolver(final File baseDir, final boolean lenient)
60 {
61 super(lenient);
62 this.baseDir = baseDir;
63 }
64
65
66
67
68
69
70 public File getBaseDir()
71 {
72 return baseDir;
73 }
74
75
76 @Override
77 public DataSource resolve(final String resourceLocation) throws IOException
78 {
79 return resolve(resourceLocation, isLenient());
80 }
81
82
83 @Override
84 public DataSource resolve(final String resourceLocation, final boolean isLenient) throws IOException
85 {
86 File file;
87 DataSource result = null;
88
89 if (!isCid(resourceLocation))
90 {
91 file = new File(resourceLocation);
92
93 if (!file.isAbsolute())
94 {
95 file = getBaseDir() != null ? new File(getBaseDir(), resourceLocation) : new File(resourceLocation);
96 }
97
98 if (file.exists())
99 {
100 result = new FileDataSource(file);
101 }
102 else
103 {
104 if (!isLenient)
105 {
106 throw new IOException("Cant resolve the following file resource :" + file.getAbsolutePath());
107 }
108 }
109 }
110
111 return result;
112 }
113 }