public void merge(EventListenerDescriptor other) {

    this.isEnabled = other.isEnabled;

    if (other.clazz != null) {
      this.clazz = other.clazz;
      this.rc = other.rc;
    } else if (other.script != null) {
      this.script = other.script;
      this.clazz = null;
      this.rc = other.rc;
    }

    if (other.isAsync != null) {
      this.isAsync = other.isAsync;
    }

    if (other.events != null) {
      this.events = other.events;
    }

    if (other.transactionTimeOut != null) {
      this.transactionTimeOut = other.transactionTimeOut;
    }

    if (other.priority != null) {
      other.priority = this.priority;
    }
  }