in src/main/kotlin/jetbrains/buildServer/server/querylang/ast/commonConditionContainers.kt [8:40]
override fun evalFilterInner(filter: Filter<WBuildConf>): EvalResult<WBuildConf>? {
when (filter) {
is IdFilter -> {
val (remFilter, ids) = filter.transformedEval()
if (remFilter is NoneObjectFilter) {
val buildConfs = ids.mapNotNull { myProjectManager.findBuildTypeByExternalId(it)?.wrap()}
return EvalResult(NoneObjectFilter(), buildConfs)
}
}
is ParentFilter -> {
val (remFilter, projects) = filter.transformedEval()
val objs = projects.flatMap { project -> project.projectEx.ownBuildTypes }.mapNotNull {it?.wrap()}
return EvalResult(remFilter, objs)
}
is TemplateFilter -> {
val (remFilter, templates) = filter.transformedEval()
val objs = templates.flatMap { it.stemplate.usages}.mapNotNull { it?.wrap() }
val fobjs = if (filter.searchAll !is AnyElementValidator) {
objs.filter {remFilter.accepts(it)}
} else objs
return EvalResult(remFilter, fobjs)
}
is ProjectFilter -> {
val (remFilter, projects) = filter.transformedEval()
if (projects.size > 2) {
return null
}
val objs = projects.flatMap { project -> project.projectEx.buildTypes }.mapNotNull {it?.wrap()}
return EvalResult(remFilter, objs)
}
}
return null
}