package dev.openfeature.sdk; import dev.openfeature.sdk.exceptions.FlagNotFoundError; public class AlwaysBrokenWithDetailsProvider implements FeatureProvider { @Override public Metadata getMetadata() { return () -> { throw new FlagNotFoundError(TestConstants.BROKEN_MESSAGE); }; } @Override public ProviderEvaluation getBooleanEvaluation(String key, Boolean defaultValue, EvaluationContext ctx) { return ProviderEvaluation.builder() .errorMessage(TestConstants.BROKEN_MESSAGE) .errorCode(ErrorCode.FLAG_NOT_FOUND) .build(); } @Override public ProviderEvaluation getStringEvaluation(String key, String defaultValue, EvaluationContext ctx) { return ProviderEvaluation.builder() .errorMessage(TestConstants.BROKEN_MESSAGE) .errorCode(ErrorCode.FLAG_NOT_FOUND) .build(); } @Override public ProviderEvaluation getIntegerEvaluation(String key, Integer defaultValue, EvaluationContext ctx) { return ProviderEvaluation.builder() .errorMessage(TestConstants.BROKEN_MESSAGE) .errorCode(ErrorCode.FLAG_NOT_FOUND) .build(); } @Override public ProviderEvaluation getDoubleEvaluation(String key, Double defaultValue, EvaluationContext ctx) { return ProviderEvaluation.builder() .errorMessage(TestConstants.BROKEN_MESSAGE) .errorCode(ErrorCode.FLAG_NOT_FOUND) .build(); } @Override public ProviderEvaluation getObjectEvaluation( String key, Value defaultValue, EvaluationContext invocationContext) { return ProviderEvaluation.builder() .errorMessage(TestConstants.BROKEN_MESSAGE) .errorCode(ErrorCode.FLAG_NOT_FOUND) .build(); } }