boolean (final @Nullable Object o, final ProcessingContext context) { if (!myInitialCondition.accepts(o, context)) return false; if (myConditions == null) return true; if (o == null) return false; if (myConditions instanceof PatternCondition) { return ((PatternCondition)myConditions).accepts(o, context); } List<PatternCondition<T>> list = (List<PatternCondition<T>>)myConditions; final int listSize = list.size(); //noinspection ForLoopReplaceableByForEach for (int i = 0; i < listSize; i++) { if (!list.get(i).accepts((T)o, context)) return false; } return true; }