org.jdom.filter

Class ContentFilter

Implemented Interfaces:
Filter

public class ContentFilter
extends java.lang.Object
implements Filter

ContentFilter is a general purpose Filter representing all legal JDOM objects and allows the ability to set and unset the visiblity of these objects. Filtering is accomplished by way of a filtering mask in which each bit represents whether a JDOM object is visible or not.

For example to view all Text and CDATA nodes in the content of element x.


      Filter filter = new ContentFilter(ContentFilter.TEXT |
                                        ContentFilter.CDATA);
      List content = x.getContent(filter);
 

For those who don't like bit-masking, set methods are provided as an alternative. For example to allow everything except Comment nodes.


      Filter filter =  new ContentFilter();
      filter.setCommentVisible(false);
      List content = x.getContent(filter);
 

The default is to allow all valid JDOM objects.

Version:
$Revision: 1.1 $, $Date: 2002/03/12 07:00:50 $

Author:
Bradley S. Huffman

Field Summary

static int
CDATA
Mask for JDOM CDATA objects
static int
COMMENT
Mask for JDOM Comment objects
static int
DOCUMENT
Mask for JDOM Document object
static int
ELEMENT
Mask for JDOM Element objects
static int
ENTITYREF
Mask for JDOM EnitityRef objects
static int
PI
Mask for JDOM ProcessingInstruction objects
static int
TEXT
Mask for JDOM Text objects
protected int
filterMask
The JDOM object mask

Constructor Summary

ContentFilter()
Default constructor that allows any legal JDOM objects.
ContentFilter(boolean allVisible)
Set whether all JDOM objects are visible or not.
ContentFilter(int mask)
Filter out JDOM objects according to a filtering mask.

Method Summary

boolean
canAdd(Object obj)
Check to see if the object can be added to the list.
boolean
canRemove(Object obj)
Check to see if the object can be removed from the list.
boolean
equals(Object obj)
Returns true if object is instance of ContentFilter and has the same filtering mask as this one.
int
getFilterMask()
Return current filtering mask.
boolean
matches(Object obj)
Check to see if the object matches according to the filter mask.
void
setCDATAVisible(boolean visible)
Set visiblity of CDATA objects.
void
setCommentVisible(boolean visible)
Set visiblity of Comment objects.
void
setDefaultMask()
Set this filter to allow all legal JDOM objects.
void
setDocumentContent()
Set filter to match only JDOM objects that are legal document content.
void
setElementContent()
Set filter to match only JDOM objects that are legal element content.
void
setElementVisible(boolean visible)
Set visiblity of Element objects.
void
setEntityRefVisible(boolean visible)
Set visiblity of EntityRef objects.
void
setFilterMask(int mask)
Set filtering mask.
void
setPIVisible(boolean visible)
Set visiblity of ProcessingInstruction objects.
void
setTextVisible(boolean visible)
Set visiblity of Text objects.

Field Details

CDATA

public static final int CDATA
Mask for JDOM CDATA objects

Field Value:
2


COMMENT

public static final int COMMENT
Mask for JDOM Comment objects

Field Value:
8


DOCUMENT

public static final int DOCUMENT
Mask for JDOM Document object

Field Value:
64


ELEMENT

public static final int ELEMENT
Mask for JDOM Element objects

Field Value:
1


ENTITYREF

public static final int ENTITYREF
Mask for JDOM EnitityRef objects

Field Value:
32


PI

public static final int PI
Mask for JDOM ProcessingInstruction objects

Field Value:
16


TEXT

public static final int TEXT
Mask for JDOM Text objects

Field Value:
4


filterMask

protected int filterMask
The JDOM object mask

Constructor Details

ContentFilter

public ContentFilter()
Default constructor that allows any legal JDOM objects.


ContentFilter

public ContentFilter(boolean allVisible)
Set whether all JDOM objects are visible or not.

Parameters:
allVisible - true all JDOM objects are visible, false all JDOM objects are hidden.


ContentFilter

public ContentFilter(int mask)
Filter out JDOM objects according to a filtering mask.

Parameters:
mask - Mask of JDOM objects to allow.

Method Details

canAdd

public boolean canAdd(Object obj)
Check to see if the object can be added to the list.
Specified by:
canAdd in interface Filter

Parameters:
obj - The object to verify.

Returns:
true if the object can be added.


canRemove

public boolean canRemove(Object obj)
Check to see if the object can be removed from the list.
Specified by:
canRemove in interface Filter

Parameters:
obj - The object to verify.

Returns:
true if the object can be removed.


equals

public boolean equals(Object obj)
Returns true if object is instance of ContentFilter and has the same filtering mask as this one.

Returns:
true if the Filters are equal


getFilterMask

public int getFilterMask()
Return current filtering mask.


matches

public boolean matches(Object obj)
Check to see if the object matches according to the filter mask.
Specified by:
matches in interface Filter

Parameters:
obj - The object to verify.

Returns:
true if the objected matched a predfined set of rules.


setCDATAVisible

public void setCDATAVisible(boolean visible)
Set visiblity of CDATA objects.

Parameters:
visible - whether CDATA nodes are visible, true if yes, false if not


setCommentVisible

public void setCommentVisible(boolean visible)
Set visiblity of Comment objects.

Parameters:
visible - whether Comments are visible, true if yes, false if not


setDefaultMask

public void setDefaultMask()
Set this filter to allow all legal JDOM objects.


setDocumentContent

public void setDocumentContent()
Set filter to match only JDOM objects that are legal document content.


setElementContent

public void setElementContent()
Set filter to match only JDOM objects that are legal element content.


setElementVisible

public void setElementVisible(boolean visible)
Set visiblity of Element objects.

Parameters:
visible - whether Elements are visible, true if yes, false if not


setEntityRefVisible

public void setEntityRefVisible(boolean visible)
Set visiblity of EntityRef objects.

Parameters:
visible - whether EntityRefs are visible, true if yes, false if not


setFilterMask

public void setFilterMask(int mask)
Set filtering mask.


setPIVisible

public void setPIVisible(boolean visible)
Set visiblity of ProcessingInstruction objects.

Parameters:
visible - whether ProcessingInstructions are visible, true if yes, false if not


setTextVisible

public void setTextVisible(boolean visible)
Set visiblity of Text objects.

Parameters:
visible - whether Text nodes are visible, true if yes, false if not


Copyright B) 2002 Jason Hunter, Brett McLaughlin. All Rights Reserved.