CollectionPattern<T> (final ElementPattern<? extends T> pattern) { return with(new PatternCondition<Collection<T>>("all") { @Override public boolean accepts(final @NotNull Collection<T> collection, final ProcessingContext context) { for (final T t : collection) { if (!pattern.accepts(t, context)) return false; } return true; } }); }