diff options
Diffstat (limited to 'src/main/java/bjc/data/IContext.java')
| -rw-r--r-- | src/main/java/bjc/data/IContext.java | 18 |
1 files changed, 18 insertions, 0 deletions
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> T get(Class<T> contract); + + default <T> T get(String name, Class<T> contract) { + Object obj = get(name); + return obj == null + ? getParent().get(name, contract) + : contract.cast(obj); + }; +} |
