package com.plexobject.rbac.eval.simple; import java.util.Collection; import java.util.Map; import org.apache.log4j.Logger; import com.plexobject.rbac.eval.PredicateEvaluator; public class SimpleEvaluator implements PredicateEvaluator { private static final Logger LOGGER = Logger .getLogger(SimpleEvaluator.class); @Override public boolean evaluate(String rawExpr, Map<String, Object> args) { Collection<Expression> exprs = Expression.parse(rawExpr); for (Expression expr : exprs) { String value = args.get(expr.getName()).toString(); if (!expr.evaluate(value)) { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Expression " + expr + " failed against " + value + " with name " + expr.getName() + " in args " + args); } return false; } } return true; } }