#ifndef ABSTRACTFIELDPHRASE_H #define ABSTRACTFIELDPHRASE_H #include "../defines.h" #include "assignmentphrase.h" #include "conditionalphrase.h" #include "phraselist.h" NUT_BEGIN_NAMESPACE class PhraseData; class AbstractFieldPhrase { public: PhraseData *data; explicit AbstractFieldPhrase(PhraseData *d); AbstractFieldPhrase(const char *className, const char *fieldName); AbstractFieldPhrase(const AbstractFieldPhrase &other); AbstractFieldPhrase(AbstractFieldPhrase &&other); virtual ~AbstractFieldPhrase(); PhraseList operator |(const AbstractFieldPhrase &other); template ConditionalPhrase in(QList list) { QVariantList vlist; foreach (T t, list) vlist.append(QVariant::fromValue(t)); return ConditionalPhrase(this, PhraseData::In, vlist); } #ifdef Q_COMPILER_INITIALIZER_LISTS ConditionalPhrase in(std::initializer_list list) { QVariantList vlist; std::initializer_list::iterator it; for (it = list.begin(); it != list.end(); ++it) vlist.append(*it); return ConditionalPhrase(this, PhraseData::In, vlist); } #endif ConditionalPhrase isNull(); ConditionalPhrase operator ==(const QVariant &other); ConditionalPhrase operator ==(const ConditionalPhrase &other); //why? ConditionalPhrase operator !=(const QVariant &other); ConditionalPhrase operator ==(const AbstractFieldPhrase &other); ConditionalPhrase operator !=(const AbstractFieldPhrase &other); ConditionalPhrase operator <(const AbstractFieldPhrase &other); ConditionalPhrase operator >(const AbstractFieldPhrase &other); ConditionalPhrase operator <=(const AbstractFieldPhrase &other); ConditionalPhrase operator >=(const AbstractFieldPhrase &other); AbstractFieldPhrase operator !(); AssignmentPhrase operator =(const QVariant &other); AssignmentPhrase operator =(const ConditionalPhrase &other); AssignmentPhrase operator <<(const QVariant &other); }; NUT_END_NAMESPACE #endif // ABSTRACTFIELDPHRASE_H