override fun evalFilterInner()

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
    }