KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > avalon > phoenix > components > configuration > DefaultConfigurationRepository


1 /*
2  * Copyright (C) The Apache Software Foundation. All rights reserved.
3  *
4  * This software is published under the terms of the Apache Software License
5  * version 1.1, a copy of which has been included with this distribution in
6  * the LICENSE.txt file.
7  */

8 package org.apache.avalon.phoenix.components.configuration;
9
10 import java.util.HashMap JavaDoc;
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 /**
19  * Repository from which all configuration data is retrieved.
20  *
21  * @author <a HREF="mailto:peter at apache.org">Peter Donald</a>
22  */

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 JavaDoc m_configurations = new HashMap JavaDoc();
30
31     public synchronized void storeConfiguration( final String JavaDoc application,
32                                                  final String JavaDoc block,
33                                                  final Configuration configuration )
34         throws ConfigurationException
35     {
36         final String JavaDoc 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 JavaDoc application,
48                                                   final String JavaDoc block )
49         throws ConfigurationException
50     {
51         m_configurations.remove( application + "." + block );
52     }
53
54     public synchronized Configuration getConfiguration( final String JavaDoc application,
55                                                         final String JavaDoc block )
56         throws ConfigurationException
57     {
58         final String JavaDoc name = application + "." + block;
59         final Configuration configuration = (Configuration)m_configurations.get( name );
60
61         if( null == configuration )
62         {
63             final String JavaDoc 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 JavaDoc application, String JavaDoc block )
71     {
72         final String JavaDoc name = application + "." + block;
73
74         return m_configurations.containsKey( name );
75     }
76 }
77
Popular Tags