docs: @SuppressWarnings ("unchecked")
    @Nullable
    public static IMicroNode getAsNode (@Nonnull final IHCNode aSrcNode,
                                        @Nonnull final IHCConversionSettingsToNode aConversionSettings)
    {
      IHCNode aConvertNode = aSrcNode;
  
      // Special case for HCHtml - must have been done separately because the
      // extraction of the OOB nodes must happen before the HTML HEAD is filled
      if (!(aSrcNode instanceof HCHtml))
      {
        // Determine the target node to use
        final boolean bSrcNodeCanHaveChildren = aSrcNode instanceof IHCHasChildrenMutable <?, ?>;
        IHCHasChildrenMutable <?, IHCNode> aTempNode;
        if (bSrcNodeCanHaveChildren)
        {
          // Passed node can handle it
          aTempNode = (IHCHasChildrenMutable <?, IHCNode>) aSrcNode;
        }
        else
        {
          aTempNode = new HCNodeList ();
          aTempNode.addChild (aSrcNode);
        }
  
        // customize, finalize and extract resources
        prepareForConversion (aTempNode, aTempNode, aConversionSettings);
  
        // NOTE: no OOB extraction here, because it is unclear what would happen
        // to the nodes.
  
        // Select node to convert to MicroDOM - if something was extracted, use
        // the temp node
        if (!bSrcNodeCanHaveChildren && aTempNode.getChildCount () > 1)
          aConvertNode = aTempNode;
      }
  
      final IMicroNode aMicroNode = aConvertNode.convertToMicroNode (aConversionSettings);
      return aMicroNode;
    }