Exemplo n.º 1
0
 internal CssSimpleSelectorSequence(ICssSelectorSequence sequence, CssSimpleSelector otherSelector)
     : base(CalculateSpecificity(sequence, otherSelector))
 {
     ArgChecker.AssertIsTrue <ArgumentException>(!(otherSelector is CssTypeSelector), "Selector sequence cannot contain more than one type selector.");
     _typeSelector   = sequence.TypeSelector;
     _otherSelectors = sequence.OtherSelectors.Add(otherSelector);
 }
Exemplo n.º 2
0
 internal CssSimpleSelectorSequence(ICssSelectorSequence sequence, CssPseudoElement pseudoElement)
     : base(CalculateSpecificity(sequence, pseudoElement))
 {
     ArgChecker.AssertIsTrue <ArgumentException>(sequence.Subject.PseudoElement == null, "Selector sequence cannot contain more than one pseudo-element.");
     _typeSelector   = sequence.TypeSelector;
     _otherSelectors = sequence.OtherSelectors;
     _pseudoElement  = pseudoElement;
 }
Exemplo n.º 3
0
 internal CssSelectorCombination(CssCombinator combinator, ICssSelectorChain leftOperand, ICssSelectorSequence rightOperand)
     : base(CalculateSpecificity(leftOperand, rightOperand))
 {
     ArgChecker.AssertIsTrue <ArgumentException>(leftOperand.Subject.PseudoElement == null,
                                                 "Pseudo-elements are only allowed in the right operand of a combinator");
     _combinator   = combinator;
     _leftOperand  = leftOperand;
     _rightOperand = rightOperand;
 }
Exemplo n.º 4
0
        internal CssAttributeSelector(string localName, string namespacePrefix, CssAttributeMatchOperator matchOperator, CssStringToken matchOperand)
            : base(DefaultSpecificity)
        {
            ArgChecker.AssertArgNotNullOrEmpty(localName, nameof(localName));
            ArgChecker.AssertIsTrue <ArgumentNullException>(
                matchOperator == CssAttributeMatchOperator.Any || matchOperand != null,
                string.Format(CultureInfo.InvariantCulture, "The {0} is required for match operator '{1}'.", nameof(matchOperand), matchOperator));

            _localName       = localName;
            _namespacePrefix = namespacePrefix;
            _matchOperator   = matchOperator;
            _matchOperand    = matchOperand;
        }
Exemplo n.º 5
0
 /// <summary>
 /// Creates a selector that consists of the :not() pseudo-class with this selector as argument.
 /// </summary>
 /// <returns>The newly created selector.</returns>
 public CssSimpleSelector Negate()
 {
     ArgChecker.AssertIsTrue <InvalidOperationException>(!(this is CssNegationSelector), "Double negation of selectors is not allowed");
     return(new CssNegationSelector(this));
 }