package com.ftinc.si.assist.test.web;

import java.util.ArrayList;
import java.util.HashMap;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;

import com.ftinc.si.assist.run.VCentral;

public class DBGetter extends PageAction {
	//画面の準備ができるまで待つ。Actionごとに待ち方が異なる。
	protected WebElement waitUntil(WebDriver drv) {
		return null;
	}

	public void doCore(WebDriver drv, WebElement elm) {
		HashMap<String, Object> t_map = new HashMap<String, Object>();

		String t_jpath = getArg("jpath").toString(); //拡張JsonPath部分. 「dbtest tableName....」
		String t_val = getArg("value").toString(); //拡張JsonPathのvalue部分
			//DBSetterの場合、単一のカラムの評価式なので、valueには文字列を使用する。

		t_map.put(t_jpath, t_val);
		VCentral.prepare(t_map);
	}


	//Assert判定する
	protected boolean assertable() {
		return true;
	}

	//正規表現があれば返す。
	protected ArrayList<String> getRegs() {
		if (assertable() && arg_map.get("value") != null) { //$NON-NLS-1$
			ArrayList<String> t_list = new ArrayList<String>();

			String t_reg = arg_map.get("value").toString();
			if (t_reg.toLowerCase().matches("^select\\s+.*$")) {
				t_list.add("true"); //$NON-NLS-1$
			} else {
				t_list.add(convertReg(arg_map.get("value").toString())); //$NON-NLS-1$
			}
			return t_list;
		}
		return null;
	}
}
