| Revision 1 (by moose, 2006/03/06 10:00:33) |
Initial Import
|
#ifndef __FINDTAG_H__
#define __FINDTAG_H__
class FindTag
{
public:
FindTag(QString &n = 0) : name(n) { }
virtual FindTag &or(QString &name = 0) { return add(FindTagOR(name)); }
virtual FindTag &and(QString &name = 0) { return add(FindTagAND(name)); }
virtual FindTag <(QString &name = 0) { return add(FindTagLT(name)); }
virtual FindTag &eq(QString &name = 0) { return add(FindTagEQ(name)); }
virtual FindTag >(QString &name = 0) { return add(FindTagGT(name)); }
virtual FindTag &le(QString &name = 0) { return add(FindTagLE(name)); }
virtual FindTag &ge(QString &name = 0) { return add(FindTagGE(name)); }
virtual FindTag &z (QString &name = 0) { return add(FindTagZ(name)); }
virtual FindTag &nz(QString &name = 0) { return add(FindTagNZ(name)); }
virtual FindTag &match(QString &m, QString &name = 0) { return add(FindTagMATCH(m, name)); }
private:
protected:
FindTag &add(FindTag &tag)
{
list.append(tag);
return tag;
}
QString name;
QValueList<FindTag> list;
}
// FindTag ft("artist");
// ft.match("ayu").and().
struct FindTag {
QString name;
enum {
OP_LT = 1,
OP_EQ,
OP_GT,
OP_LE,
OP_GE,
OP_Z,
OP_NZ,
} op;
QString data;
};
#endif /* __FINDTAG_H__ */