+ public Map<String, T> getConfigurationBySolverName() {
+ Map<String, T> result = configurationBySolverName;
+ if (result == null)
+ result = configurationBySolverName = createConfigurationBySolverName(getConfiguration());
+ return result;
+ }
+
+ protected Map<String, T> createConfigurationBySolverName(T configuration) {
+ THashMap<String, T> configurationBySolverName = new THashMap<>();
+ browseConfigurationBySolverName(configurationBySolverName, configuration);
+ return configurationBySolverName;
+ }
+
+ private void browseConfigurationBySolverName(
+ THashMap<String, T> configurationBySolverName,
+ T configuration) {
+ configurationBySolverName.put(configuration.solverComponentName, configuration);
+ for(T child : configuration.getChildren()) {
+ browseConfigurationBySolverName(configurationBySolverName, child);
+ child.parent = configuration;
+ }
+ }
+