in src/main/kotlin/jetbrains/buildServer/server/querylang/ast/commonConditionContainers.kt [72:96]
override fun evalFilterInner(filter: Filter<WVcsRoot>): EvalResult<WVcsRoot>? {
when(filter) {
is IdFilter -> {
val (restFilter, ids) = filter.transformedEval()
if (restFilter is NoneObjectFilter) {
val vcsRoots = ids.mapNotNull { myProjectManager.findVcsRootByExternalId(it) }.mapNotNull {it.wrap(it.project.valueResolver)}
return EvalResult(NoneObjectFilter(), vcsRoots)
}
}
is ParentFilter -> {
val (remFilter, projects) = filter.transformedEval()
val objs = projects.flatMap { project -> project.projectEx.ownVcsRoots }.mapNotNull { it?.wrap(it.project.valueResolver) }
return EvalResult(remFilter, objs)
}
is ProjectFilter -> {
val (remFilter, projects) = filter.transformedEval()
if (projects.size > 2) {
return null
}
val objs = projects.flatMap { project -> project.projectEx.vcsRoots }.mapNotNull {it?.wrap(it.project.valueResolver)}
return EvalResult(remFilter, objs)
}
}
return null
}