@Override @SuppressWarnings({"unchecked", "varargs"}) public TraversalStrategies addStrategies(final TraversalStrategy<?>... strategies) { for (final TraversalStrategy<?> addStrategy : strategies) { this.traversalStrategies.remove(addStrategy); } Collections.addAll(this.traversalStrategies, strategies); this.traversalStrategies = TraversalStrategies.sortStrategies(this.traversalStrategies); return this; }
@Override @SuppressWarnings({"unchecked", "varargs"}) public TraversalStrategies removeStrategies(final Class<? extends TraversalStrategy>... strategyClasses) { boolean removed = false; for (final Class<? extends TraversalStrategy> strategyClass : strategyClasses) { final Optional<TraversalStrategy<?>> strategy = this.traversalStrategies.stream().filter(s -> s.getClass().equals(strategyClass)).findAny(); if (strategy.isPresent()) { this.traversalStrategies.remove(strategy.get()); removed = true; } } if (removed) this.traversalStrategies = TraversalStrategies.sortStrategies(this.traversalStrategies); return this; }
@Override @SuppressWarnings({"unchecked", "varargs"}) public TraversalStrategies addStrategies(final TraversalStrategy<?>... strategies) { for (final TraversalStrategy<?> addStrategy : strategies) { this.traversalStrategies.remove(addStrategy); } Collections.addAll(this.traversalStrategies, strategies); this.traversalStrategies = TraversalStrategies.sortStrategies(this.traversalStrategies); return this; }
@Override @SuppressWarnings({"unchecked", "varargs"}) public TraversalStrategies removeStrategies(final Class<? extends TraversalStrategy>... strategyClasses) { boolean removed = false; for (final Class<? extends TraversalStrategy> strategyClass : strategyClasses) { final Optional<TraversalStrategy<?>> strategy = this.traversalStrategies.stream().filter(s -> s.getClass().equals(strategyClass)).findAny(); if (strategy.isPresent()) { this.traversalStrategies.remove(strategy.get()); removed = true; } } if (removed) this.traversalStrategies = TraversalStrategies.sortStrategies(this.traversalStrategies); return this; }