if (!(objEvent.getCurrentOrPreviousObjectState() instanceof TransportOrder)) { return; = (TransportOrder) objEvent.getCurrentOrPreviousObjectState();
/** * Processes a {@link TCSObjectEvent} and logs it if it is interesting. * * @param event The event to be processed. */ private void processObjectEvent(TCSObjectEvent event) { TCSObject<?> object = event.getCurrentOrPreviousObjectState(); if (object instanceof TransportOrder) { processOrderEvent(event); } else if (object instanceof Vehicle) { processVehicleEvent(event); } else if (object instanceof Point) { processPointEvent(event); } }
@Override public void onEvent(Object event) { if (!(event instanceof TCSObjectEvent)) { return; } TCSObject<?> object = ((TCSObjectEvent) event).getCurrentOrPreviousObjectState(); if (object instanceof TransportOrder) { synchronized (events) { addOrderStatusMessage((TransportOrder) object, eventCount); eventCount++; cleanUpEvents(); events.notifyAll(); } } else if (object instanceof Vehicle) { synchronized (events) { addVehicleStatusMessage((Vehicle) object, eventCount); eventCount++; cleanUpEvents(); events.notifyAll(); } } }
private void processObjectEvent(TCSObjectEvent event, Writer writer) throws IOException { TCSObject<?> eventObject = event.getCurrentOrPreviousObjectState(); if (eventObject instanceof TransportOrder) { sendMessage(OrderStatusMessage.fromTransportOrder((TransportOrder) eventObject), writer); } else if (eventObject instanceof Vehicle) { sendMessage(VehicleStatusMessage.fromVehicle((Vehicle) eventObject), writer); } }
@Override public void onEvent(Object event) { requireNonNull(event, "event"); //Skip event if we dont want any updates if (!enableUpdates) { return; } //Skip non object events as were only interested in vehicle updates if (!(event instanceof TCSObjectEvent)) { LOG.debug("Event is not a TCSObjectEvent, ignoring."); return; } //Skip non vehicle events TCSObjectEvent tcsObjectEvent = (TCSObjectEvent) event; if (!(tcsObjectEvent.getCurrentOrPreviousObjectState() instanceof Vehicle)) { LOG.debug("TCSObjectEvent is not about a Vehicle, ignoring."); return; } //Check if we have access to the kernel if (portalProvider == null || !portalProvider.portalShared()) { LOG.debug("No connection to the kernel but received an event."); return; } // Ignore events if we're not operating or connected. (Vehicle objects may change a lot in modelling mode.) if (sharedPortal.getPortal().getState() != Kernel.State.OPERATING) { LOG.debug("Kernel is not in operating mode - skipping."); return; } handleVehicleStateChange(sharedPortal.getPortal().getSchedulerService().fetchSchedulerAllocations()); }