@Override
  public @NotNull List<? extends DomElement> getValues(final @NotNull DomElement element) {
    final DomInvocationHandler handler = DomManagerImpl.getDomInvocationHandler(element);
    if (handler != null) {
      return handler.getCollectionChildren(this);
    }
    final JavaMethod getterMethod = getGetterMethod();
    if (getterMethod == null) {
      final Collection<DomElement> collection = ModelMergerUtil.getFilteredImplementations(element);
      return ContainerUtil.concat(collection, (Function<DomElement, Collection<? extends DomElement>>)domElement -> {
        final DomInvocationHandler handler1 = DomManagerImpl.getDomInvocationHandler(domElement);
        assert handler1 != null : domElement;
        return handler1.getCollectionChildren(this);
      });
    }
    //noinspection unchecked
    return (List<? extends DomElement>)getterMethod.invoke(element, ArrayUtilRt.EMPTY_OBJECT_ARRAY);
  }
@Override
  public @NotNull List<? extends DomElement> getValues(final @NotNull DomElement element)