code: public Object evaluate(Object pContext,
                             VariableResolver pResolver,
                             Map functions,
                             String defaultPrefix,
                             Logger pLogger)
              throws ELException {
          Object value = mExpression.evaluate(pContext, pResolver, functions,
                  defaultPrefix, pLogger);
          for (int i = 0; i < mOperators.size(); i++) {
              BinaryOperator operator = (BinaryOperator) mOperators.get(i);
  
              // For the And/Or operators, we need to coerce to a boolean
              // before testing if we shouldEvaluate
              if (operator.shouldCoerceToBoolean()) {
                  value = Coercions.coerceToBoolean(value, pLogger);
              }
  
              if (operator.shouldEvaluate(value)) {
                  Expression expression = (Expression) mExpressions.get(i);
                  Object nextValue = expression.evaluate(pContext, pResolver,
                          functions, defaultPrefix,
                          pLogger);
  
                  value = operator.apply(value, nextValue, pContext, pLogger);
              }
          }
          return value;
      }
docs: Evaluates to the literal value