if (log.isDebugEnabled()) log.debug("addComponentData found my agent " + child.getName() + " which currently says isModified=" + child.isModified());
  public ComponentData addComponentData(ComponentData data) {    ComponentData[] children = data.getChildren();    for(int i=0; i < children.length; i++) {      ComponentData child = children[i];      // for each child component data, if it's an agent's component data      if (child.getType() == ComponentData.AGENT) {        // get all my agent components	Iterator iter =           ((Collection)getDescendentsOfClass(AgentComponent.class)).iterator();	while(iter.hasNext()) {	  AgentComponent agent = (AgentComponent)iter.next();          // if the component data name matches the agent name	  if (child.getName().equals(agent.getShortName().toString())) {            // then set me as the owner of the component data	    child.setOwner(this);            // and add the component data	    agent.addComponentData(child);	  }	}		      } else {	// FIXME!! Will we support other top-level components?	// Process children of component data	addComponentData(child);      }          }    return data;  }