/// <summary> /// Determines if the current filter settings includes the provided /// node. /// </summary> /// <param name="filter">The filter settings to use.</param> /// <param name="node">The node to check against.</param> /// <returns>True if the node is accepted, otherwise false.</returns> public static Boolean Accepts(this FilterSettings filter, INode node) { switch (node.NodeType) { case NodeType.Attribute: return(filter.HasFlag(FilterSettings.Attribute)); case NodeType.CharacterData: return(filter.HasFlag(FilterSettings.CharacterData)); case NodeType.Comment: return(filter.HasFlag(FilterSettings.Comment)); case NodeType.Document: return(filter.HasFlag(FilterSettings.Document)); case NodeType.DocumentFragment: return(filter.HasFlag(FilterSettings.DocumentFragment)); case NodeType.DocumentType: return(filter.HasFlag(FilterSettings.DocumentType)); case NodeType.Element: return(filter.HasFlag(FilterSettings.Element)); case NodeType.Entity: return(filter.HasFlag(FilterSettings.Entity)); case NodeType.EntityReference: return(filter.HasFlag(FilterSettings.EntityReference)); case NodeType.ProcessingInstruction: return(filter.HasFlag(FilterSettings.ProcessingInstruction)); case NodeType.Notation: return(filter.HasFlag(FilterSettings.Notation)); case NodeType.Text: return(filter.HasFlag(FilterSettings.Text)); } return(filter == FilterSettings.All); }