org.htmlparser.filters

Class HasParentFilter

public class HasParentFilter extends 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.
Field Summary
protected NodeFiltermParentFilter
The filter to apply to the parent.
protected booleanmRecursive
Performs a recursive search up the node heirarchy if true.
Constructor Summary
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
booleanaccept(Node node)
Accept tags with parent acceptable to the filter.
NodeFiltergetParentFilter()
Get the filter used by this HasParentFilter.
booleangetRecursive()
Get the recusion setting for the filter.
voidsetParentFilter(NodeFilter filter)
Set the filter for this HasParentFilter.
voidsetRecursive(boolean recursive)
Sets whether the filter is recursive or not.

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 {@link #accept}.

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

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.

Parameters: node The node to check.

Returns: true if the node has an acceptable parent, false otherwise.

getParentFilter

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

Returns: The filter to apply to parents.

getRecursive

public boolean getRecursive()
Get the recusion setting for the filter.

Returns: Returns true if the filter is recursive up the node heirarchy.

setParentFilter

public void setParentFilter(NodeFilter filter)
Set the filter for this HasParentFilter.

Parameters: filter The filter to apply to parents in {@link #accept}.

setRecursive

public void setRecursive(boolean recursive)
Sets whether the filter is recursive or not.

Parameters: recursive The recursion setting for the filter.

HTML Parser is an open source library released under LGPL. SourceForge.net