1 8 package org.apache.avalon.phoenix.components.configuration; 9 10 import java.util.HashMap ; 11 import org.apache.avalon.excalibur.i18n.ResourceManager; 12 import org.apache.avalon.excalibur.i18n.Resources; 13 import org.apache.avalon.framework.configuration.Configuration; 14 import org.apache.avalon.framework.configuration.ConfigurationException; 15 import org.apache.avalon.phoenix.interfaces.ConfigurationRepository; 16 import org.apache.avalon.phoenix.interfaces.ConfigurationRepositoryMBean; 17 18 23 public class DefaultConfigurationRepository 24 implements ConfigurationRepository, ConfigurationRepositoryMBean 25 { 26 private static final Resources REZ = 27 ResourceManager.getPackageResources( DefaultConfigurationRepository.class ); 28 29 private final HashMap m_configurations = new HashMap (); 30 31 public synchronized void storeConfiguration( final String application, 32 final String block, 33 final Configuration configuration ) 34 throws ConfigurationException 35 { 36 final String name = application + "." + block; 37 if( null == configuration ) 38 { 39 m_configurations.remove( name ); 40 } 41 else 42 { 43 m_configurations.put( name, configuration ); 44 } 45 } 46 47 public synchronized void removeConfiguration( final String application, 48 final String block ) 49 throws ConfigurationException 50 { 51 m_configurations.remove( application + "." + block ); 52 } 53 54 public synchronized Configuration getConfiguration( final String application, 55 final String block ) 56 throws ConfigurationException 57 { 58 final String name = application + "." + block; 59 final Configuration configuration = (Configuration)m_configurations.get( name ); 60 61 if( null == configuration ) 62 { 63 final String message = REZ.getString( "config.error.noconfig", block, application ); 64 throw new ConfigurationException( message ); 65 } 66 67 return configuration; 68 } 69 70 public boolean hasConfiguration( String application, String block ) 71 { 72 final String name = application + "." + block; 73 74 return m_configurations.containsKey( name ); 75 } 76 } 77 | Popular Tags |