feature incremental api generator, small fix string generator #26
|
|
@ -33,27 +33,39 @@ class ApiModelsDependencyResolver(
|
|||
}
|
||||
|
||||
fun getDependenciesFromFiles(files: Collection<File>): Set<File> =
|
||||
files.fold(setOf()) { dependencies, file ->
|
||||
dependencies + getFileDependencies(file)
|
||||
files.fold(setOf()) { foundDependencies, file ->
|
||||
val newDependencies = getFileDependencies(file)
|
||||
|
||||
if (newDependencies.isEmpty()) {
|
||||
foundDependencies
|
||||
} else {
|
||||
foundDependencies + getFileDependencies(file)
|
||||
}
|
||||
}
|
||||
|
||||
private fun getFileDependencies(file: File): Set<File> {
|
||||
if (handledFiles.contains(file)) {
|
||||
private fun getFileDependencies(sourceFile: File): Set<File> {
|
||||
if (handledFiles.contains(sourceFile)) {
|
||||
return emptySet()
|
||||
}
|
||||
|
||||
handledFiles.add(file)
|
||||
handledFiles.add(sourceFile)
|
||||
|
||||
val json = JsonSlurper().parse(file) as Map<String, Any?>
|
||||
val json = JsonSlurper().parse(sourceFile) as Map<String, Any?>
|
||||
val files = fileParser.getAllTypeNamesFromJson(json)
|
||||
.map { type ->
|
||||
modelTypes[type]
|
||||
?: throw IllegalArgumentException("Couldn't resolve $type in ${file.name}")
|
||||
?: throw IllegalArgumentException("Couldn't resolve $type in ${sourceFile.name}")
|
||||
}
|
||||
.toSet()
|
||||
|
||||
return files.fold(files) { dependencies, myFile ->
|
||||
dependencies + getFileDependencies(myFile)
|
||||
return files.fold(files) { foundDependencies, file ->
|
||||
val newDependencies = getFileDependencies(file)
|
||||
|
||||
if (newDependencies.isEmpty()) {
|
||||
foundDependencies
|
||||
} else {
|
||||
foundDependencies + newDependencies
|
||||
}
|
||||
|
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
files.fold(files) { foundDependencies, file ->
val newDependencies = getFileDependencies(file)
такой же код есть в getDependenciesFromFiles