Matcher implements Predicate<Leaf> { public abstract boolean matchesParent(Leaf node); Matcher(); static Matcher all(); static Matcher of(CharSequence fields); boolean matchesAll(); abstract boolean matches(Leaf leaf); boolean matches(CharSequence path); abstract boolean matchesParent(Leaf node); boolean matchesParent(CharSequence path); Matcher transform(final Function<? super String, String> nameTransformer); @Override @Deprecated boolean apply(@Nullable Leaf input); @Override String toString(); @Override boolean equals(@Nullable Object obj); @Override int hashCode();  }
@Test @Parameters({ "root", "some", "some/path", "some/path/element", "mid", "mid/anything", "mid/anything/with/path", "mid/value", "sub", "sub/name", "sub/value", "sub/name/text", "sub/value/text" }) public void testMatchesParent(CharSequence matchingParent) { Matcher matcher = Matcher.of("root,some/path/element,mid/*/value,sub(name,value)/text"); assertTrue("matchesParent(" + matchingParent + ") is false", matcher.matchesParent(matchingParent)); }