View Javadoc
1   /*
2    * This software was designed and created by Jason Carroll.
3    * Copyright (c) 2002, 2003, 2004 Jason Carroll.
4    * The author can be reached at jcarroll@cowsultants.com
5    * ITracker website: http://www.cowsultants.com
6    * ITracker forums: http://www.cowsultants.com/phpBB/index.php
7    *
8    * This program is free software; you can redistribute it and/or modify
9    * it only under the terms of the GNU General Public License as published by
10   * the Free Software Foundation; either version 2 of the License, or
11   * (at your option) any later version.
12   *
13   * This program is distributed in the hope that it will be useful,
14   * but WITHOUT ANY WARRANTY; without even the implied warranty of
15   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   * GNU General Public License for more details.
17   */
18  
19  package org.itracker.model.util;
20  
21  import org.apache.log4j.Logger;
22  
23  import java.io.IOException;
24  import java.io.InputStream;
25  import java.util.Properties;
26  
27  public class PropertiesFileHandler {
28      private Properties props;
29      private final Logger logger;
30  
31      public PropertiesFileHandler() {
32          this.logger = Logger.getLogger(getClass());
33          props = new Properties();
34      }
35  
36      public PropertiesFileHandler(String resource) {
37          this();
38          addProperties(resource);
39      }
40  
41      public void addProperties(String resource) {
42          if (resource == null || resource.equals("") || !resource.endsWith(".properties")) {
43              if (logger.isInfoEnabled()) {
44                  logger.info("addProperties: skip " + resource);
45              }
46              return;
47          }
48  
49          try {
50              InputStream is = getClass().getResourceAsStream(resource);
51              if (is != null) {
52                  props.load(is);
53              } else {
54                  logger.debug("No properties resource, " + resource + " was found.");
55              }
56          } catch (IOException ioe) {
57              logger.warn("Could not load properties resource: " + resource, ioe);
58          }
59      }
60  
61      public Properties getProperties() {
62          return (Properties) props.clone();
63      }
64  
65      public String getProperty(String name) {
66          return props.getProperty(name);
67      }
68  
69      public boolean hasProperty(String name) {
70          return props.containsKey(name);
71      }
72  
73      public boolean hasProperties() {
74          return (props.size() > 0 ? true : false);
75      }
76  }