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 }