package com.chenyang.druid.sql.visitor.functions;

import com.chenyang.druid.sql.ast.SQLExpr;
import com.chenyang.druid.sql.ast.expr.SQLCharExpr;
import com.chenyang.druid.sql.ast.expr.SQLMethodInvokeExpr;
import com.chenyang.druid.sql.visitor.SQLEvalVisitor;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;

public class ToDate implements Function {
   public static final ToDate instance = new ToDate();

   public Object eval(SQLEvalVisitor visitor, SQLMethodInvokeExpr x) {
      List<SQLExpr> arguments = x.getArguments();
      if (arguments.size() == 0) {
         return SQLEvalVisitor.EVAL_ERROR;
      } else {
         if (arguments.size() == 2 && arguments.get(0) instanceof SQLCharExpr && arguments.get(1) instanceof SQLCharExpr) {
            String chars = ((SQLCharExpr)arguments.get(0)).getText();
            String format = ((SQLCharExpr)arguments.get(1)).getText();
            if (format.equals("yyyymmdd")) {
               SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");

               try {
                  return dateFormat.parse(chars);
               } catch (ParseException var8) {
                  return false;
               }
            }
         }

         return null;
      }
   }
}
