package org.crazycake.formSqlBuilder.ruleGenerator; import java.util.Map; import org.crazycake.formSqlBuilder.model.Rule; /** * 规则方案接口 * 所有规则方案都要实现该接口 * 直接传入一个规则方案类是另一种规则生成方法(相对于用json定义规则方案而言) * 优先级方面 直接传RuleScheme > 传 IRuleSchemeGenerator > json配置,如果全部没有就采用默认的DefaultRuleSchemeGenerator * 使用规则方案可以自动化根据某个规律生成规则,比如默认的规则方案是这样的: * 1. 检测带From字段是否有去除From后缀的字段存在,如果有将 col 设置为 去除From后的原字段 * 比如: 同时存在 purOrderDateFrom 和 purOrderDate 字段,则对purOrderDateFrom生成以下规则 * { "field":"purOrderDateFrom", "col":"purOrderDate", "op":">", "rel":"and" } 带To也做同样的处理 2. 有值的字段用lk生成规则 * @author alex.yang * */ public interface IRuleSchemeGenerator { /** * 生成规则映射表 * @return */ public Map<String, Rule> generateRuleScheme(Object form); }