View Javadoc

1   package org.naftulin.configmgr;
2   
3   import java.util.List;
4   
5   /***
6    * Configuration Management provides a convinient way to manage configuration for your programs.
7    * Alows to load and reload configurations, add configuration, list all the configurations and
8    * returns configuration manager interface. Configuration manager interface returns configuration
9    * based on the key.
10   *  
11   * @author Henry Naftulin
12   * @since 1.0
13   */
14  public interface ConfigurationManagement {
15  	/***
16  	 * Returns configuration manager created by the configuration management engine.
17  	 * @return configuration manager.
18  	 */
19  	ConfigurationManager getConfigurationManager();
20  	
21  	/***
22  	 * Reloades configurations stored in the configuration management engine. The
23  	 * configurations are read again, parsed and stored.
24  	 * @throws ConfigurationManagerException if a problem occurs while reading or parsing the configurations.
25  	 */
26  	void reload() throws ConfigurationManagerException;
27  	
28  	/***
29  	 * Returns {@link ConfigurationManagementEntry configuration management entry} based on the key passed.
30  	 * @param key key the entry is stored under
31  	 * @return configuration management entry based on the key passed
32  	 * @throws ConfigurationManagerException if the entry is not found.
33  	 */
34  	ConfigurationManagementEntry getConfigurationManagmentEntry(String key) throws ConfigurationManagerException;
35  	
36  	/***
37  	 * Adds a {@link ConfigurationManagementEntry configuration management entry}. Entries added this way will be lost when 
38  	 * the reload fucntionality is invoked.
39  	 * @param entry configuration managemet entry
40  	 * @throws EntryInErrorException if the entry is not configured properly, for example if the key is not supplied.
41  	 */
42  	void addConfigurationManagmentEntry(ConfigurationManagementEntry entry) throws EntryInErrorException;
43  	
44  	/***
45  	 * Returns a list of {@link ConfigurationManagementEntry configuration management entries} managed by this configuration managment engine.
46  	 * @return a list of {@link ConfigurationManagementEntry configuration management entries} managed by this configuration managment engine.
47  	 */
48  	List<ConfigurationManagementEntry> getConfigurationManagmentEntries();
49  	
50  	/***
51  	 * Returns true if configuration Management has loaded configurations. Returns false
52  	 * before that point. After instantiation, we can confgure where configuration master
53  	 * record is read from. Once the master record is configured, we will be able to reload
54  	 * configuration manager. Reloading configuration manager will load all configurations,
55  	 * and the flag will switch to initialized.  
56  	 * @return true if configuration Management has loaded configurations.	
57  	 */
58  	boolean isInitialized();
59  }