Class HasParentFilter

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, NodeFilter

    public class HasParentFilter
    extends java.lang.Object
    implements NodeFilter
    This class accepts all tags that have a parent acceptable to another filter. It can be set to operate recursively, that is perform a scan up the node heirarchy looking for any ancestor that matches the predicate filter. End tags are not considered to be children of any tag.
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected NodeFilter mParentFilter
      The filter to apply to the parent.
      protected boolean mRecursive
      Performs a recursive search up the node heirarchy if true.
    • Constructor Summary

      Constructors 
      Constructor Description
      HasParentFilter()
      Creates a new instance of HasParentFilter.
      HasParentFilter​(NodeFilter filter)
      Creates a new instance of HasParentFilter that accepts nodes with the direct parent acceptable to the filter.
      HasParentFilter​(NodeFilter filter, boolean recursive)
      Creates a new instance of HasParentFilter that accepts nodes with a parent acceptable to the filter.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean accept​(Node node)
      Accept tags with parent acceptable to the filter.
      NodeFilter getParentFilter()
      Get the filter used by this HasParentFilter.
      boolean getRecursive()
      Get the recusion setting for the filter.
      void setParentFilter​(NodeFilter filter)
      Set the filter for this HasParentFilter.
      void setRecursive​(boolean recursive)
      Sets whether the filter is recursive or not.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • mParentFilter

        protected NodeFilter mParentFilter
        The filter to apply to the parent.
      • mRecursive

        protected boolean mRecursive
        Performs a recursive search up the node heirarchy if true.
    • Constructor Detail

      • HasParentFilter

        public HasParentFilter()
        Creates a new instance of HasParentFilter. With no parent filter, this would always return false from accept(org.htmlparser.Node).
      • HasParentFilter

        public HasParentFilter​(NodeFilter filter)
        Creates a new instance of HasParentFilter that accepts nodes with the direct parent acceptable to the filter.
        Parameters:
        filter - The filter to apply to the parent.
      • HasParentFilter

        public HasParentFilter​(NodeFilter filter,
                               boolean recursive)
        Creates a new instance of HasParentFilter that accepts nodes with a parent acceptable to the filter.
        Parameters:
        filter - The filter to apply to the parent.
        recursive - If true, any enclosing node acceptable to the given filter causes the node being tested to be accepted (i.e. a recursive scan through the parent nodes up the node heirarchy is performed).
    • Method Detail

      • getParentFilter

        public NodeFilter getParentFilter()
        Get the filter used by this HasParentFilter.
        Returns:
        The filter to apply to parents.
      • setParentFilter

        public void setParentFilter​(NodeFilter filter)
        Set the filter for this HasParentFilter.
        Parameters:
        filter - The filter to apply to parents in accept(org.htmlparser.Node).
      • getRecursive

        public boolean getRecursive()
        Get the recusion setting for the filter.
        Returns:
        Returns true if the filter is recursive up the node heirarchy.
      • setRecursive

        public void setRecursive​(boolean recursive)
        Sets whether the filter is recursive or not.
        Parameters:
        recursive - The recursion setting for the filter.
      • accept

        public boolean accept​(Node node)
        Accept tags with parent acceptable to the filter. If recursion is enabled, each parent in turn up to the topmost enclosing node is checked. Recursion only proceeds while no parent satisfies the filter.
        Specified by:
        accept in interface NodeFilter
        Parameters:
        node - The node to check.
        Returns:
        true if the node has an acceptable parent, false otherwise.