/**
   * Process a {@link XADLHostInstanceEvent}.
   *
   * @param event
   */
  private void process(XADLHostInstanceEvent event) {
    IHostedArchInstance instance =
        modelRoot.getHostedArchInstance(event.getArchitectureRuntimeId());
    IHost host =
        DBLUtils.createHost(instance, event.getHostId(), modelRoot.getHostpropertyContext());

    switch (event.getXadlEventType()) {
      case ADD:
        logger.info("Adding host " + event.getHostId());
        host.setDescription(
            DBLUtils.createDescription(event.getDescription(), modelRoot.getHostpropertyContext()));
        break;
      case REMOVE:
        logger.info("Removing host " + event.getHostId());
        // we only remove the host if it is empty
        if (host.getAllHostsComponents().isEmpty()
            && host.getAllHostsConnectors().isEmpty()
            && host.getAllHostsGroups().isEmpty()
            && host.getAllSubhosts().isEmpty()) {
          instance.removeHost(host);
        }
        break;
      case UPDATE:
      default:
        // not supported
        break;
    }
  }