Я хотел бы проанализировать структуру данных замыканий (в данном случае файл конфигурации) с Groovy's ConfigSlurper . Результат анализа будет сохранен в иерархии объектов, аналогичной структуре данных. Единственная особенность этой структуры данных заключается в том, что некоторые имена замыканий повторяются в одном замыкании, например apple
и green
. Похоже, ConfigSlurper
использует Map
внутри, который заменяет уже существующие значения. Мне было интересно, если ConfigSlurper
на самом деле способен обрабатывать такого рода структуры данных. Версия Groovy, которую я использую, - 1.7.10. В качестве альтернативы я попытался использовать GroovyShell
для выполнения замыканий, но у меня были некоторые проблемы с порядком выполнения.
String rules = """
fruits {
apples {
apple {
id = 11
colors {
green {
name = 'test1'
}
green {
name = 'test2'
}
}
}
apple {
id = 12
colors {
green {
name = 'test3'
}
green {
name = 'test4'
}
}
}
}
}
"""
ConfigSlurper configSlurper = new ConfigSlurper()
def config = configSlurper.parse(rules)
println config