package org.togglz.core.manager;
import java.util.List;
import java.util.Set;
import org.togglz.core.Feature;
import org.togglz.core.activation.ActivationStrategyProvider;
import org.togglz.core.context.FeatureContext;
import org.togglz.core.metadata.FeatureMetaData;
import org.togglz.core.repository.FeatureState;
import org.togglz.core.spi.ActivationStrategy;
import org.togglz.core.user.FeatureUser;
/**
*
* A feature manager that delegates all calls to the manager obtained lazily via {@link FeatureContext#getFeatureManager()}.
*
* @author Christian Kaltepoth
*
*/
public class LazyResolvingFeatureManager implements FeatureManager {
private FeatureManager getDelegate() {
return FeatureContext.getFeatureManager();
}
@Override
public String getName() {
return getDelegate().getName();
}
@Override
public Set<Feature> getFeatures() {
return getDelegate().getFeatures();
}
@Override
public FeatureMetaData getMetaData(Feature feature) {
return getDelegate().getMetaData(feature);
}
@Override
public boolean isActive(Feature feature) {
return getDelegate().isActive(feature);
}
@Override
public FeatureUser getCurrentFeatureUser() {
return getDelegate().getCurrentFeatureUser();
}
@Override
public FeatureState getFeatureState(Feature feature) {
return getDelegate().getFeatureState(feature);
}
@Override
public void setFeatureState(FeatureState state) {
getDelegate().setFeatureState(state);
}
@Override
public List<ActivationStrategy> getActivationStrategies() {
return getDelegate().getActivationStrategies();
}
}