package marubinotto.piggydb.model.predicate; import marubinotto.piggydb.model.Classifiable; import marubinotto.util.Assert; import org.apache.commons.collections.Predicate; import org.apache.commons.lang.UnhandledException; public abstract class PredicateBase implements Predicate { public boolean evaluate(Object object) { Assert.Arg.notNull(object, "object"); if (!(object instanceof Classifiable)) { return false; } try { return evaluate((Classifiable)object); } catch (Exception e) { throw new UnhandledException(e); } } protected abstract boolean evaluate(Classifiable classifiable) throws Exception; }