Go to the documentation of this file.
38 opType = eUndefinedOperation;
44 opType = eOperationAnd;
52 if (childs.size() != 2)
57 value = childs.at(0)->getValue() && childs.at(1)->getValue();
65 if (childs.size() != 2)
69 datafieldValues = childs.at(0)->getDatafields();
70 auto values2 = childs.at(1)->getDatafields();
71 datafieldValues.insert(values2.begin(), values2.end());
73 value = childs.at(0)->getValue() && childs.at(1)->getValue();
81 if (childs.size() != 2)
86 out <<
"(" << TermImplPtr::dynamicCast(childs.at(0)) <<
" && "
87 << TermImplPtr::dynamicCast(childs.at(1)) <<
")";
99 return new OperationAnd(TermImplPtr::dynamicCast(childs.at(0)->ice_clone()),
100 TermImplPtr::dynamicCast(childs.at(1)->ice_clone()));
105 opType = eOperationAnd;
111 opType = eOperationOr;
120 if (childs.size() != 2)
125 value = childs.at(0)->getValue() || childs.at(1)->getValue();
133 if (childs.size() != 2)
138 value = childs.at(0)->getValue() || childs.at(1)->getValue();
139 datafieldValues = childs.at(0)->getDatafields();
140 auto values2 = childs.at(1)->getDatafields();
141 datafieldValues.insert(values2.begin(), values2.end());
148 if (childs.size() != 2)
153 out <<
"(" << TermImplPtr::dynamicCast(childs.at(0)) <<
" || "
154 << TermImplPtr::dynamicCast(childs.at(1)) <<
")";
166 return new OperationOr(TermImplPtr::dynamicCast(childs.at(0)->ice_clone()),
167 TermImplPtr::dynamicCast(childs.at(1)->ice_clone()));
172 opType = eOperationOr;
178 opType = eOperationNot;
186 if (childs.size() != 1)
191 value = !childs.at(0)->getValue();
199 if (childs.size() != 1)
204 value = !childs.at(0)->getValue();
205 datafieldValues = childs.at(0)->getDatafields();
212 if (childs.size() != 1)
217 out <<
"!(" << TermImplPtr::dynamicCast(childs.at(0)) <<
")";
229 return new OperationNot(TermImplPtr::dynamicCast(childs.at(0)->ice_clone()));
234 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.