package org.togglz.core.activation; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.ServiceLoader; import org.togglz.core.spi.ActivationStrategy; /** * Implementation of {@link ActivationStrategyProvider} that loads the strategies using the JDK {@link ServiceLoader}. * * @author Jesse Kershaw */ public class DefaultActivationStrategyProvider implements ActivationStrategyProvider { private final List<ActivationStrategy> strategies = new ArrayList<ActivationStrategy>(); public DefaultActivationStrategyProvider() { for (ActivationStrategy activationStrategy : ServiceLoader.load(ActivationStrategy.class)) { strategies.add(activationStrategy); } } public void addActivationStrategy(ActivationStrategy strategy) { this.strategies.add(strategy); } public void addActivationStrategies(List<ActivationStrategy> strategies) { this.strategies.addAll(strategies); } @Override public List<ActivationStrategy> getActivationStrategies() { return Collections.unmodifiableList(this.strategies); } }