package dev.openfeature.sdk; import lombok.Getter; /** * A {@link FeatureProvider} that simply returns the default values passed to it. */ public class NoOpProvider implements FeatureProvider { public static final String PASSED_IN_DEFAULT = "Passed in default"; @Getter private final String name = "No-op Provider"; // The Noop provider is ALWAYS NOT_READY, otherwise READY handlers would run immediately when attached. @Override public ProviderState getState() { return ProviderState.NOT_READY; } @Override public Metadata getMetadata() { return () -> name; } @Override public ProviderEvaluation getBooleanEvaluation(String key, Boolean defaultValue, EvaluationContext ctx) { return ProviderEvaluation.builder() .value(defaultValue) .variant(PASSED_IN_DEFAULT) .reason(Reason.DEFAULT.toString()) .build(); } @Override public ProviderEvaluation getStringEvaluation(String key, String defaultValue, EvaluationContext ctx) { return ProviderEvaluation.builder() .value(defaultValue) .variant(PASSED_IN_DEFAULT) .reason(Reason.DEFAULT.toString()) .build(); } @Override public ProviderEvaluation getIntegerEvaluation(String key, Integer defaultValue, EvaluationContext ctx) { return ProviderEvaluation.builder() .value(defaultValue) .variant(PASSED_IN_DEFAULT) .reason(Reason.DEFAULT.toString()) .build(); } @Override public ProviderEvaluation getDoubleEvaluation(String key, Double defaultValue, EvaluationContext ctx) { return ProviderEvaluation.builder() .value(defaultValue) .variant(PASSED_IN_DEFAULT) .reason(Reason.DEFAULT.toString()) .build(); } @Override public ProviderEvaluation getObjectEvaluation( String key, Value defaultValue, EvaluationContext invocationContext) { return ProviderEvaluation.builder() .value(defaultValue) .variant(PASSED_IN_DEFAULT) .reason(Reason.DEFAULT.toString()) .build(); } }