Я пытаюсь создать отличный скрипт, который читает файл json
"Std": { "isAbstract": true, "jdk": "8", "mvn": "3.5.4" },
"StdInstall": { "isAbstract": true, "inherits": ["Std"], "mvnCmd": "clean install" },
"StdDeploy": { "isAbstract": true, "inherits": ["Std"], "mvnCmd": "clean deploy" },
"WDF2": { "isAbstract": true, "svn": "http://..." },
"WDF2_install": { "inherits": ["WDF2", "StdInstall"] },
"WDF2_deploy": { "inherits": ["WDF2", "StdDeploy"] }
и пытается создать новую карту, которая заменит все наследуемые ключи правильными значениями из карты Сэма
например, json будет выглядеть так в выводе
"Std": { "isAbstract": true, "jdk": "8", "mvn": "3.5.4" },
"StdInstall": { "isAbstract": true, "jdk": "8", "mvn": "3.5.4", "mvnCmd": "clean install" },
"StdDeploy": { "isAbstract": true, "jdk": "8", "mvn": "3.5.4", "mvnCmd": "clean deploy" },
"WDF2": { "isAbstract": true, "svn": "http://..." },
"WDF2_install": { "isAbstract": true, "svn": "http://...", "jdk": "8", "mvn": "3.5.4", "mvnCmd": "clean install" },
"WDF2_deploy": { "isAbstract": true, "svn": "http://...", "jdk": "8", "mvn": "3.5.4", "mvnCmd": "clean deploy" }
Тем самым заменяя все наследуемые ключи на правильные значения из той же карты и удаляя дубликаты.
Я придумал первый бит кода, но не смог продолжить
def result = new LinkedHashMap(temp)
temp.each{ k, v ->
v.each{
k1,v1 ->
if(k1 == "inherits" ){
v1.each{ val->
val = temp[val]
println k
def new1= v+val
println new1
//result = v+temp[v2]
//println result
}
}
}
}
Любая помощь будет принята с благодарностью.