1 package org.codehaus.plexus.component.configurator;
2
3 import java.util.Map;
4
5 import org.codehaus.plexus.classworlds.realm.ClassRealm;
6 import org.codehaus.plexus.component.MapOrientedComponent;
7 import org.codehaus.plexus.component.configurator.converters.composite.MapConverter;
8 import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
9 import org.codehaus.plexus.configuration.PlexusConfiguration;
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 public class MapOrientedComponentConfigurator extends AbstractComponentConfigurator {
28
29 public void configureComponent(
30 Object component,
31 PlexusConfiguration configuration,
32 ExpressionEvaluator expressionEvaluator,
33 ClassRealm containerRealm,
34 ConfigurationListener listener)
35 throws ComponentConfigurationException {
36 if (!(component instanceof MapOrientedComponent)) {
37 throw new ComponentConfigurationException(
38 "This configurator can only process implementations of " + MapOrientedComponent.class.getName());
39 }
40
41 MapConverter converter = new MapConverter();
42
43 Map context = (Map) converter.fromConfiguration(
44 converterLookup, configuration, null, null, containerRealm, expressionEvaluator, listener);
45
46 ((MapOrientedComponent) component).setComponentConfiguration(context);
47 }
48 }