private FormulaVariable findVariableForPath( VariablePathExpression attributePath, List<List<FormulaVariable>> variables) { // for (int i = variables.size() - 1; i >= 0; i--) { for (int i = 0; i < variables.size(); i++) { List<FormulaVariable> variableList = variables.get(i); for (FormulaVariable formulaVariable : variableList) { if (SpicyEngineUtility.containsPathWithSameVariableId( formulaVariable.getOriginalSourceOccurrencePaths(), attributePath)) { return formulaVariable; } } for (FormulaVariable formulaVariable : variableList) { if (SpicyEngineUtility.containsPathWithSameVariableId( formulaVariable.getSourceOccurrencePaths(), attributePath)) { return formulaVariable; } } } throw new IllegalArgumentException( "Unable to find variable for path " + attributePath + " in " + SpicyEngineUtility.printListOfVariableLists(variables)); }