class Cake {

  @JsonIgnore
  public <T> T getContext() {
    if (this.prefixStack.isEmpty()) {
      throw new IllegalStateException("cannot get context in root namespace");
    } else {
      String prefix = this.getPrefixWithSeparator(this.prefixStack);
      prefix = prefix.substring(0, prefix.length() - 1);

      if (!entries.containsKey(prefix)) {
        throw new RuntimeException("cake does not contain context value for namespace " + prefix);
      }
      return (T) entries.get(prefix);
    }
  }

  public  Cake();
  public  Cake(Cake other);

}