package com.brilliance.isc.common.validator.es.support;

import jdk.nashorn.api.scripting.ScriptObjectMirror;

import javax.script.ScriptEngine;
import java.util.Map;

/**
 * 单项规则校验实现类
 * @author fukai
 */
public interface IRuleValidator {
    /**
     * 获取当前校验器的js实现函数
     * @return
     */
   String getValidateFunction();

    /**
     * 校验函数入口
     * @param value 当前字段的值
     * @param rule  规则对象
     * @param scriptEngine 当前ScriptEngine
     * @return
     */
   boolean validate(Object value, Map<String,Object> source, String type, ScriptObjectMirror rule, ScriptEngine scriptEngine);

}
