class PathValueEventFilter implements Predicate<T> {

    @Override
    public boolean apply(Object input) {
        JXPathContext jxpath = JXPathContext.newContext(input);
        // We should allow non-existing path, and let predicate handle it. 
        jxpath.setLenient(true);
        
        @SuppressWarnings("unchecked")
        T value = (T)jxpath.getValue(xpath);
       
        return predicate.apply(value);
    }

    public  PathValueEventFilter(String path, ValuePredicate<T> predicate);

}