log.debug(data + " already has plugin " + self);
log.debug(data + " already has binder " + self);
  public ComponentData addComponentData(ComponentData data) {    // Warning: This assumes it has been handed the component in    // which to add itself    if (data.getType() != ComponentData.AGENT && data.getType() != ComponentData.NODE) {      if (log.isErrorEnabled()) {	log.error("Asked to add to non Agent/Node: " + data);      }      return data;    }    // Create a new componentdata    // set the type, etc appropriately    // set self as the owner    // set data as the parent    // add self to data    ComponentData self = new GenericComponentData();    if (data.getType() == ComponentData.AGENT) {      self.setType(ComponentData.AGENTBINDER);    } else {      // Nodes could contain Agent Binders or Node Binders      self.setType(getBinderType());    }    self.setOwner(this);    self.setParent(data);    self.setClassName(getBinderClassName());    for(int i=0; i < nParameters; i++) {      self.addParameter(getProperty(PROP_PARAM + i).getValue());    }    if (alreadyAdded(data, self)) {      if (log.isDebugEnabled()) {	log.debug(data + " already has plugin " + self);      }      return data;    }    self.setName(uniqueName(data, self));    data.addChildDefaultLoc(self);    return data;  }