Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/jellyfish/implementation/ConfigurationManagerDefault.java


1   package org.jellyfish.implementation;
2   
3   import java.util.ArrayList;
4   import java.util.List;
5   
6   import org.apache.avalon.framework.configuration.Configurable;
7   import org.apache.avalon.framework.configuration.Configuration;
8   import org.apache.avalon.framework.configuration.ConfigurationException;
9   import org.apache.avalon.framework.logger.LogEnabled;
10  import org.apache.avalon.framework.logger.Logger;
11  import org.jellyfish.ConfigurationManager;
12  import org.jellyfish.config.AttributeMapping;
13  import org.jellyfish.config.Config;
14  import org.jellyfish.config.ObjectMapping;
15  
16  public class ConfigurationManagerDefault implements ConfigurationManager, Configurable, LogEnabled {
17      private static ConfigurationManagerDefault instance;
18      private Config jellyfishConfiguration;
19    private Logger logger;
20  
21      private List buildAttributeMappings(Configuration[] attributeMappingElements)
22          throws ConfigurationException {
23          List attributeMappings = new ArrayList();
24          for (int index = 0; index < attributeMappingElements.length; index++) {
25              attributeMappings.add(
26                  new AttributeMapping(
27                      filterNull(attributeMappingElements[index].getChild("java-name").getValue("")),
28                      filterNull(attributeMappingElements[index].getChild("ldap-name").getValue("")),
29                      filterNull(attributeMappingElements[index].getChild("type").getValue(""))));
30          }
31          return attributeMappings;
32      }
33  
34      private Config buildConfig(Configuration avalonConfiguration) throws ConfigurationException {
35          Config config = new Config();
36          config.setBaseDn(filterNull(avalonConfiguration.getChild("base-dn").getValue("")));
37          config.setConnectionDn(
38              filterNull(avalonConfiguration.getChild("connection-dn").getValue("")));
39          config.setConnectionPassword(
40              filterNull(avalonConfiguration.getChild("connection-password").getValue("")));
41          config.setConnectionUrl(
42              filterNull(avalonConfiguration.getChild("connection-url").getValue("")));
43          config.setContextFactory(
44              filterNull(avalonConfiguration.getChild("context-factory").getValue("")));
45          config.setUserDn(filterNull(avalonConfiguration.getChild("user-dn").getValue("")));
46          config.setObjectMappings(
47              buildObjectMappings(avalonConfiguration.getChildren("object-mapping")));
48          return config;
49      }
50  
51      private List buildObjectMappings(Configuration[] objectMappingElements)
52          throws ConfigurationException {
53          List objectMappings = new ArrayList();
54          for (int index = 0; index < objectMappingElements.length; index++) {
55              objectMappings.add(
56                  new ObjectMapping(
57                      filterNull(objectMappingElements[index].getChild("java-name").getValue("")),
58                      filterNull(objectMappingElements[index].getChild("ldap-name").getValue("")),
59                      filterNull(objectMappingElements[index].getChild("dn").getValue("")),
60                      buildAttributeMappings(
61                          objectMappingElements[index].getChildren("attribute-mapping"))));
62          }
63          return objectMappings;
64      }
65  
66      protected Config createConfiguration() {
67          return jellyfishConfiguration;
68      }
69  
70      public Config getConfiguration() {
71          return createConfiguration();
72      }
73  
74      private String filterNull(String string) {
75          return string == null ? "" : string;
76      }
77  
78      public void configure(Configuration configuration) throws ConfigurationException {
79          try {
80              jellyfishConfiguration = buildConfig(configuration);
81          } catch (ConfigurationException e) {
82              logger.fatalError("error getting configuration", e);
83              jellyfishConfiguration = new Config();
84          }
85      }
86  
87    public void enableLogging(org.apache.avalon.framework.logger.Logger logger) {
88      this.logger = logger;
89    }
90  
91  }