ess.add(e);
}
public void add(E e) {
- if (e.bg != null) { merge(e.bg); return; }
- ess.add(e);
- e.bg = this;
- }
- public void merge(BindingGroup bg) {
- for(E e : bg.ess) {
- e.bg = null;
- add(e);
+ if (e.bg != null) {
+ for(E ex : e.bg.ess) {
+ ex.bg = null;
+ add(ex);
+ }
+ } else {
+ ess.add(e);
+ e.bg = this;
}
}
public void dobind(E e) {
newT(r.p, p1.p, mid, null);
newT(r.p, mid, p2.p, null);
- //bg1.add(p1.getE(mid));
- //bg2.add(p2.getE(mid).pair);
+ bg1.add(p1.getE(mid));
+ bg2.add(p2.getE(mid).pair);
return mid;
}