docs: @Nonnull
    @ReturnsMutableCopy
    public static ICommonsList <IHCElement <?>> recursiveGetAllChildrenWithTagName (@Nonnull final IHCNode aOwner,
                                                                                    @Nonnull @Nonempty final EHTMLElement... aElements)
    {
      ValueEnforcer.notNull (aOwner, "Owner");
      ValueEnforcer.notEmpty (aElements, "Elements");
  
      final ICommonsList <IHCElement <?>> ret = new CommonsArrayList <> ();
      HCHelper.iterateChildrenNonBreakable (aOwner, (aParentNode, aChildNode) -> {
        if (aChildNode instanceof IHCElement <?>)
        {
          final IHCElement <?> aCurrentElement = (IHCElement <?>) aChildNode;
          final String sCurrentTagName = aCurrentElement.getTagName ();
          for (final EHTMLElement aElement : aElements)
            if (sCurrentTagName.equalsIgnoreCase (aElement.getElementName ()))
            {
              ret.add (aCurrentElement);
              break;
            }
        }
      });
      return ret;
    }