@Override
  public @Nullable Object getChild(Object object, int index) {
    if (index < 0) return null;
    List<? extends T> list = getChildren(object);
    return list != null && index < list.size() ? list.get(index) : null;
  }
@Override
  public @Nullable Object getChild(Object object, int index)