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 public CombinedConfigurationBuilderProvider() {
59 super(BUILDER_CLASS, RELOADING_BUILDER_CLASS, CONFIGURATION_CLASS, Arrays.asList(COMBINED_PARAMS, FILE_PARAMS));
60 }
61
62
63
64
65
66
67 @Override
68 protected BasicConfigurationBuilder<? extends Configuration> createBuilder(final ConfigurationDeclaration decl, final Collection<BuilderParameters> params)
69 throws Exception {
70 final CombinedConfigurationBuilder builder;
71 if (decl.isReload()) {
72 builder = new ReloadingCombinedConfigurationBuilder();
73 } else {
74 builder = new CombinedConfigurationBuilder();
75 }
76 decl.getConfigurationBuilder().initChildEventListeners(builder);
77 return builder;
78 }
79
80
81
82
83
84 @Override
85 protected void initializeParameterObjects(final ConfigurationDeclaration decl, final Collection<BuilderParameters> params) throws Exception {
86
87
88 final BasicBuilderParameters basicParams = (BasicBuilderParameters) params.iterator().next();
89 setUpBasicParameters(decl.getConfigurationBuilder().getConfigurationUnderConstruction(), basicParams);
90
91 super.initializeParameterObjects(decl, params);
92 }
93
94
95
96
97
98
99
100
101 private static void setUpBasicParameters(final CombinedConfiguration config, final BasicBuilderParameters params) {
102 params.setListDelimiterHandler(config.getListDelimiterHandler()).setLogger(config.getLogger())
103 .setThrowExceptionOnMissing(config.isThrowExceptionOnMissing()).setConfigurationDecoder(config.getConfigurationDecoder());
104 }
105 }