protected Object parseParameter(ReportParameter parameter, String value)
      throws ProviderException {
    try {
      if (parameter.getClassName().equals("java.lang.String")) {
        return value;
      } else if (parameter.getClassName().equals("java.lang.Double")) {
        return new Double(value);
      } else if (parameter.getClassName().equals("java.lang.Integer")) {
        return new Integer(value);
      } else if (parameter.getClassName().equals("java.lang.Long")) {
        return new Long(value);
      } else if (parameter.getClassName().equals("java.math.BigDecimal")) {
        return new BigDecimal(value);
      } else if (parameter.getClassName().equals("java.util.Date")) {
        return dateProvider.parseDate(value);
      } else if (parameter.getClassName().equals("java.sql.Date")) {
        return dateProvider.parseDate(value);
      } else if (parameter.getClassName().equals("java.sql.Timestamp")) {
        long time = dateProvider.parseDate(value).getTime();
        return new Timestamp(time);
      } else if (parameter.getClassName().equals("java.lang.Boolean")) {
        return new Boolean(value);
      }
    } catch (Exception e) {
      throw new ProviderException(parameter.getName() + " Invalid: " + e.getMessage());
    }

    throw new ProviderException(parameter.getName() + " currently unsupported!");
  }
 protected void validateParameter(ReportParameter parameter, String value)
     throws ProviderException {
   try {
     if (parameter.getClassName().equals("java.lang.Double")) {
       new Double(value);
     } else if (parameter.getClassName().equals("java.lang.Integer")) {
       new Integer(value);
     } else if (parameter.getClassName().equals("java.lang.Long")) {
       new Long(value);
     } else if (parameter.getClassName().equals("java.math.BigDecimal")) {
       new BigDecimal(value);
     } else if (parameter.getClassName().equals("java.util.Date")
         || parameter.getClassName().equals("java.sql.Date")
         || parameter.getClassName().equals("java.sql.Timestamp")) {
       try {
         dateProvider.parseDate(value);
       } catch (Exception e) {
         throw new ProviderException(e.getMessage());
       }
     }
   } catch (Exception e) {
     throw new ProviderException(parameter.getDescription() + " Invalid: " + e.getMessage());
   }
 }