wip
This commit is contained in:
parent
b9b80ebcf3
commit
9f712a55ea
|
|
@ -931,7 +931,9 @@ SqlGeneratorBase::operatorString(const PhraseData::Condition &cond) const
|
||||||
|
|
||||||
void SqlGeneratorBase::appendSkipTake(QString &sql, int skip, int take)
|
void SqlGeneratorBase::appendSkipTake(QString &sql, int skip, int take)
|
||||||
{
|
{
|
||||||
|
Q_UNUSED(sql);
|
||||||
|
Q_UNUSED(skip);
|
||||||
|
Q_UNUSED(take);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString SqlGeneratorBase::createConditionalPhrase(const PhraseData *d) const
|
QString SqlGeneratorBase::createConditionalPhrase(const PhraseData *d) const
|
||||||
|
|
|
||||||
|
|
@ -24,12 +24,12 @@
|
||||||
|
|
||||||
NUT_BEGIN_NAMESPACE
|
NUT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
#define LOG(s) qDebug() << __func__ << s;
|
#define LOG(s) qDebug() << __func__ << s
|
||||||
|
|
||||||
PhraseData::PhraseData() :
|
PhraseData::PhraseData() :
|
||||||
className(""), fieldName(""),
|
className(""), fieldName(""),
|
||||||
type(Field), operatorCond(NotAssign),
|
type(Field), operatorCond(NotAssign),
|
||||||
left(0), right(0), operand(QVariant::Invalid), isNot(false), parents(3)
|
left(0), right(0), operand(QVariant::Invalid), isNot(false), parents(1)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
PhraseData::PhraseData(const char *className, const char *fieldName) :
|
PhraseData::PhraseData(const char *className, const char *fieldName) :
|
||||||
|
|
@ -70,6 +70,12 @@ PhraseData *PhraseData::operator =(PhraseData *other)
|
||||||
return other;
|
return other;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PhraseData &PhraseData::operator =(PhraseData &other)
|
||||||
|
{
|
||||||
|
other.parents++;
|
||||||
|
return other;
|
||||||
|
}
|
||||||
|
|
||||||
//PhraseData::PhraseData(const PhraseData &other) :
|
//PhraseData::PhraseData(const PhraseData &other) :
|
||||||
// left(other.left), right(other.right), operand(other.operand),
|
// left(other.left), right(other.right), operand(other.operand),
|
||||||
// operatorCond(other.operatorCond), className(other.className),
|
// operatorCond(other.operatorCond), className(other.className),
|
||||||
|
|
@ -111,7 +117,7 @@ PhraseData::~PhraseData()
|
||||||
|
|
||||||
void PhraseData::cleanUp()
|
void PhraseData::cleanUp()
|
||||||
{
|
{
|
||||||
cleanUp(this);
|
// cleanUp(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PhraseData::cleanUp(PhraseData *d)
|
void PhraseData::cleanUp(PhraseData *d)
|
||||||
|
|
@ -134,22 +140,22 @@ AbstractFieldPhrase::AbstractFieldPhrase(const char *className,
|
||||||
|
|
||||||
AbstractFieldPhrase::AbstractFieldPhrase(const AbstractFieldPhrase &other)
|
AbstractFieldPhrase::AbstractFieldPhrase(const AbstractFieldPhrase &other)
|
||||||
{
|
{
|
||||||
qDebug() <<"Copy ctor"<<other.data->toString()<<other.data->parents;
|
|
||||||
data = other.data;
|
data = other.data;
|
||||||
data->parents++;
|
data->parents++;
|
||||||
|
qDebug() <<"Copy ctor"<<other.data->toString()<<other.data->parents;
|
||||||
}
|
}
|
||||||
|
|
||||||
AbstractFieldPhrase::AbstractFieldPhrase(AbstractFieldPhrase &&other)
|
AbstractFieldPhrase::AbstractFieldPhrase(AbstractFieldPhrase &&other)
|
||||||
{
|
{
|
||||||
data = other.data;
|
data = other.data;
|
||||||
|
data->parents++;
|
||||||
other.data = 0;
|
other.data = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
AbstractFieldPhrase::~AbstractFieldPhrase()
|
AbstractFieldPhrase::~AbstractFieldPhrase()
|
||||||
{
|
{
|
||||||
if (data) {
|
if (data) {
|
||||||
LOG(data->toString());
|
LOG(data->toString()) << data->parents;
|
||||||
qDebug() << data->parents;
|
|
||||||
} else {
|
} else {
|
||||||
LOG("");
|
LOG("");
|
||||||
}
|
}
|
||||||
|
|
@ -203,6 +209,7 @@ AbstractFieldPhraseOperatorField(>=, PhraseData::GreaterEqual)
|
||||||
|
|
||||||
AbstractFieldPhrase AbstractFieldPhrase::operator !()
|
AbstractFieldPhrase AbstractFieldPhrase::operator !()
|
||||||
{
|
{
|
||||||
|
|
||||||
AbstractFieldPhrase f(data->className, data->fieldName);
|
AbstractFieldPhrase f(data->className, data->fieldName);
|
||||||
f.data->isNot = !data->isNot;
|
f.data->isNot = !data->isNot;
|
||||||
return f;
|
return f;
|
||||||
|
|
@ -225,10 +232,17 @@ PhraseList::PhraseList() : isValid(false)
|
||||||
|
|
||||||
PhraseList::PhraseList(const PhraseList &other) : isValid(true)
|
PhraseList::PhraseList(const PhraseList &other) : isValid(true)
|
||||||
{
|
{
|
||||||
|
LOG("");
|
||||||
data = qMove(other.data);
|
data = qMove(other.data);
|
||||||
const_cast<PhraseList&>(other).data.clear();
|
const_cast<PhraseList&>(other).data.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PhraseList::PhraseList(PhraseList &&other)
|
||||||
|
{
|
||||||
|
LOG("");
|
||||||
|
data = other.data;
|
||||||
|
}
|
||||||
|
|
||||||
PhraseList::PhraseList(const AbstractFieldPhrase &other) : isValid(true)
|
PhraseList::PhraseList(const AbstractFieldPhrase &other) : isValid(true)
|
||||||
{
|
{
|
||||||
data.append(other.data);
|
data.append(other.data);
|
||||||
|
|
@ -256,13 +270,20 @@ PhraseList::PhraseList(PhraseList *left, PhraseList *right) : isValid(true)
|
||||||
PhraseList::PhraseList(PhraseList *left, const AbstractFieldPhrase *right)
|
PhraseList::PhraseList(PhraseList *left, const AbstractFieldPhrase *right)
|
||||||
: isValid(true)
|
: isValid(true)
|
||||||
{
|
{
|
||||||
data = left->data;
|
data.append(left->data);
|
||||||
data.append(right->data);
|
data.append(right->data);
|
||||||
incAllDataParents();
|
incAllDataParents();
|
||||||
}
|
}
|
||||||
|
|
||||||
PhraseList::~PhraseList()
|
PhraseList::~PhraseList()
|
||||||
{ }
|
{
|
||||||
|
LOG("");
|
||||||
|
}
|
||||||
|
|
||||||
|
PhraseList &PhraseList::operator =(const PhraseData &other)
|
||||||
|
{
|
||||||
|
return other;
|
||||||
|
}
|
||||||
|
|
||||||
PhraseList PhraseList::operator |(const AbstractFieldPhrase &other) {
|
PhraseList PhraseList::operator |(const AbstractFieldPhrase &other) {
|
||||||
return PhraseList(this, &other);
|
return PhraseList(this, &other);
|
||||||
|
|
@ -564,6 +585,14 @@ PhraseDataList::PhraseDataList() : QList<PhraseData*>()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PhraseDataList::PhraseDataList(const PhraseDataList &other) : QList<PhraseData*>()
|
||||||
|
{
|
||||||
|
PhraseDataList &o = const_cast<PhraseDataList&>(other);
|
||||||
|
PhraseDataList::iterator i;
|
||||||
|
for (i = o.begin(); i != o.end(); ++i)
|
||||||
|
append(*i);
|
||||||
|
}
|
||||||
|
|
||||||
void PhraseDataList::append(PhraseData *d)
|
void PhraseDataList::append(PhraseData *d)
|
||||||
{
|
{
|
||||||
d->parents++;
|
d->parents++;
|
||||||
|
|
@ -580,11 +609,11 @@ void PhraseDataList::append(QList<PhraseData *> &dl)
|
||||||
PhraseDataList::~PhraseDataList()
|
PhraseDataList::~PhraseDataList()
|
||||||
{
|
{
|
||||||
QList<PhraseData*>::iterator i;
|
QList<PhraseData*>::iterator i;
|
||||||
for (i = begin(); i != end(); ++i) {
|
for (i = begin(); i != end(); ++i) {
|
||||||
(*i)->cleanUp();
|
(*i)->cleanUp();
|
||||||
if (!--(*i)->parents)
|
if (!--(*i)->parents)
|
||||||
delete *i;
|
delete *i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//AssignmentPhraseList operator &(const AssignmentPhrase &l, const AssignmentPhrase &r)
|
//AssignmentPhraseList operator &(const AssignmentPhrase &l, const AssignmentPhrase &r)
|
||||||
|
|
|
||||||
|
|
@ -109,6 +109,7 @@ public:
|
||||||
// explicit PhraseData(const PhraseData *other);
|
// explicit PhraseData(const PhraseData *other);
|
||||||
|
|
||||||
PhraseData *operator =(PhraseData *other);
|
PhraseData *operator =(PhraseData *other);
|
||||||
|
PhraseData &operator =(PhraseData &other);
|
||||||
|
|
||||||
QString toString() const;
|
QString toString() const;
|
||||||
|
|
||||||
|
|
@ -123,6 +124,7 @@ class PhraseDataList : public QList<PhraseData*>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PhraseDataList();
|
PhraseDataList();
|
||||||
|
PhraseDataList(const PhraseDataList &other);
|
||||||
void append(PhraseData *d);
|
void append(PhraseData *d);
|
||||||
void append(QList<PhraseData*> &dl);
|
void append(QList<PhraseData*> &dl);
|
||||||
virtual ~PhraseDataList();
|
virtual ~PhraseDataList();
|
||||||
|
|
@ -173,12 +175,14 @@ public:
|
||||||
PhraseDataList data;
|
PhraseDataList data;
|
||||||
explicit PhraseList();
|
explicit PhraseList();
|
||||||
PhraseList(const PhraseList &other);
|
PhraseList(const PhraseList &other);
|
||||||
|
PhraseList(PhraseList &&other);
|
||||||
PhraseList(const AbstractFieldPhrase &other);
|
PhraseList(const AbstractFieldPhrase &other);
|
||||||
PhraseList(const AbstractFieldPhrase *left, const AbstractFieldPhrase &right);
|
PhraseList(const AbstractFieldPhrase *left, const AbstractFieldPhrase &right);
|
||||||
PhraseList(PhraseList *left, PhraseList *right);
|
PhraseList(PhraseList *left, PhraseList *right);
|
||||||
PhraseList(PhraseList *left, const AbstractFieldPhrase *right);
|
PhraseList(PhraseList *left, const AbstractFieldPhrase *right);
|
||||||
virtual ~PhraseList();
|
virtual ~PhraseList();
|
||||||
|
|
||||||
|
PhraseList &operator =(const PhraseData &other);
|
||||||
PhraseList operator |(PhraseList &other);
|
PhraseList operator |(PhraseList &other);
|
||||||
PhraseList operator |(const AbstractFieldPhrase &other);
|
PhraseList operator |(const AbstractFieldPhrase &other);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue