@Override
  public <T> T getUserData(@NotNull Key<T> key) {
    if (myUserData == null) {
      return null;
    }
    //noinspection unchecked
    return (T)myUserData.get(key);
  }
@Override
  public <T> T getUserData(@NotNull Key<T> key)