11package dev .openfeature .sdk ;
22
33import dev .openfeature .sdk .exceptions .OpenFeatureError ;
4+ import lombok .Getter ;
45import lombok .experimental .Delegate ;
56
67import java .util .concurrent .atomic .AtomicBoolean ;
78
8- class StatefulFeatureProvider implements FeatureProvider , EventProviderListener {
9+ class FeatureProviderStateManager implements EventProviderListener {
910
1011 private interface ExcludeFromDelegate {
1112 void initialize (EvaluationContext evaluationContext ) throws Exception ;
@@ -18,16 +19,16 @@ private interface ExcludeFromDelegate {
1819 @ Delegate (excludes = ExcludeFromDelegate .class )
1920 private final FeatureProvider delegate ;
2021 private final AtomicBoolean isInitialized = new AtomicBoolean ();
22+ @ Getter
2123 private ProviderState state = ProviderState .NOT_READY ;
2224
23- public StatefulFeatureProvider (FeatureProvider delegate ) {
25+ public FeatureProviderStateManager (FeatureProvider delegate ) {
2426 this .delegate = delegate ;
2527 if (delegate instanceof EventProvider ) {
2628 ((EventProvider ) delegate ).setEventProviderListener (this );
2729 }
2830 }
2931
30- @ Override
3132 public void initialize (EvaluationContext evaluationContext ) throws Exception {
3233 if (isInitialized .getAndSet (true )) {
3334 return ;
@@ -50,34 +51,12 @@ public void initialize(EvaluationContext evaluationContext) throws Exception {
5051 }
5152 }
5253
53- @ Override
5454 public void shutdown () {
5555 delegate .shutdown ();
5656 state = ProviderState .NOT_READY ;
5757 isInitialized .set (false );
5858 }
5959
60- @ Override
61- public ProviderState getState () {
62- return state ;
63- }
64-
65- @ Override
66- public int hashCode () {
67- return delegate .hashCode ();
68- }
69-
70- @ Override
71- public boolean equals (Object obj ) {
72- if (this == obj ) {
73- return true ;
74- }
75- if (obj instanceof StatefulFeatureProvider ) {
76- return delegate .equals (((StatefulFeatureProvider ) obj ).delegate );
77- }
78- return delegate .equals (obj );
79- }
80-
8160 @ Override
8261 public void onEmit (ProviderEvent event , ProviderEventDetails details ) {
8362 if (ProviderEvent .PROVIDER_ERROR .equals (event )) {
@@ -93,7 +72,11 @@ public void onEmit(ProviderEvent event, ProviderEventDetails details) {
9372 }
9473 }
9574
96- FeatureProvider getDelegate () {
75+ FeatureProvider getProvider () {
9776 return delegate ;
9877 }
78+
79+ public boolean hasSameProvider (FeatureProvider featureProvider ){
80+ return this .delegate .equals (featureProvider );
81+ }
9982}
0 commit comments