code: public static Object getValue(Expression exp, Class clazz, KunderaQuery kunderaQuery)
      {
          if (StringLiteral.class.isAssignableFrom(exp.getClass()))
          {
              return ((StringLiteral) exp).getUnquotedText();
  
          }
          else if (NumericLiteral.class.isAssignableFrom(exp.getClass()))
          {
              return PropertyAccessorFactory.getPropertyAccessor(clazz).fromString(clazz,
                      ((NumericLiteral) exp).getText());
          }
          else if (InputParameter.class.isAssignableFrom(exp.getClass()))
          {
              InputParameter ip = (InputParameter) exp;
              if (kunderaQuery.getParametersMap().containsKey(ip.getParameter()))
              {
                  return kunderaQuery.getParametersMap().get(ip.getParameter());
              }
              else
              {
                  return ip.getParameter();
              }
          }
          else if (KeywordExpression.class.isAssignableFrom(exp.getClass()))
          {
              KeywordExpression keyWordExp = (KeywordExpression) exp;
              return PropertyAccessorFactory.getPropertyAccessor(clazz).fromString(clazz,
                      keyWordExp.getActualIdentifier());
          }
          else if (IdentificationVariable.class.isAssignableFrom(exp.getClass()))
          {
              IdentificationVariable idvExp = (IdentificationVariable) exp;
              return idvExp.getText();
          }
          else
          {
              logger.warn("Arithmetic expression is not supported ");
              throw new KunderaException("Arithmetic expression is not supported currently");
          }
      }
docs: Gets the value.
  
  @param exp
  the exp
  @param clazz
  the clazz
  @return the value