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

# Content
1 //---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 }