View Javadoc
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  }