Tagcoll::FilterItemsByExpression< ITEM, TAG > Class Template Reference

Remove the items that do not match a tag expression. More...

#include <Expression.h>

Inheritance diagram for Tagcoll::FilterItemsByExpression< ITEM, TAG >:

Inheritance graph
[legend]
Collaboration diagram for Tagcoll::FilterItemsByExpression< ITEM, TAG >:

Collaboration graph
[legend]
List of all members.

Public Types

enum  MatchType { PLAIN, INVERTED }

Public Member Functions

 FilterItemsByExpression (const Expression &expression)
 FilterItemsByExpression (const std::string &expression)
 FilterItemsByExpression (Consumer< ITEM, TAG > &cons, const Expression &expression)
 FilterItemsByExpression (Consumer< ITEM, TAG > &cons, const std::string &expression)
virtual ~FilterItemsByExpression ()
void setExpression (const Expression &expression)
 Set the expression to use for this filter.
void setExpression (const std::string &expression)
 Set the expression to use for this filter.
void setMatchType (MatchType type)
 Set the type of match.
int countMatched () const
 Return the number of items that matched the expression.

Protected Member Functions

bool match (const OpSet< TAG > &tags) const
virtual void consumeItemUntagged (const ITEM &item)
 Process an untagged item.
virtual void consumeItem (const ITEM &item, const OpSet< TAG > &tags)
 Process a tagged item, with its tags.
virtual void consumeItemsUntagged (const OpSet< ITEM > &items)
 Process a set of items, all with no tags.
virtual void consumeItems (const OpSet< ITEM > &items, const OpSet< TAG > &tags)
 Process a set of items identically tagged, with their tags.

Protected Attributes

Expression expr
MatchType matchType
int matched

Detailed Description

template<class ITEM, class TAG>
class Tagcoll::FilterItemsByExpression< ITEM, TAG >

Remove the items that do not match a tag expression.


Member Enumeration Documentation

template<class ITEM, class TAG>
enum Tagcoll::FilterItemsByExpression::MatchType
 

Enumerator:
PLAIN 
INVERTED 


Constructor & Destructor Documentation

template<class ITEM, class TAG>
Tagcoll::FilterItemsByExpression< ITEM, TAG >::FilterItemsByExpression const Expression expression  )  [inline]
 

template<class ITEM, class TAG>
Tagcoll::FilterItemsByExpression< ITEM, TAG >::FilterItemsByExpression const std::string &  expression  )  [inline]
 

template<class ITEM, class TAG>
Tagcoll::FilterItemsByExpression< ITEM, TAG >::FilterItemsByExpression Consumer< ITEM, TAG > &  cons,
const Expression expression
[inline]
 

template<class ITEM, class TAG>
Tagcoll::FilterItemsByExpression< ITEM, TAG >::FilterItemsByExpression Consumer< ITEM, TAG > &  cons,
const std::string &  expression
[inline]
 

template<class ITEM, class TAG>
virtual Tagcoll::FilterItemsByExpression< ITEM, TAG >::~FilterItemsByExpression  )  [inline, virtual]
 


Member Function Documentation

template<class ITEM, class TAG>
virtual void Tagcoll::FilterItemsByExpression< ITEM, TAG >::consumeItem const ITEM &  item,
const OpSet< TAG > &  tags
[inline, protected, virtual]
 

Process a tagged item, with its tags.

Reimplemented from Tagcoll::Filter< ITEM, TAG >.

template<class ITEM, class TAG>
virtual void Tagcoll::FilterItemsByExpression< ITEM, TAG >::consumeItems const OpSet< ITEM > &  items,
const OpSet< TAG > &  tags
[inline, protected, virtual]
 

Process a set of items identically tagged, with their tags.

Reimplemented from Tagcoll::Consumer< ITEM, TAG >.

template<class ITEM, class TAG>
virtual void Tagcoll::FilterItemsByExpression< ITEM, TAG >::consumeItemsUntagged const OpSet< ITEM > &  items  )  [inline, protected, virtual]
 

Process a set of items, all with no tags.

Reimplemented from Tagcoll::Consumer< ITEM, TAG >.

template<class ITEM, class TAG>
virtual void Tagcoll::FilterItemsByExpression< ITEM, TAG >::consumeItemUntagged const ITEM &  item  )  [inline, protected, virtual]
 

Process an untagged item.

Reimplemented from Tagcoll::Filter< ITEM, TAG >.

template<class ITEM, class TAG>
int Tagcoll::FilterItemsByExpression< ITEM, TAG >::countMatched  )  const [inline]
 

Return the number of items that matched the expression.

It returns the number of items that did not match if INVERTED match is used.

Returns:
The match count

template<class ITEM, class TAG>
bool Tagcoll::FilterItemsByExpression< ITEM, TAG >::match const OpSet< TAG > &  tags  )  const [inline, protected]
 

template<class ITEM, class TAG>
void Tagcoll::FilterItemsByExpression< ITEM, TAG >::setExpression const std::string &  expression  )  [inline]
 

Set the expression to use for this filter.

Parameters:
expression The expression to use for matching

template<class ITEM, class TAG>
void Tagcoll::FilterItemsByExpression< ITEM, TAG >::setExpression const Expression expression  )  [inline]
 

Set the expression to use for this filter.

Parameters:
expression The expression to use for matching

template<class ITEM, class TAG>
void Tagcoll::FilterItemsByExpression< ITEM, TAG >::setMatchType MatchType  type  )  [inline]
 

Set the type of match.

Parameters:
type PLAIN: only keep the items that match the expression INVERTED: only keep the items that do not match the expression


Member Data Documentation

template<class ITEM, class TAG>
Expression Tagcoll::FilterItemsByExpression< ITEM, TAG >::expr [protected]
 

template<class ITEM, class TAG>
int Tagcoll::FilterItemsByExpression< ITEM, TAG >::matched [protected]
 

template<class ITEM, class TAG>
MatchType Tagcoll::FilterItemsByExpression< ITEM, TAG >::matchType [protected]
 


The documentation for this class was generated from the following file:
Generated on Mon Jun 19 17:32:39 2006 for libtagcoll by  doxygen 1.4.6