boolean (@NotNull T t, ProcessingContext context) { final ParentType parent = getParent(t); if (parent == null) return false; final ParentType[] children = getChildren(parent); int i = Arrays.asList(children).indexOf(t); while (--i >= 0) { if (!skip.accepts(children[i], context)) { return pattern.accepts(children[i], context); } } return false; }