/** * Process a {@link XADLHostingEvent}. * * @param event */ private void process(XADLHostingEvent event) { IHostedArchInstance instance = modelRoot.getHostedArchInstance(event.getArchitectureRuntimeId()); IHost host = DBLUtils.createHost(instance, event.getHostId(), modelRoot.getHostpropertyContext()); switch (event.getXadlEventType()) { case ADD: logger.info("Adding components/connectors to host " + event.getHostId()); for (String id : event.getHostedComponentIds()) { IElementRef ref = DBLUtils.createElementRef(id, modelRoot.getHostpropertyContext()); elementRefIndex.put(id, ref); host.addHostsComponent(ref); } for (String id : event.getHostedConnectorIds()) { IElementRef ref = DBLUtils.createElementRef(id, modelRoot.getHostpropertyContext()); elementRefIndex.put(id, ref); host.addHostsConnector(ref); } for (String id : event.getHostedGroupIds()) { IElementRef ref = DBLUtils.createElementRef(id, modelRoot.getHostpropertyContext()); elementRefIndex.put(id, ref); host.addHostsGroup(ref); } // subhosts are currently not supported break; case REMOVE: logger.info("Removing components/connectors from host " + event.getHostId()); for (String id : event.getHostedComponentIds()) { if (elementRefIndex.containsKey(id)) { IElementRef ref = elementRefIndex.get(id); host.removeHostsComponent(ref); } } for (String id : event.getHostedConnectorIds()) { if (elementRefIndex.containsKey(id)) { IElementRef ref = elementRefIndex.get(id); host.removeHostsConnector(ref); } } for (String id : event.getHostedGroupIds()) { if (elementRefIndex.containsKey(id)) { IElementRef ref = elementRefIndex.get(id); host.removeHostsGroup(ref); } } // subhosts are currently not supported break; case UPDATE: default: // not supported break; } }