Skip to content

Commit 27379ec

Browse files
committed
major refactor and fixes
1 parent 24f22bd commit 27379ec

File tree

1 file changed

+12
-17
lines changed

1 file changed

+12
-17
lines changed

commons-spring/src/main/scala/com/avsystem/commons/spring/HoconBeanDefinitionReader.scala

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -344,29 +344,24 @@ class HoconBeanDefinitionReader(registry: BeanDefinitionRegistry)
344344
}
345345
}
346346

347-
private def readConditionals(list: ConfigList, config: ConfigObject): ConfigObject = {
348-
list.asScala.foldLeft(config)((conf, conditionalConf) => {
349-
val props = getProps(conditionalConf.asInstanceOf[ConfigObject])
350-
val condition = props.get("condition")
351-
val newConfig = props("beans").asInstanceOf[ConfigObject].get("beans")
352-
353-
if (condition.map(_.unwrapped().asInstanceOf[Boolean]).exists(identity)) {
354-
newConfig.withFallback(conf).asInstanceOf[ConfigObject]
347+
private def readConditionals(config: Config): Config = {
348+
if (!config.hasPath("conditionals")) config
349+
else config.getList("conditionals").asScala.foldLeft(config)((currentConfig, conditionalObject) => {
350+
val props = getProps(conditionalObject.as[ConfigObject])
351+
val newConfig = readConditionals(props("beans").as[Config])
352+
353+
if (props.get("condition").map(_.unwrapped().asInstanceOf[Boolean]).exists(identity)) {
354+
newConfig.withFallback(currentConfig)
355355
} else {
356-
conf
356+
currentConfig
357357
}
358358
})
359359
}
360360

361361
def loadBeanDefinitions(config: Config): Int = {
362-
var beans = if (config.hasPath("beans")) config.getObject("beans") else ConfigFactory.empty.root
363-
364-
if (config.hasPath("conditionals")) {
365-
val conditionals: ConfigList = config.getList("conditionals")
366-
beans = readConditionals(conditionals, beans)
367-
}
368-
369-
val aliases = if (config.hasPath("aliases")) config.getObject("aliases") else ConfigFactory.empty.root
362+
val configWithConditionals = readConditionals(config)
363+
val beans = if (configWithConditionals.hasPath("beans")) configWithConditionals.getObject("beans") else ConfigFactory.empty.root
364+
val aliases = if (configWithConditionals.hasPath("aliases")) configWithConditionals.getObject("aliases") else ConfigFactory.empty.root
370365
val result = readBeans(beans)
371366
readAliases(aliases)
372367
result

0 commit comments

Comments
 (0)