Example #1
0
        /// <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;
        }
Example #2
0
        /// <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();
        }