Class Selector

java.lang.Object
org.xhtmlrenderer.css.newmatch.Selector

public class Selector extends Object
A Selector is really a chain of CSS selectors that all need to be valid for the selector to match.
  • Field Details

    • _parent

      private Ruleset _parent
    • chainedSelector

      private Selector chainedSelector
    • siblingSelector

      private Selector siblingSelector
    • _axis

      private int _axis
    • _name

      private String _name
    • _namespaceURI

      private String _namespaceURI
    • _pc

      private int _pc
    • _pe

      private String _pe
    • _specificityB

      private int _specificityB
    • _specificityC

      private int _specificityC
    • _specificityD

      private int _specificityD
    • _pos

      private int _pos
    • conditions

      private List<Condition> conditions
    • DESCENDANT_AXIS

      public static final int DESCENDANT_AXIS
      See Also:
    • CHILD_AXIS

      public static final int CHILD_AXIS
      See Also:
    • IMMEDIATE_SIBLING_AXIS

      public static final int IMMEDIATE_SIBLING_AXIS
      See Also:
    • VISITED_PSEUDOCLASS

      public static final int VISITED_PSEUDOCLASS
      See Also:
    • HOVER_PSEUDOCLASS

      public static final int HOVER_PSEUDOCLASS
      See Also:
    • ACTIVE_PSEUDOCLASS

      public static final int ACTIVE_PSEUDOCLASS
      See Also:
    • FOCUS_PSEUDOCLASS

      public static final int FOCUS_PSEUDOCLASS
      See Also:
    • selectorID

      private final int selectorID
      Give each a unique ID to be able to create a key to internalize Matcher.Mappers
    • selectorCount

      private static int selectorCount
  • Constructor Details

    • Selector

      public Selector()
  • Method Details

    • matches

      public boolean matches(Node e, AttributeResolver attRes, TreeResolver treeRes)
      Check if the given Element matches this selector. Note: the parser should give all class
    • matchesDynamic

      public boolean matchesDynamic(Node e, AttributeResolver attRes, TreeResolver treeRes)
      Check if the given Element matches this selector's dynamic properties. Note: the parser should give all class
    • addUnsupportedCondition

      public void addUnsupportedCondition()
      for unsupported or invalid CSS
    • addLinkCondition

      public void addLinkCondition()
      the CSS condition that element has pseudo-class :link
    • addFirstChildCondition

      public void addFirstChildCondition()
      the CSS condition that element has pseudo-class :first-child
    • addLastChildCondition

      public void addLastChildCondition()
      the CSS condition that element has pseudo-class :last-child
    • addNthChildCondition

      public void addNthChildCondition(String number)
      the CSS condition that element has pseudo-class :nth-child(an+b)
    • addEvenChildCondition

      public void addEvenChildCondition()
      the CSS condition that element has pseudo-class :even
    • addOddChildCondition

      public void addOddChildCondition()
      the CSS condition that element has pseudo-class :odd
    • addLangCondition

      public void addLangCondition(String lang)
      the CSS condition :lang(Xx)
    • addIDCondition

      public void addIDCondition(String id)
      the CSS condition #ID
    • addClassCondition

      public void addClassCondition(String className)
      the CSS condition .class
    • addAttributeExistsCondition

      public void addAttributeExistsCondition(String namespaceURI, String name)
      the CSS condition [attribute]
    • addAttributeEqualsCondition

      public void addAttributeEqualsCondition(String namespaceURI, String name, String value)
      the CSS condition [attribute=value]
    • addAttributePrefixCondition

      public void addAttributePrefixCondition(String namespaceURI, String name, String value)
      the CSS condition [attribute^=value]
    • addAttributeSuffixCondition

      public void addAttributeSuffixCondition(String namespaceURI, String name, String value)
      the CSS condition [attribute$=value]
    • addAttributeSubstringCondition

      public void addAttributeSubstringCondition(String namespaceURI, String name, String value)
      the CSS condition [attribute*=value]
    • addAttributeMatchesListCondition

      public void addAttributeMatchesListCondition(String namespaceURI, String name, String value)
      the CSS condition [attribute~=value]
    • addAttributeMatchesFirstPartCondition

      public void addAttributeMatchesFirstPartCondition(String namespaceURI, String name, String value)
      the CSS condition [attribute|=value]
    • setPseudoClass

      public void setPseudoClass(int pc)
      set which pseudo-classes must apply for this selector
      Parameters:
      pc - the values from AttributeResolver should be used. Once set they cannot be unset. Note that the pseudo-classes should be set one at a time, otherwise specificity of declaration becomes wrong.
    • setPseudoElement

      public void setPseudoElement(String pseudoElement)
      check if selector queries for dynamic properties
      Parameters:
      pseudoElement - The new pseudoElement value
    • isPseudoClass

      public boolean isPseudoClass(int pc)
      query if a pseudo-class must apply for this selector
      Parameters:
      pc - the values from AttributeResolver should be used.
      Returns:
      The pseudoClass value
    • getPseudoElement

      public String getPseudoElement()
      Gets the pseudoElement attribute of the Selector object
      Returns:
      The pseudoElement value
    • getChainedSelector

      public Selector getChainedSelector()
      get the next selector in the chain, for matching against elements along the appropriate axis
      Returns:
      The chainedSelector value
    • getRuleset

      public Ruleset getRuleset()
      get the Ruleset that this Selector is part of
      Returns:
      The ruleset value
    • getAxis

      public int getAxis()
      get the axis that this selector should be evaluated on
      Returns:
      The axis value
    • getSpecificityB

      public int getSpecificityB()
      The correct specificity value for this selector and its sibling-axis selectors
    • getSpecificityD

      public int getSpecificityD()
      The correct specificity value for this selector and its sibling-axis selectors
    • getSpecificityC

      public int getSpecificityC()
      The correct specificity value for this selector and its sibling-axis selectors
    • getOrder

      String getOrder()
      returns "a number in a large base" with specificity and specification order of selector
      Returns:
      The order value
    • getAppropriateSibling

      Node getAppropriateSibling(Node e, TreeResolver treeRes)
      Gets the appropriateSibling attribute of the Selector object
      Returns:
      The appropriateSibling value
    • addCondition

      private void addCondition(Condition c)
      Adds a feature to the Condition attribute of the Selector object
      Parameters:
      c - The feature to be added to the Condition attribute
    • getSelectorID

      public int getSelectorID()
    • setName

      public void setName(String name)
    • setPos

      public void setPos(int pos)
    • setParent

      public void setParent(Ruleset ruleset)
    • setAxis

      public void setAxis(int axis)
    • setSpecificityB

      public void setSpecificityB(int b)
    • setSpecificityC

      public void setSpecificityC(int c)
    • setSpecificityD

      public void setSpecificityD(int d)
    • setChainedSelector

      public void setChainedSelector(Selector selector)
    • setSiblingSelector

      public void setSiblingSelector(Selector selector)
    • setNamespaceURI

      public void setNamespaceURI(String namespaceURI)