1 17 18 package org.sape.carbon.core.config; 19 20 import org.sape.carbon.core.bootstrap.BootStrapper; 21 import org.sape.carbon.core.config.node.Node; 22 import org.sape.carbon.core.config.node.NodeNotFoundException; 23 import org.sape.carbon.core.config.node.event.NodeEventListener; 24 25 40 public class Config implements ConfigurationService { 41 42 46 private static Config INSTANCE = new Config(); 47 48 49 public static final String ROOT_NODE_NAME = 50 String.valueOf(Node.DELIMITER); 51 52 56 private ConfigurationService configService = null; 57 58 62 private Config() { 63 } 64 65 70 public static Config getInstance() { 71 return INSTANCE; 72 } 73 74 77 public Configuration fetchConfiguration(String name) { 78 return this.getConfigurationService().fetchConfiguration(name); 79 } 80 81 84 public Configuration fetchWritableConfiguration(String name) { 85 return this.getConfigurationService().fetchWritableConfiguration(name); 86 } 87 88 91 public void storeConfiguration(String name, Configuration config) 92 throws ConfigurationStoreException { 93 94 this.getConfigurationService().storeConfiguration(name, config); 95 } 96 97 98 101 public Configuration createConfiguration(Class configurationType) { 102 return 103 this.getConfigurationService(). 104 createConfiguration(configurationType); 105 } 106 107 108 111 public Node fetchNode(String nodeName) throws NodeNotFoundException { 112 return getConfigurationService().fetchNode(nodeName); 113 } 114 115 118 public boolean nodeExists(String nodeName) { 119 return getConfigurationService().nodeExists(nodeName); 120 } 121 122 125 public void addNodeListener(String nodeName, NodeEventListener listener) 126 throws NodeNotFoundException { 127 128 getConfigurationService().addNodeListener(nodeName, listener); 129 } 130 131 136 public ConfigurationService getConfigurationService() { 137 138 if (this.configService == null) { 139 this.configService = 140 BootStrapper.getInstance().fetchConfigurationService(); 141 } 142 143 return this.configService; 144 } 145 } 146 | Popular Tags |