Property Manager : Properties « Development Class « Java

Home
Java
1.2D Graphics GUI
2.3D
3.Advanced Graphics
4.Ant
5.Apache Common
6.Chart
7.Class
8.Collections Data Structure
9.Data Type
10.Database SQL JDBC
11.Design Pattern
12.Development Class
13.EJB3
14.Email
15.Event
16.File Input Output
17.Game
18.Generics
19.GWT
20.Hibernate
21.I18N
22.J2EE
23.J2ME
24.JavaFX
25.JDK 6
26.JDK 7
27.JNDI LDAP
28.JPA
29.JSP
30.JSTL
31.Language Basics
32.Network Protocol
33.PDF RTF
34.Reflection
35.Regular Expressions
36.Scripting
37.Security
38.Servlets
39.Spring
40.Swing Components
41.Swing JFC
42.SWT JFace Eclipse
43.Threads
44.Tiny Application
45.Velocity
46.Web Services SOA
47.XML
Java » Development Class » Properties 




Property Manager
        
//package abc.util;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.*;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Properties;

public final class PropertyManager {

  private final static String DEFAULT_PROPERTIES_FILE = "ressources" + File.separator + "default.properties";
  private final static String APP_PROPERTIES_FILE = "ressources" + File.separator + "app.properties";

  private Properties defaultProps = new Properties();
  private Properties appProps = null;

  private Hashtable listeners = null;


  private static Object lock = new Object();
  private static PropertyManager instance  = null;

  private PropertyManager() {
  }

  public static PropertyManager getInstance() throws IOException {
  if (instance == null) {
    synchronized (lock) {
      if (instance == null) {
        instance = new PropertyManager();
        instance.loadProperties();
      }
    }
  }
  return (instance);

  }

  private void loadProperties()  throws IOException {

    // create and load default properties
    FileInputStream in = new FileInputStream(DEFAULT_PROPERTIES_FILE);
    defaultProps.load(in);
    in.close();

    // create application properties with default
    appProps = new Properties(defaultProps);

    try {
    // user/application properties
      in = new FileInputStream(APP_PROPERTIES_FILE);
      appProps.load(in);
      in.close();
    catch (Throwable th) {
    // TODO: log something
  }

  }

  public void storeProperties() throws IOException {

    FileOutputStream out = new FileOutputStream(DEFAULT_PROPERTIES_FILE);
    defaultProps.store(out, "---Default properties---");
    out.close();


    out = new FileOutputStream(APP_PROPERTIES_FILE);
    appProps.store(out, "---App/User properties---");
    out.close();

  }

  public String getProperty(String key) {
  String val = null;
  if (key != null) {
    if (appProps != null)
      val = (String)appProps.getProperty(key);
    if (val == null) {
      val = defaultProps.getProperty(key);
    }
  }
  return (val);

  }

  /**
   * Sets Application/User String properties; default property values cannot be set.
   */
  public void setProperty(String key, String val) {

  ArrayList list  = null;
  Object oldValue = null;

  oldValue = getProperty(key);

  appProps.setProperty(key, val);
  if (listeners.containsKey(key)) {
    list = (ArrayList)listeners.get(key);
    int len = list.size();
    if (len > 0) {
    PropertyChangeEvent evt = new PropertyChangeEvent(this, key, oldValue, val);
    for (int i=0; i < len; i++) {
      if (list.get(iinstanceof PropertyChangeListener)
      ((PropertyChangeListener)list.get(i)).propertyChange(evt);
    }
    }
  }

  }

  public boolean addListener (String key, PropertyChangeListener listener) {
  boolean added = false;
  ArrayList list = null;
  if (listeners == null)
    listeners = new Hashtable();

  if (!listeners.contains(key)) {
    list = new ArrayList();
    added = list.add(listener);
    listeners.put(key, list);
    else {
    list = (ArrayList)listeners.get(key);
    added = list.add(listener);
  }
  return (added);
  }

  public void removeListener (PropertyChangeListener listener) {
  if (listeners != null && listeners.size() 0)
    listeners.remove(listener);
  }
  
}

   
    
    
    
    
    
    
    
  














Related examples in the same category
1.Read a set of properties from the received input stream, strip off any excess white space that exists in those property values,
2.Copy a set of properties from one Property to another.
3.Sorts property list and print out each key=value pair prepended with specific indentation.
4.Sorts a property list and turns the sorted list into a string.
5.A utility class for replacing properties in strings.
6.Property Loader
7.Property access utility methods
8.Represents a persistent set of properties
9.Converts specified map to java.util.Properties
10.A java.util.Properties class that will check a file or URL for changes periodically
11.Encapsulates java.util.Properties to add java primitives and some other java classes
12.Load and save properties to files.
13.Adds new properties to an existing set of properties
14.Extracts a specific property key subset from the known properties
15.Observable Properties
16.Merge Properties Into Map
17.XML configuration management
18.JDOM based XML properties
19.XML Properties
20.Converts Unicode into something that can be embedded in a java properties file
21.Create Properties from String array
22.Task to overwrite Properties
23.Gets strong-type-value property from a standard Properties
24.The properties iterator iterates over a set of enumerated properties.
25.An utility class to ease up using property-file resource bundles.
26.Sorted Properties
27.A subclass of the java.util.Properties class that must be initialized from a file on disk
28.This class contains a collection of static utility methods for creating, retrieving, saving and loading properties.
29.Simplify routine job with properties
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.