public void addAllListeners(PropertyChangeListener listener,Object newObject,Set updateSet){
  addListeners(listener,newObject,updateSet);
  if ((children != null) && (children.length > 0)) {
    try {
      Object newValue=null;
      if (newObject != null) {
        updateSet.add(newObject);
        newValue=extractNewValue(newObject);
      }
      for (      BindPath child : children) {
        child.addAllListeners(listener,newValue,updateSet);
      }
    }
 catch (    Exception e) {
      e.printStackTrace(System.out);
    }
  }
}

public void addAllListeners ( PropertyChangeListener listener , Object newObject , Set updateSet ) { addListeners ( listener , newObject , updateSet ) ; if ( ( children != null ) && ( children . length > 0 ) ) { try { Object newValue = null ; if ( newObject != null ) { updateSet . add ( newObject ) ; newValue = extractNewValue ( newObject ) ; } for ( BindPath child : children ) { child . addAllListeners ( listener , newValue , updateSet ) ; } } catch ( Exception e ) { e . printStackTrace ( System . out ) ; } } }
adds all the listeners to the objects in the bind path . this assumes that we are not added as listeners to any of them , hence it is not idempotent .
