package de.otto.edison.togglz;
import de.otto.edison.togglz.configuration.TogglzProperties;
import org.togglz.core.Feature;
import org.togglz.core.manager.TogglzConfig;
import org.togglz.core.repository.StateRepository;
import org.togglz.core.repository.cache.CachingStateRepository;
import org.togglz.core.user.UserProvider;
public class DefaultTogglzConfig implements TogglzConfig {
private StateRepository stateRepository;
private UserProvider userProvider;
private FeatureClassProvider featureClassProvider;
public DefaultTogglzConfig(final TogglzProperties properties,
final StateRepository stateRepository,
final UserProvider userProvider,
final FeatureClassProvider featureClassProvider) {
if (properties.getCacheTtl() > 0) {
this.stateRepository = new CachingStateRepository(stateRepository, properties.getCacheTtl());
} else {
this.stateRepository = stateRepository;
}
this.userProvider = userProvider;
this.featureClassProvider = featureClassProvider;
}
@Override
public Class<? extends Feature> getFeatureClass() {
return featureClassProvider.getFeatureClass();
}
@Override
public StateRepository getStateRepository() {
return stateRepository;
}
@Override
public UserProvider getUserProvider() {
return userProvider;
}
}