override fun visitConditionInSubproject()

in src/main/kotlin/jetbrains/buildServer/server/querylang/parser/ConditionVisitor.kt [14:36]


    override fun visitConditionInSubproject(ctx: QLangGrammarParser.ConditionInSubprojectContext?): RealConditionAST<NestedObj> {
        var condition1: RealConditionAST<NestedObj>? = null
        if (ctx!!.objectId() != null) {
            condition1 = FilterConditionNode(
                        ProjectFilter(FilterConditionNode(IdFilter(
                            FilterConditionNode(EqualsStringFilter(ctx.objectId().text)))
                        )).checkAndCast(parentFilter)
                     ?: throw IllegalStateException("visitConditionInSubproject was invoked from wrong context")
            )
        }
        var condition2: RealConditionAST<NestedObj>? = null
        if (ctx.condition() != null) {
            condition2 = this.visit(ctx.condition())
        }

        if (condition1 != null && condition2 != null) {
            return AndConditionNode(
                    condition1,
                    condition2
            )
        }
        return condition1 ?: condition2!!
    }