boolean (int currentVariableNumber) { Expression expression = getTemplate().getExpressionAt(currentVariableNumber); if (myCurrentVariableNumber == -1) { if (getTemplate().skipOnStart(currentVariableNumber)) return false; } String variableName = getTemplate().getVariableNameAt(currentVariableNumber); if (getPredefinedVariableValues() == null || !getPredefinedVariableValues().containsKey(variableName)) { if (getTemplate().isAlwaysStopAt(currentVariableNumber)) { return true; } } int segmentNumber = getTemplate().getVariableSegmentNumber(variableName); if (segmentNumber < 0) return false; int start = getSegments().getSegmentStart(segmentNumber); ExpressionContext context = createExpressionContext(start); Result result = expression.calculateResult(context); if (result == null) { return true; } LookupElement[] items = expression.calculateLookupItems(context); return items != null && items.length > 1; }