addChild.orderAdded = addingTo.nextSplitAddedOrder();
setOrderAddedSubtree(addChild, addingTo);
  public final void addChild(Splitter newChild, ADTree addingTo) {    // search for an equivalent child    Splitter oldEqual = null;    for (Enumeration e = children(); e.hasMoreElements(); ) {      Splitter split = (Splitter) e.nextElement();      if (newChild.equalTo(split)) { oldEqual = split; break; }    }    if (oldEqual == null) { // didn't find one so just add      Splitter addChild = (Splitter) newChild.clone();      addChild.orderAdded = addingTo.nextSplitAddedOrder();      children.addElement(addChild);    }    else { // found one, so do a merge      for (int i=0; i<newChild.getNumOfBranches(); i++) {	PredictionNode oldPred = oldEqual.getChildForBranch(i);	PredictionNode newPred = newChild.getChildForBranch(i);	if (oldPred != null && newPred != null)	  oldPred.merge(newPred, addingTo);      }    }  }