private boolean hasMonitoringError(MonitoredVehicleJourney mvj) { if (mvj.isMonitored() != null && mvj.isMonitored()) { return false; } List<String> errors = mvj.getMonitoringError(); return errors != null && !errors.isEmpty(); }
@Override public AbstractServiceDeliveryStructure filter( ServiceDelivery delivery, AbstractServiceDeliveryStructure moduleDelivery) { if (!(moduleDelivery instanceof VehicleMonitoringDeliveryStructure)) { return moduleDelivery; } VehicleMonitoringDeliveryStructure vm = (VehicleMonitoringDeliveryStructure) moduleDelivery; for (VehicleActivityStructure activity : vm.getVehicleActivity()) { MonitoredVehicleJourney mvj = activity.getMonitoredVehicleJourney(); if (!hasMonitoringError(mvj)) { _layoverService.updateVehicle(activity); } if (mvj.getVehicleRef() != null) { String vehicleRef = mvj.getVehicleRef().getValue(); if (_layoverService.isVehiclePausedAtLayoverLocation(vehicleRef)) { OneBusAwayVehicleActivity vaExtension = new OneBusAwayVehicleActivity(); vaExtension.setLayover(true); ExtensionsStructure extensions = new ExtensionsStructure(); extensions.setAny(vaExtension); activity.setExtensions(extensions); } } } return moduleDelivery; }