HTML Parser Home Page

org.htmlparser.filters
Class HasChildFilter

java.lang.Object
  extended by org.htmlparser.filters.HasChildFilter
All Implemented Interfaces:
Serializable, Cloneable, NodeFilter

public class HasChildFilter
extends Object
implements NodeFilter

This class accepts all tags that have a child acceptable to the filter. It can be set to operate recursively, that is perform a scan down through the node heirarchy in a breadth first traversal looking for any descendant that matches the predicate filter (which stops the search).

See Also:
Serialized Form

Field Summary
protected  NodeFilter mChildFilter
          The filter to apply to children.
protected  boolean mRecursive
          Performs a recursive search down the node heirarchy if true.
 
Constructor Summary
HasChildFilter()
          Creates a new instance of a HasChildFilter.
HasChildFilter(NodeFilter filter)
          Creates a new instance of HasChildFilter that accepts nodes with a direct child acceptable to the filter.
HasChildFilter(NodeFilter filter, boolean recursive)
          Creates a new instance of HasChildFilter that accepts nodes with a child acceptable to the filter.
 
Method Summary
 boolean accept(Node node)
          Accept tags with children acceptable to the filter.
 NodeFilter getChildFilter()
          Get the filter used by this HasParentFilter.
 boolean getRecursive()
          Get the recusion setting for the filter.
 void setChildFilter(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

mChildFilter

protected NodeFilter mChildFilter
The filter to apply to children.


mRecursive

protected boolean mRecursive
Performs a recursive search down the node heirarchy if true.

Constructor Detail

HasChildFilter

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


HasChildFilter

public HasChildFilter(NodeFilter filter)
Creates a new instance of HasChildFilter that accepts nodes with a direct child acceptable to the filter.

Parameters:
filter - The filter to apply to the children.

HasChildFilter

public HasChildFilter(NodeFilter filter,
                      boolean recursive)
Creates a new instance of HasChildFilter that accepts nodes with a child acceptable to the filter. Of necessity, this applies only to composite tags, i.e. those that can contain other nodes, for example <HTML></HTML>.

Parameters:
filter - The filter to apply to children.
recursive - If true, any enclosed node acceptable to the given filter causes the node being tested to be accepted (i.e. a recursive scan through the child nodes down the node heirarchy is performed).
Method Detail

getChildFilter

public NodeFilter getChildFilter()
Get the filter used by this HasParentFilter.

Returns:
The filter to apply to parents.

setChildFilter

public void setChildFilter(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 children acceptable to the filter.

Specified by:
accept in interface NodeFilter
Parameters:
node - The node to check.
Returns:
true if the node has an acceptable child, false otherwise.

© 2006 Derrick Oswald
Sep 17, 2006

HTML Parser is an open source library released under Common Public License. SourceForge.net