Go to the documentation of this file.
37 opType = eUndefinedOperation;
43 opType = eOperationAnd;
50 if (childs.size() != 2)
55 value = childs.at(0)->getValue() && childs.at(1)->getValue();
62 if (childs.size() != 2)
66 datafieldValues = childs.at(0)->getDatafields();
67 auto values2 = childs.at(1)->getDatafields();
68 datafieldValues.insert(values2.begin(), values2.end());
70 value = childs.at(0)->getValue() && childs.at(1)->getValue();
77 if (childs.size() != 2)
82 out <<
"(" << TermImplPtr::dynamicCast(childs.at(0)) <<
" && " << TermImplPtr::dynamicCast(childs.at(1)) <<
")";
92 return new OperationAnd(TermImplPtr::dynamicCast(childs.at(0)->ice_clone()), TermImplPtr::dynamicCast(childs.at(1)->ice_clone()));
97 opType = eOperationAnd;
103 opType = eOperationOr;
111 if (childs.size() != 2)
116 value = childs.at(0)->getValue() || childs.at(1)->getValue();
123 if (childs.size() != 2)
128 value = childs.at(0)->getValue() || childs.at(1)->getValue();
129 datafieldValues = childs.at(0)->getDatafields();
130 auto values2 = childs.at(1)->getDatafields();
131 datafieldValues.insert(values2.begin(), values2.end());
137 if (childs.size() != 2)
142 out <<
"(" << TermImplPtr::dynamicCast(childs.at(0)) <<
" || " << TermImplPtr::dynamicCast(childs.at(1)) <<
")";
152 return new OperationOr(TermImplPtr::dynamicCast(childs.at(0)->ice_clone()), TermImplPtr::dynamicCast(childs.at(1)->ice_clone()));
157 opType = eOperationOr;
163 opType = eOperationNot;
170 if (childs.size() != 1)
175 value = !childs.at(0)->getValue();
182 if (childs.size() != 1)
187 value = !childs.at(0)->getValue();
188 datafieldValues = childs.at(0)->getDatafields();
194 if (childs.size() != 1)
199 out <<
"!(" << TermImplPtr::dynamicCast(childs.at(0)) <<
")";
209 return new OperationNot(TermImplPtr::dynamicCast(childs.at(0)->ice_clone()));
214 opType = eOperationNot;
Ice::ObjectPtr ice_clone() const override
Reimplementation of the ice_clone method.
void addChild(const TermImplBasePtr &child, const Ice::Current &c=Ice::emptyCurrent) override
Add child to term.
void updateWithData(const Ice::Current &c=Ice::emptyCurrent) override
Ice::ObjectPtr ice_clone() const override
Reimplementation of the ice_clone method.
void updateWithData(const Ice::Current &) override
Ice::ObjectPtr ice_clone() const override
Reimplementation of the ice_clone method.
void output(std::ostream &out) const override
output operation to stream
void update(const Ice::Current &c=Ice::emptyCurrent) override
Implementation for updating this term from its children in the expression tree.
void update(const Ice::Current &c=Ice::emptyCurrent) override
Implementation for updating this term from its children in the expression tree.
double a(double t, double a0, double j)
std::shared_ptr< Value > value()
void output(std::ostream &out) const override
output operation to stream
void updateWithData(const Ice::Current &) override
std::string getOperationString(const Ice::Current &c=Ice::emptyCurrent) override
Retrieve string identifying the operation.
OperationType getOperationType(const Ice::Current &c=Ice::emptyCurrent) const override
Retrieve the type of the operation.
void output(std::ostream &out) const override
output operation to stream
void update(const Ice::Current &c=Ice::emptyCurrent) override
Implementation for updating this term from its children in the expression tree.
void updateWithData(const Ice::Current &) override
std::string getOperationString(const Ice::Current &c=Ice::emptyCurrent) override
Retrieve string identifying the operation.
std::shared_ptr< Object > ObjectPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::string getOperationString(const Ice::Current &c=Ice::emptyCurrent) override
Retrieve string identifying the operation.
void update(const Ice::Current &c=Ice::emptyCurrent) override
Updates the parent in the expression tree.