diff options
Diffstat (limited to 'omegalib/omega/src/pres_form.cc')
-rw-r--r-- | omegalib/omega/src/pres_form.cc | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/omegalib/omega/src/pres_form.cc b/omegalib/omega/src/pres_form.cc deleted file mode 100644 index 82b710b..0000000 --- a/omegalib/omega/src/pres_form.cc +++ /dev/null @@ -1,147 +0,0 @@ -#include <omega/pres_form.h> -#include <omega/pres_tree.h> -#include <omega/pres_conj.h> -#include <omega/Relation.h> -#include <omega/omega_i.h> - -namespace omega { - -// -// Children and parents. -// -void Formula::remove_child(Formula *kid) { - assert(&kid->parent() == this); - if (myChildren.front() == kid) - myChildren.del_front(); - else { - List_Iterator<Formula*> j,k; - for(j=List_Iterator<Formula*>(myChildren); *j != kid && j; k=j, j++) - ; - - if (k) - myChildren.del_after(k); - else - assert(0 && "Child to be removed not found in child list"); - } -} - - -void Formula::add_child(Formula *kid) { - assert(can_add_child()); - myChildren.append(kid); - kid->myParent = this; - kid->myRelation = this->relation(); -} - -void Formula::replace_child(Formula *child, Formula* new_child) { - assert(&child->parent() == this); - for(List_Iterator<Formula *> LI(myChildren); LI; LI++) - if(*LI == child) { - *LI = new_child; - new_child->myParent = this; - new_child->myRelation = this->relation(); - break; - } -} - -void Formula::set_parent(Formula *parent, Rel_Body *reln) { - myParent = parent; - myRelation = reln; - for(List_Iterator<Formula*> c(myChildren); c; c++) - (*c)->set_parent(this,reln); -} - -// -// Function that sets myRelation pointers in a tree. -// -void Formula::set_relation(Rel_Body *r) { - myRelation = r; - for(List_Iterator<Formula *> FI(myChildren); FI; FI++) - (*FI)->set_relation(r); -} - - -// -// Function that descends to conjuncts to merge columns -// -void Formula::combine_columns() { - foreach(child,Formula *,myChildren,child->combine_columns()); -} - - -void Formula::finalize() { - for(List_Iterator<Formula*> c(children()); c; c++) - (*c)->finalize(); -} - -bool Formula::can_add_child() { - return true; -} - - - -Conjunct *Formula::really_conjunct() { - assert(0 && "really_conjunct() called on something that wasn't"); - return NULL; -} - -Formula::Formula(Formula *p, Rel_Body *r): myParent(p), myRelation(r) { -} - - -void Formula::verify_tree() { // should be const -#if ! defined NDEBUG - Any_Iterator<Formula*> c = myChildren.any_iterator(); - for (; c; c++) { - assert((*c)->myParent==this); - assert((*c)->myRelation==this->myRelation); - (*c)->verify_tree(); - } -#endif -} - -Formula *Formula::copy(Formula *, Rel_Body *) { - assert(0); - return NULL; -} - -Formula::~Formula() { - for(List_Iterator<Formula*> c(myChildren); c; c++) { - delete *c; - } - myChildren.clear(); -} - -void Formula::assert_not_finalized() { - if (!skip_finalization_check) { - assert(! relation()->is_finalized()); - assert(! relation()->is_shared()); - } -} - -void Formula::reverse_leading_dir_info() { - for(List_Iterator<Formula*> c(myChildren); c; c++) - (*c)->reverse_leading_dir_info(); -} - -void Formula::invalidate_leading_info(int changed) { - for(List_Iterator<Formula*> c(myChildren); c; c++) - (*c)->invalidate_leading_info(changed); -} - -void Formula::enforce_leading_info(int guaranteed, int possible, int dir) { - for(List_Iterator<Formula*> c(myChildren); c; c++) - (*c)->enforce_leading_info(guaranteed, possible, dir); -} - -// -// Push_exists functions. -// Push exists takes responsibility for the Variable_ID's in the Tuple. -// It should: -// * Re-use them, or -// * Delete them. -void Formula::push_exists(Variable_ID_Tuple &) { - assert(0); -} - -} // namespace |