private static ComputedOGNLExpression obtainComputedOGNLExpression( final IEngineConfiguration configuration, final IStandardVariableExpression expression, final String exp, final boolean applyOGNLShortcuts) throws OgnlException { if (expression instanceof VariableExpression) { final VariableExpression vexpression = (VariableExpression) expression; Object cachedExpression = vexpression.getCachedExpression(); if (cachedExpression != null && cachedExpression instanceof ComputedOGNLExpression) { return (ComputedOGNLExpression) cachedExpression; } cachedExpression = parseComputedOGNLExpression(configuration, exp, applyOGNLShortcuts); if (cachedExpression != null) { vexpression.setCachedExpression(cachedExpression); } return (ComputedOGNLExpression) cachedExpression; } if (expression instanceof SelectionVariableExpression) { final SelectionVariableExpression vexpression = (SelectionVariableExpression) expression; Object cachedExpression = vexpression.getCachedExpression(); if (cachedExpression != null && cachedExpression instanceof ComputedOGNLExpression) { return (ComputedOGNLExpression) cachedExpression; } cachedExpression = parseComputedOGNLExpression(configuration, exp, applyOGNLShortcuts); if (cachedExpression != null) { vexpression.setCachedExpression(cachedExpression); } return (ComputedOGNLExpression) cachedExpression; } return parseComputedOGNLExpression(configuration, exp, applyOGNLShortcuts); }