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