#include <Configuration.h>
Inheritance diagram for Tools::Configuration:
Public Member Functions | |
Configuration (void) | |
Configuration (String *name) | |
virtual | ~Configuration (void) |
virtual String * | className (void) const |
Answer receiver class name. | |
virtual Object * | at (String *key) |
virtual Object * | at (const char *key) |
virtual Object * | at (String *key, Object *ifAbsentValue) |
virtual Object * | at (const char *key, const char *ifAbsentValue) |
virtual void | put (String *key, Object *value) |
virtual Set * | keys (void) |
virtual void | printOn (Stream *stream) const |
Print object identification into the stream. | |
virtual Object * | removeKey (String *key) |
virtual bool | includesKey (String *key) |
virtual bool | isEmpty (void) |
Static Public Member Functions | |
static Object * | namedAt (String *name, String *item) |
static Configuration * | named (String *name) |
static Configuration * | fromFile (String *filename) |
static ConfigurationReader * | configurationReader (void) |
static void | configurationReader (ConfigurationReader *reader) |
static Dictionary * | instances (void) |
static void | reloadAll (void) |
Protected Attributes | |
Dictionary * | bindings |
Static Protected Attributes | |
static Dictionary * | _instances = nil |
static ConfigurationReader * | _reader = nil |
|
Definition at line 38 of file Configuration.cc. References bindings. 00039 { 00040 bindings = new Dictionary(2); 00041 }
|
|
Definition at line 43 of file Configuration.cc. References bindings, and instances(). 00044 { 00045 bindings = new Dictionary(2); 00046 instances()->put(name, this); 00047 }
|
|
Definition at line 49 of file Configuration.cc. References bindings, instances(), and nil. 00050 { 00051 Object *key = instances()->keyAtValue(this, nil); 00052 if (key != nil) instances()->removeKey(key); 00053 delete bindings; 00054 }
|
|
Definition at line 122 of file Configuration.cc. References Core::Dictionary::at(), and bindings.
|
|
Definition at line 117 of file Configuration.cc. References Core::Dictionary::at(), and bindings.
|
|
Definition at line 112 of file Configuration.cc. References Core::Dictionary::at(), and bindings.
|
|
Definition at line 107 of file Configuration.cc. References Core::Dictionary::at(), and bindings. Referenced by Tools::HierarchicalConfigurationReader::getConfigurationFor(), and namedAt().
|
|
Answer receiver class name. Because there isn't any standard way to obtain class name this method comes to place. Every class should rewrite this method but many didn't (yet). Reimplemented from Core::Object. Definition at line 82 of file Configuration.cc. 00083 { 00084 return new String("Configuration"); 00085 }
|
|
Definition at line 94 of file Configuration.cc. References _reader. 00095 { 00096 _reader = reader; 00097 }
|
|
Definition at line 87 of file Configuration.cc. Referenced by fromFile(), and reloadAll(). 00088 { 00089 if (_reader == nil) 00090 _reader = new ConfigurationReader; 00091 return _reader; 00092 }
|
|
Definition at line 74 of file Configuration.cc. References configurationReader(). Referenced by named(). 00075 { 00076 configurationReader()->onFilename(filename); 00077 return configurationReader()->readConfiguration(); 00078 }
|
|
Definition at line 158 of file Configuration.cc. References bindings, and Core::Dictionary::includesKey(). 00159 { 00160 return bindings->includesKey(key); 00161 }
|
|
Definition at line 99 of file Configuration.cc. References _instances, and nil. Referenced by Configuration(), Tools::HierarchicalConfigurationReader::getConfigurationFor(), named(), Tools::HierarchicalConfigurationReader::parseBlockOpenning(), reloadAll(), and ~Configuration(). 00100 { 00101 if (_instances == nil) 00102 _instances = new Dictionary(2); 00103 return _instances; 00104 }
|
|
Definition at line 163 of file Configuration.cc. References bindings, and Core::Collection::isEmpty().
|
|
Definition at line 132 of file Configuration.cc. References Core::Set::add(), bindings, Core::CollectionIterator::finished(), Core::KeysAndValuesIterator::key(), Core::Dictionary::keysAndValuesIterator(), Core::CollectionIterator::next(), and Core::Set::size(). 00133 { 00134 KeysAndValuesIterator *i; 00135 Set *coll = new Set(bindings->size()); 00136 for (i = bindings->keysAndValuesIterator(); !i->finished(); i->next()) { 00137 coll->add(i->key()); 00138 } 00139 return coll; 00140 }
|
|
Definition at line 63 of file Configuration.cc. References fromFile(), instances(), and nil. Referenced by namedAt(). 00064 { 00065 Configuration *configuration; 00066 configuration = dynamic_cast<Configuration *>(instances()->at(name, nil)); 00067 if (configuration == nil) { 00068 configuration = Configuration::fromFile(name); 00069 instances()->put(name, configuration); 00070 } 00071 return configuration; 00072 }
|
|
Definition at line 57 of file Configuration.cc. 00058 { 00059 Configuration *config = named(name); 00060 return config->at(item); 00061 }
|
|
Print object identification into the stream. Object identification is formed from its className() by default. But complicated classes (eg. collections) may print some other information.
Reimplemented from Core::Object. Definition at line 143 of file Configuration.cc. References bindings, Core::Stream::nextPut(), and Core::Stream::print(). 00144 { 00145 Object::printOn(stream); 00146 stream->nextPut('{'); 00147 stream->print(bindings); 00148 stream->nextPut('}'); 00149 }
|
|
Definition at line 127 of file Configuration.cc. References bindings, and Core::Dictionary::put(). Referenced by Tools::HierarchicalConfigurationReader::parseAssignment(), and Tools::ConfigurationReader::put().
|
|
Definition at line 169 of file Configuration.cc. References configurationReader(), Core::CollectionIterator::finished(), instances(), Core::KeysAndValuesIterator::key(), Core::CollectionIterator::next(), and Core::KeysAndValuesIterator::value(). 00170 { 00171 KeysAndValuesIterator *i; 00172 00173 for (i = instances()->keysAndValuesIterator(); !i->finished(); i->next()) { 00174 configurationReader()->onFilename(dynamic_cast<String *>(i->key())); 00175 configurationReader()->readConfiguration(dynamic_cast<Configuration *>(i->value())); 00176 } 00177 }
|
|
Definition at line 152 of file Configuration.cc. References bindings, and Core::Dictionary::removeKey().
|
|
Definition at line 35 of file Configuration.cc. Referenced by instances(). |
|
Definition at line 36 of file Configuration.cc. Referenced by configurationReader(). |
|
Definition at line 41 of file Configuration.h. Referenced by at(), Configuration(), includesKey(), isEmpty(), keys(), printOn(), put(), removeKey(), and ~Configuration(). |