From f5546691a397112d5d8fd0740c16f1db0730eee7 Mon Sep 17 00:00:00 2001 From: Justin Abrahms Date: Fri, 27 May 2022 20:52:25 -0700 Subject: [PATCH] Settle on interface w/ default methods. Fixes #8 --- lib/src/main/java/dev/openfeature/javasdk/Hook.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/src/main/java/dev/openfeature/javasdk/Hook.java b/lib/src/main/java/dev/openfeature/javasdk/Hook.java index 4976c5e3..5d38b16e 100644 --- a/lib/src/main/java/dev/openfeature/javasdk/Hook.java +++ b/lib/src/main/java/dev/openfeature/javasdk/Hook.java @@ -4,12 +4,11 @@ import com.google.common.collect.ImmutableMap; import java.util.Optional; -// TODO: interface? or abstract class? -public abstract class Hook { - public Optional before(HookContext ctx, ImmutableMap hints) { +public interface Hook { + default Optional before(HookContext ctx, ImmutableMap hints) { return Optional.empty(); } - public void after(HookContext ctx, FlagEvaluationDetails details, ImmutableMap hints) {} - public void error(HookContext ctx, Exception error, ImmutableMap hints) {} - public void finallyAfter(HookContext ctx, ImmutableMap hints) {} + default void after(HookContext ctx, FlagEvaluationDetails details, ImmutableMap hints) {} + default void error(HookContext ctx, Exception error, ImmutableMap hints) {} + default void finallyAfter(HookContext ctx, ImmutableMap hints) {} }