override fun evalFilterInner()

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
    }