1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.configuration2.builder.combined;
18
19 import java.util.Arrays;
20 import java.util.Collection;
21
22 import org.apache.commons.configuration2.CombinedConfiguration;
23 import org.apache.commons.configuration2.Configuration;
24 import org.apache.commons.configuration2.builder.BasicBuilderParameters;
25 import org.apache.commons.configuration2.builder.BasicConfigurationBuilder;
26 import org.apache.commons.configuration2.builder.BuilderParameters;
27
28
29
30
31
32
33
34
35
36
37
38
39 public class CombinedConfigurationBuilderProvider extends BaseConfigurationBuilderProvider {
40
41 private static final String BUILDER_CLASS = "org.apache.commons.configuration2.builder.combined.CombinedConfigurationBuilder";
42
43
44 private static final String RELOADING_BUILDER_CLASS = "org.apache.commons.configuration2.builder.combined.ReloadingCombinedConfigurationBuilder";
45
46
47 private static final String CONFIGURATION_CLASS = "org.apache.commons.configuration2.CombinedConfiguration";
48
49
50 private static final String COMBINED_PARAMS = "org.apache.commons.configuration2.builder.combined.CombinedBuilderParametersImpl";
51
52
53 private static final String FILE_PARAMS = "org.apache.commons.configuration2.builder.FileBasedBuilderParametersImpl";
54
55
56
57
58
59
60
61
62 private static void setUpBasicParameters(final CombinedConfiguration config, final BasicBuilderParameters params) {
63 params.setListDelimiterHandler(config.getListDelimiterHandler()).setLogger(config.getLogger())
64 .setThrowExceptionOnMissing(config.isThrowExceptionOnMissing()).setConfigurationDecoder(config.getConfigurationDecoder());
65 }
66
67
68
69
70 public CombinedConfigurationBuilderProvider() {
71 super(BUILDER_CLASS, RELOADING_BUILDER_CLASS, CONFIGURATION_CLASS, Arrays.asList(COMBINED_PARAMS, FILE_PARAMS));
72 }
73
74
75
76
77
78
79 @Override
80 protected BasicConfigurationBuilder<? extends Configuration> createBuilder(final ConfigurationDeclaration decl, final Collection<BuilderParameters> params)
81 throws Exception {
82 final CombinedConfigurationBuilder builder;
83 if (decl.isReload()) {
84 builder = new ReloadingCombinedConfigurationBuilder();
85 } else {
86 builder = new CombinedConfigurationBuilder();
87 }
88 decl.getConfigurationBuilder().initChildEventListeners(builder);
89 return builder;
90 }
91
92
93
94
95
96 @Override
97 protected void initializeParameterObjects(final ConfigurationDeclaration decl, final Collection<BuilderParameters> params) throws Exception {
98
99
100 final BasicBuilderParameters basicParams = (BasicBuilderParameters) params.iterator().next();
101 setUpBasicParameters(decl.getConfigurationBuilder().getConfigurationUnderConstruction(), basicParams);
102
103 super.initializeParameterObjects(decl, params);
104 }
105 }