class ContextConc implements Context {

  @SuppressWarnings("unchecked")
  @Override
  public <T> T getOrDefault(final Key<T> key, final T defaultValue) {
    assertNotNull(key, "Key must not null");
    final T value = (T) this.key2Value.get(key);
    return null != value ? value : defaultValue;
  }

   <T> ContextConc(final Context parent, final String scope);
   <T> ContextConc(final Context parent, final Key<T> key, final T value);

}