1 package pk.lucidxpo.ynami.spring.features; 2 3 import jakarta.validation.constraints.NotNull; 4 import org.springframework.beans.factory.annotation.Autowired; 5 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; 6 import org.springframework.stereotype.Component; 7 import org.togglz.core.Feature; 8 import org.togglz.core.manager.FeatureManager; 9 import org.togglz.core.repository.FeatureState; 10 11 @Component 12 @ConditionalOnProperty(name = "config.togglz.enabled", havingValue = "true") 13 public class FeatureManagerWrapper implements FeatureManagerWrappable { 14 private final FeatureManager featureManager; 15 16 @Autowired 17 public FeatureManagerWrapper(final FeatureManager featureManager) { 18 this.featureManager = featureManager; 19 } 20 21 @Override 22 public boolean isActive(@NotNull final Feature feature) { 23 return featureManager.getFeatureState(feature).isEnabled(); 24 } 25 26 @Override 27 public void activate(@NotNull final Feature feature) { 28 featureManager.setFeatureState(new FeatureState(feature).enable()); 29 } 30 31 @Override 32 public void deactivate(@NotNull final Feature feature) { 33 featureManager.setFeatureState(new FeatureState(feature).disable()); 34 } 35 }