ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/uk/org/iscream/cms/server/core/ConfigurationServant.java
Revision: 1.10
Committed: Mon Nov 20 17:11:44 2000 UTC (23 years, 5 months ago) by ajm
Branch: MAIN
Changes since 1.9: +114 -123 lines
Log Message:
Modified to change the name of the Configurator -> ConfigurationManager
Added initial work for multiple configurations

File Contents

# User Rev Content
1 ajm 1.10 //---PACKAGE DECLARATION---
2    
3     //---IMPORTS---
4     import uk.ac.ukc.iscream.core.*;
5     import java.util.*;
6     import java.io.*;
7     import java.text.DateFormat;
8    
9     /**
10     * An implementation of the Configuration IDL
11     * This class allows i-scream modules to read and even
12     * set their configuration from a central location.
13     *
14     * When classes want their configuration, they contact
15     * the Configurator, which will locate their config,
16     * open it and pass it to a Configuration object which is
17     * then passed back to the calling class.
18     *
19     * Essentially this class behaves in a similar fashion
20     * to the java.util.Properties class.
21     *
22     * @author $Author: tdb1 $
23     * @version $Id: ConfigurationServant.java,v 1.9 2000/11/20 15:49:46 tdb1 Exp $
24     */
25     class ConfigurationServant extends ConfigurationPOA {
26    
27     //---FINAL ATTRIBUTES---
28    
29     /**
30     * The current CVS revision of this class
31     */
32     public final String REVISION = "$Revision: 1.9 $";
33    
34     //---STATIC METHODS---
35    
36     //---CONSTRUCTORS---
37    
38     /**
39     * Creates a new ConfigurationServant taking a hook
40     * to a file containing the configuration.
41     *
42     * @param propertiesStream an InputStream connected to the configuration
43     */
44     ConfigurationServant(Properties properties, long lastModified, Logger logRef) {
45     _properties = properties;
46     _lastModified = lastModified;
47     _logRef = logRef;
48     _logRef.write(this.toString(), Logger.SYSINIT, "created");
49     String date = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM).format(new Date(getLastModified()));
50     _logRef.write(this.toString(), Logger.SYSMSG, "last modified - " + date);
51     }
52    
53     //---PUBLIC METHODS---
54    
55     /**
56     * A wrapper for java.util.Properties.getProperty
57     * When given a key it returns the value of that key
58     * ie, key = value
59     *
60     * @param key the key the value of which is wanted
61     */
62     public String getProperty(String key) {
63     return _properties.getProperty(key);
64     }
65    
66     /**
67     * Overrides the {@link java.lang.Object#toString() Object.toString()}
68     * method to provide clean logging (every class should have this).
69     *
70     * @return the name of this class and its CVS revision
71     */
72     public String toString() {
73     return this.getClass().getName() + "(" + REVISION.substring(11, REVISION.length() - 2) + ")";
74     }
75    
76     //---PRIVATE METHODS---
77    
78     protected void finalize() throws Throwable {
79     _logRef.write(this.toString(), Logger.DEBUG, "finalized (ick, us english!)");
80     }
81    
82     //---ACCESSOR/MUTATOR METHODS---
83    
84     /**
85     * Returns the date stamp of the configuration file
86     * this object is using.
87     *
88     * @return the last modified time for the file
89     */
90     public long getLastModified() {
91     return _lastModified;
92     }
93    
94     //---ATTRIBUTES---
95    
96     /**
97     * The properties object that this class provides a CORBA interface to
98     */
99     private Properties _properties = new Properties();
100    
101     /**
102     * Reference to a Logger
103     */
104     private Logger _logRef;
105    
106     /**
107     * The date stamp of the configuration file
108     * this object is using
109     */
110     private long _lastModified;
111    
112     //---STATIC ATTRIBUTES---
113    
114     }