@Override
    public Object invoke(Object object, Method method, Object[] params) throws Throwable {
      final boolean needUpdate = myCheckedNames.contains(method.getName());
      try {
        final Object result = method.invoke(myDelegateModel, unwrapParams(params));
        if (result instanceof LibraryTable table) {
          return ReflectionUtil.proxy(getClass().getClassLoader(), LibraryTable.class,
                                      new LibraryTableInvocationHandler(table));
        }
        return result;
      }
      catch (InvocationTargetException e) {
        throw e.getCause();
      }
      finally {
        if (needUpdate) {
          updateOrderEntriesInEditors(true);
        }
      }
    }
@Override
    public Object invoke(Object object, Method method, Object[] params)