summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/data/IContext.java
blob: a1073f1528f6a95ed96c19ac05a8749d93abc0ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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);
	};
}