1 package net.sf.crispy.properties;
2
3 import java.io.InputStream;
4 import java.util.Properties;
5
6 import net.sf.crispy.PropertiesLoader;
7
8 /**
9 * Load file where the class is find.
10 * Example: class is: <code>test.crispy.Run</code> the file is in the same directory
11 * <code>/test/crispy/example.properties</code>
12 * use internal: <code>clazz.getResourceAsStream(fileName);</code>
13 *
14 * @author Linke
15 *
16 */
17 public class ClassPropertiesLoader implements PropertiesLoader {
18
19 private String fileName = null;
20 private Class clazz = null;
21
22 public ClassPropertiesLoader(Class pvClass, String pvFileName) {
23 fileName = pvFileName;
24 clazz = pvClass;
25 }
26
27 public Properties load() {
28 if (fileName == null) {
29 throw new IllegalArgumentException("The file name for the ClassPropertiesLoader is null.");
30 }
31 if (clazz == null) {
32 throw new IllegalArgumentException("The class for the ClassPropertiesLoader is null.");
33 }
34
35 InputStream lvInputStream = clazz.getResourceAsStream(fileName);
36 Properties lvProperties = new Properties();
37 try {
38 lvProperties.load(lvInputStream);
39 } catch (Exception e) {
40 throw new PropertiesLoadException("Error in load-method:", e);
41 }
42 return lvProperties;
43 }
44
45 }