public override ContainerOrTerminalNode FinalAdjustAfterParsingComplete(ContainerOrTerminalNode node) { if (node is Container c) { switch (c.Type) { case ElementNames.Id: // side effect: set content here to be able to get it for MetaData as well node.Content = c.Children.FirstOrDefault(_ => _.Type == NodeType.Text)?.Content.Trim(); // ID shall be a terminal node return(node.ToTerminalNode()); case ElementNames.Metadata: node.Name = c.Children.FirstOrDefault(_ => _.Type == ElementNames.Id)?.Content.Trim(); break; } } return(base.FinalAdjustAfterParsingComplete(node)); }
public virtual ContainerOrTerminalNode FinalAdjustAfterParsingComplete(ContainerOrTerminalNode node) { return(ShallBeTerminalNode(node) ? node.ToTerminalNode() : node); }