@Override public void setTriggeringEnabled(boolean enabled) { synchronized (knownOrders) { if (enabled) { // Remember all orders that are not finished, failed etc. for (TransportOrder curOrder : objectService.fetchObjects(TransportOrder.class)) { if (!curOrder.getState().isFinalState()) { knownOrders.add(curOrder); } } eventSource.subscribe(this); if (knownOrders.size() <= threshold) { triggerOrderGeneration(); } } else { eventSource.unsubscribe(this); knownOrders.clear(); } } }
else if (eventOrder.getState().isFinalState()) { knownOrders.remove(eventOrder);
public static OrderStatusMessage fromTransportOrder(TransportOrder order, long sequenceNumber, Instant creationTimeStamp) { OrderStatusMessage orderMessage = new OrderStatusMessage(); orderMessage.setSequenceNumber(sequenceNumber); orderMessage.setCreationTimeStamp(creationTimeStamp); orderMessage.setOrderName(order.getName()); orderMessage.setProcessingVehicleName( order.getProcessingVehicle() == null ? null : order.getProcessingVehicle().getName()); orderMessage.setOrderState(OrderState.fromTransportOrderState(order.getState())); for (DriveOrder curDriveOrder : order.getAllDriveOrders()) { orderMessage.getDestinations().add(Destination.fromDriveOrder(curDriveOrder)); } for (Map.Entry<String, String> mapEntry : order.getProperties().entrySet()) { Property prop = new Property(); prop.setKey(mapEntry.getKey()); prop.setValue(mapEntry.getValue()); orderMessage.getProperties().add(prop); } return orderMessage; }
/** * Creates a <Code>TransportOrderState</Code> instance from a <Code>TransportOrder</Code> instance. * * @param transportOrder The transport order whose properties will be used to create a * <Code>TransportOrderState</Code> instance. * @return A new <Code>TransportOrderState</Code> instance filled with data from * the given transport order. */ public static TransportOrderState fromTransportOrder(TransportOrder transportOrder) { if (transportOrder == null) { return null; } TransportOrderState transportOrderState = new TransportOrderState(); transportOrderState.setName(transportOrder.getName()); transportOrderState.setCategory(transportOrder.getCategory()); transportOrderState.setDestinations( transportOrder.getAllDriveOrders() .stream() .map(driveOrder -> Destination.fromDriveOrder(driveOrder)) .collect(Collectors.toList())); transportOrderState.setIntendedVehicle( nameOfNullableReference(transportOrder.getIntendedVehicle())); transportOrderState.setProcessingVehicle( nameOfNullableReference(transportOrder.getProcessingVehicle())); transportOrderState.setState(transportOrder.getState()); return transportOrderState; }
public static OrderStatusMessage fromTransportOrder(TransportOrder order) { OrderStatusMessage orderMessage = new OrderStatusMessage(); orderMessage.setOrderName(order.getName()); orderMessage.setProcessingVehicleName( order.getProcessingVehicle() == null ? null : order.getProcessingVehicle().getName()); orderMessage.setOrderState(OrderState.fromTransportOrderState(order.getState())); for (DriveOrder curDriveOrder : order.getAllDriveOrders()) { Destination dest = new Destination(); dest.setLocationName(curDriveOrder.getDestination().getDestination().getName()); dest.setOperation(curDriveOrder.getDestination().getOperation()); dest.setState(mapDriveOrderState(curDriveOrder.getState())); for (Map.Entry<String, String> mapEntry : curDriveOrder.getDestination().getProperties().entrySet()) { Property prop = new Property(); prop.setKey(mapEntry.getKey()); prop.setValue(mapEntry.getValue()); dest.getProperties().add(prop); } orderMessage.getDestinations().add(dest); } for (Map.Entry<String, String> mapEntry : order.getProperties().entrySet()) { Property prop = new Property(); prop.setKey(mapEntry.getKey()); prop.setValue(mapEntry.getValue()); orderMessage.getProperties().add(prop); } return orderMessage; }