From c85db1bef75e5c9b7287ab7fdb6e1380d577c674 Mon Sep 17 00:00:00 2001 From: Ben Culkin Date: Sun, 22 Nov 2020 15:15:11 -0500 Subject: Add a 'context' type This was some example code I found somewhere that seemed interesting. --- src/main/java/bjc/data/IContext.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/main/java/bjc/data/IContext.java (limited to 'src/main/java/bjc/data/IContext.java') diff --git a/src/main/java/bjc/data/IContext.java b/src/main/java/bjc/data/IContext.java new file mode 100644 index 0000000..a1073f1 --- /dev/null +++ b/src/main/java/bjc/data/IContext.java @@ -0,0 +1,18 @@ +package bjc.data; + +public interface IContext { + void register(String name, Object o); + + IContext getParent(); + + Object get(String name); + + T get(Class contract); + + default T get(String name, Class contract) { + Object obj = get(name); + return obj == null + ? getParent().get(name, contract) + : contract.cast(obj); + }; +} -- cgit v1.2.3