View Javadoc

1   package net.sf.crispy.properties;
2   
3   import java.io.FileInputStream;
4   import java.net.URL;
5   import java.util.Properties;
6   
7   import net.sf.crispy.PropertiesLoader;
8   
9   /**
10   * Load file from the class path.
11   * 
12   * @author Linke
13   *
14   */
15  public class ClassPathPropertiesLoader implements PropertiesLoader {
16  
17  	private String fileName = null;
18  	
19  	public ClassPathPropertiesLoader(String pvFileName) {
20  		fileName = pvFileName;
21  	}
22  	
23  	public Properties load() {
24  		if (fileName == null) {
25  			throw new IllegalArgumentException("The file name for the ClassPathPropertiesLoader is null.");
26  		}
27  		if (!(fileName.startsWith("/"))) { fileName = "/" + fileName; }
28  		Properties lvProperties = new Properties();
29  		try {
30  			URL lvUrl = ClassPathPropertiesLoader.class.getResource(fileName);
31  			if (lvUrl == null) {
32  				throw new IllegalArgumentException("The file name: " + fileName + " was not found in the class path.");
33  			}		
34  			String lvPath = lvUrl.getPath();
35  			lvProperties.load(new FileInputStream(lvPath));
36  		} catch (Exception e) {
37  			throw new PropertiesLoadException("Error in load-method:", e);
38  		}
39  		return lvProperties;
40  	}
41  
42  }