/// <summary>Initializes a new instance of the <see cref="NegationArgNode"/> class.</summary> /// <param name="typeSelectorNode">The type selector node.</param> /// <param name="universalSelectorNode">The universal selector node.</param> /// <param name="hash">The hash.</param> /// <param name="cssClass">The css class.</param> /// <param name="attribNode">The attrib node.</param> /// <param name="pseudoNode">The pseudo node.</param> public NegationArgNode(TypeSelectorNode typeSelectorNode, UniversalSelectorNode universalSelectorNode, string hash, string cssClass, AttribNode attribNode, PseudoNode pseudoNode) { if (typeSelectorNode != null) { if (universalSelectorNode != null || !string.IsNullOrWhiteSpace(hash) || !string.IsNullOrWhiteSpace(cssClass) || attribNode != null || pseudoNode != null) { throw new AstException(ExceptionMessage); } } if (universalSelectorNode != null) { if (!string.IsNullOrWhiteSpace(hash) || !string.IsNullOrWhiteSpace(cssClass) || attribNode != null || pseudoNode != null) { throw new AstException(ExceptionMessage); } } if (!string.IsNullOrWhiteSpace(hash)) { if (!string.IsNullOrWhiteSpace(cssClass) || attribNode != null || pseudoNode != null) { throw new AstException(ExceptionMessage); } } if (!string.IsNullOrWhiteSpace(cssClass)) { if (attribNode != null || pseudoNode != null) { throw new AstException(ExceptionMessage); } } if (attribNode != null) { if (pseudoNode != null) { throw new AstException(ExceptionMessage); } } this.TypeSelectorNode = typeSelectorNode; this.UniversalSelectorNode = universalSelectorNode; this.Hash = hash; this.CssClass = cssClass; this.AttribNode = attribNode; this.PseudoNode = pseudoNode; }
/// <summary>Initializes a new instance of the <see cref="SimpleSelectorSequenceNode"/> class.</summary> /// <param name="typeSelectorNode">The type selector node.</param> /// <param name="universalSelectorNode">The universal selector node.</param> /// <param name="separator">The whitespace separator</param> /// <param name="simpleSelectorValues">The simple selector values.</param> public SimpleSelectorSequenceNode(TypeSelectorNode typeSelectorNode, UniversalSelectorNode universalSelectorNode, string separator, ReadOnlyCollection <HashClassAtNameAttribPseudoNegationNode> simpleSelectorValues) { Contract.Requires(typeSelectorNode == null || universalSelectorNode == null); this.TypeSelectorNode = typeSelectorNode; this.UniversalSelectorNode = universalSelectorNode; this.Separator = separator ?? string.Empty; this.HashClassAttribPseudoNegationNodes = simpleSelectorValues ?? new List <HashClassAtNameAttribPseudoNegationNode>(0).AsReadOnly(); }