/// <summary> Determines whether the given selector name is valid according to this /// validator's policy. /// /// </summary> /// <param name="selectorName">the name of the selector /// </param> /// <param name="selector">the object representation of the selector /// </param> /// <param name="results">the <code>CleanResults</code> object to add any error /// messages to /// </param> /// <returns> true if this selector name is valid; false otherwise /// </returns> public virtual bool isValidSelector(System.String selectorName, Selector selector, CleanResults results) { // determine correct behavior switch (selector.getSelectorType()) { case CssValidator.SAC_ANY_NODE_SELECTOR: case CssValidator.SAC_ELEMENT_NODE_SELECTOR: case CssValidator.SAC_PSEUDO_ELEMENT_SELECTOR: case CssValidator.SAC_ROOT_NODE_SELECTOR: // these selectors are the most base selectors return(validateSimpleSelector((SimpleSelector)selector, results)); case CssValidator.SAC_CHILD_SELECTOR: case CssValidator.SAC_DESCENDANT_SELECTOR: // these are compound selectors - decompose into simple selectors DescendantSelector descSelector = (DescendantSelector)selector; return(isValidSelector(selectorName, descSelector.getSimpleSelector(), results) & isValidSelector(selectorName, descSelector.getAncestorSelector(), results)); case CssValidator.SAC_CONDITIONAL_SELECTOR: // this is a compound selector - decompose into simple selectors ConditionalSelector condSelector = (ConditionalSelector)selector; return(isValidSelector(selectorName, condSelector.getSimpleSelector(), results) & isValidCondition(selectorName, condSelector.getCondition(), results)); case CssValidator.SAC_DIRECT_ADJACENT_SELECTOR: // this is a compound selector - decompose into simple selectors SiblingSelector sibSelector = (SiblingSelector)selector; return(isValidSelector(selectorName, sibSelector.getSiblingSelector(), results) & isValidSelector(selectorName, sibSelector.getSelector(), results)); case CssValidator.SAC_NEGATIVE_SELECTOR: // this is a compound selector with one simple selector return(validateSimpleSelector((NegativeSelector)selector, results)); case CssValidator.SAC_CDATA_SECTION_NODE_SELECTOR: case CssValidator.SAC_COMMENT_NODE_SELECTOR: case CssValidator.SAC_PROCESSING_INSTRUCTION_NODE_SELECTOR: case CssValidator.SAC_TEXT_NODE_SELECTOR: default: results.addErrorMessage("Unknown selector in selector " + HTMLEntityEncoder.htmlEntityEncode(selectorName) + " encountered"); return(false); } }
/// <summary> Determines whether the given selector name is valid according to this /// validator's policy. /// /// </summary> /// <param name="selectorName">the name of the selector /// </param> /// <param name="selector">the object representation of the selector /// </param> /// <param name="results">the <code>CleanResults</code> object to add any error /// messages to /// </param> /// <returns> true if this selector name is valid; false otherwise /// </returns> public virtual bool isValidSelector(System.String selectorName, Selector selector, CleanResults results) { // determine correct behavior switch (selector.getSelectorType()) { case CssValidator.SAC_ANY_NODE_SELECTOR: case CssValidator.SAC_ELEMENT_NODE_SELECTOR: case CssValidator.SAC_PSEUDO_ELEMENT_SELECTOR: case CssValidator.SAC_ROOT_NODE_SELECTOR: // these selectors are the most base selectors return validateSimpleSelector((SimpleSelector)selector, results); case CssValidator.SAC_CHILD_SELECTOR: case CssValidator.SAC_DESCENDANT_SELECTOR: // these are compound selectors - decompose into simple selectors DescendantSelector descSelector = (DescendantSelector)selector; return isValidSelector(selectorName, descSelector.getSimpleSelector(), results) & isValidSelector(selectorName, descSelector.getAncestorSelector(), results); case CssValidator.SAC_CONDITIONAL_SELECTOR: // this is a compound selector - decompose into simple selectors ConditionalSelector condSelector = (ConditionalSelector)selector; return isValidSelector(selectorName, condSelector.getSimpleSelector(), results) & isValidCondition(selectorName, condSelector.getCondition(), results); case CssValidator.SAC_DIRECT_ADJACENT_SELECTOR: // this is a compound selector - decompose into simple selectors SiblingSelector sibSelector = (SiblingSelector)selector; return isValidSelector(selectorName, sibSelector.getSiblingSelector(), results) & isValidSelector(selectorName, sibSelector.getSelector(), results); case CssValidator.SAC_NEGATIVE_SELECTOR: // this is a compound selector with one simple selector return validateSimpleSelector((NegativeSelector)selector, results); case CssValidator.SAC_CDATA_SECTION_NODE_SELECTOR: case CssValidator.SAC_COMMENT_NODE_SELECTOR: case CssValidator.SAC_PROCESSING_INSTRUCTION_NODE_SELECTOR: case CssValidator.SAC_TEXT_NODE_SELECTOR: default: results.addErrorMessage("Unknown selector in selector " + HTMLEntityEncoder.htmlEntityEncode(selectorName) + " encountered"); return false; } }
// Generating method code for applyStyleFromSelector public virtual void ApplyStyleFromSelector(NHtmlUnit.W3C.Dom.Css.ICSSStyleDeclaration declaration, org.w3c.css.sac.Selector selector) { WObj.applyStyleFromSelector((org.w3c.dom.css.CSSStyleDeclaration)declaration.WrappedObject, selector); }