package com.easyooo.framework.rule.impl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.easyooo.framework.rule.Rule; import com.easyooo.framework.rule.RuleContext; import com.easyooo.framework.rule.RuleEngine; import com.easyooo.framework.rule.RuleException; /** * @author Killer */ public class AroundRuleEngine implements RuleEngine { protected final Logger logger = LoggerFactory.getLogger(getClass()); private RuleEngine delegate; public AroundRuleEngine(RuleEngine delegate){ this.delegate = delegate; } @Override public <T> T eval(Rule rule) throws RuleException { return delegate.eval(rule, new Object[]{}); } @Override public <T> T eval(Rule rule, Object... dataMap) throws RuleException { check(rule); return delegate.eval(rule, dataMap); } private boolean check(Rule rule)throws RuleException{ if(rule == null || rule.getRuleText() == null || "".equals(rule.getRuleText())){ throw new RuleException("The rules can't be empty"); } return true; } @Override public void setContext(RuleContext context) { delegate.setContext(context); } @Override public boolean verifySyntax(Rule rule) throws RuleException { return delegate.verifySyntax(rule); } }