public @NotNull Self with(@NotNull PatternCondition<? super T> pattern) {
    final ElementPatternCondition<T> condition = getCondition().append(pattern);
    return adapt(condition);
  }
public @NotNull Self with(@NotNull PatternCondition<? super T> pattern)