code: public static boolean isConstantOrConstantLiteral(Expression expression) {
          return expression instanceof ConstantExpression ||
              isPredefinedConstant(expression) ||
              isMapLiteralWithOnlyConstantValues(expression) ||
              isListLiteralWithOnlyConstantValues(expression);
      }
docs: Returns true if an expression is a constant or else a literal that contains only constant values.
  Basically, is it a constant, or else a map like [a:1, b:99, c:true], or a list like ['abc', 99.0, false]
  @param expression - any expression