use of org.onebusaway.transit_data.model.service_alerts.SituationAffectsBean in project onebusaway-application-modules by camsys.
the class ServiceAlertsTestSupport method addAffects.
public static SituationAffectsBean addAffects(String route, String direction) {
SituationAffectsBean sab = new SituationAffectsBean();
sab.setRouteId(route);
sab.setDirectionId(direction);
return sab;
}
use of org.onebusaway.transit_data.model.service_alerts.SituationAffectsBean in project onebusaway-application-modules by camsys.
the class BeanFactoryV2 method isSituationExcludedForApplication.
public boolean isSituationExcludedForApplication(ServiceAlertBean situation) {
List<SituationAffectsBean> affects = situation.getAllAffects();
if (affects == null)
return false;
Set<String> applicationIds = new HashSet<String>();
for (SituationAffectsBean affect : affects) {
if (affect.getApplicationId() != null)
applicationIds.add(affect.getApplicationId());
}
if (CollectionsLibrary.isEmpty(applicationIds))
return false;
if (_applicationKey == null)
return true;
return !_applicationKey.contains(_applicationKey);
}
use of org.onebusaway.transit_data.model.service_alerts.SituationAffectsBean in project onebusaway-application-modules by camsys.
the class ServiceAlertAffectsAction method update.
public String update() throws IOException, JSONException {
if (_id == null || _index == -1) {
return INPUT;
}
ServiceAlertBean alert = null;
try {
alert = _transitDataService.getServiceAlertForId(_id);
} catch (RuntimeException e) {
_log.error("Error retrieving Service Alerts", e);
throw e;
}
if (alert == null) {
return INPUT;
}
List<SituationAffectsBean> allAffects = alert.getAllAffects();
if (allAffects == null || _index >= allAffects.size()) {
return INPUT;
}
_model.setAgencyId(string(_model.getAgencyId()));
_model.setRouteId(string(_model.getRouteId()));
_model.setDirectionId(string(_model.getDirectionId()));
_model.setTripId(string(_model.getTripId()));
_model.setStopId(string(_model.getStopId()));
allAffects.set(_index, _model);
try {
_transitDataService.updateServiceAlert(alert);
} catch (RuntimeException e) {
_log.error("Error updating Service Alert Affects clause", e);
throw e;
}
return SUCCESS;
}
use of org.onebusaway.transit_data.model.service_alerts.SituationAffectsBean in project onebusaway-application-modules by camsys.
the class NotifyResourceTest method testToTweet.
@Test
public void testToTweet() {
ServiceAlertBean bean = null;
NotificationServiceImpl nsi = new NotificationServiceImpl();
NotificationStrategy ns = new TestNotificationStrategy();
nsi.setNotificationStrategy(ns);
NotifyResource resource = new NotifyResource();
resource.setNotificationService(nsi);
assertNull(resource.toTweet(bean));
bean = new ServiceAlertBean();
assertNull(resource.toTweet(bean));
bean.setSummaries(new ArrayList<NaturalLanguageStringBean>());
bean.getSummaries().add(createNLS("Snow Routes in Affect"));
// service alert has no affects clause, nothing to do
assertEquals(null, resource.toTweet(bean));
SituationAffectsBean affects = new SituationAffectsBean();
affects.setAgencyId("ACTA");
bean.setAllAffects(new ArrayList<SituationAffectsBean>());
bean.getAllAffects().add(affects);
// we don't include agency in tweet -- it will be obvious from the twitter handle
assertEquals("Snow Routes in Affect", resource.toTweet(bean));
// add a single route
affects.setRouteId("A1");
assertEquals("Snow Routes in Affect affecting route(s) ACTA_A1", resource.toTweet(bean));
// add a stop
affects = new SituationAffectsBean();
affects.setAgencyId("ACTA");
bean.getAllAffects().add(affects);
affects.setStopId("Water and Blowers");
try {
assertEquals("Snow Routes in Affect affecting route(s) A1 and stop(s) Water and Blowers", resource.toTweet(bean));
fail("expected IllegalArgumentException");
} catch (IllegalArgumentException iae) {
// pass
}
affects.setStopId("ACTA_6968");
assertEquals("Snow Routes in Affect affecting route(s) ACTA_A1 and stop(s) ACTA_6968", resource.toTweet(bean));
// add another route
affects = new SituationAffectsBean();
affects.setAgencyId("ACTA");
bean.getAllAffects().add(affects);
affects.setRouteId("B2");
assertEquals("Snow Routes in Affect affecting route(s) ACTA_A1, ACTA_B2 and stop(s) ACTA_6968", resource.toTweet(bean));
// add another stop
affects = new SituationAffectsBean();
affects.setAgencyId("ACTA");
bean.getAllAffects().add(affects);
affects.setStopId("ACTA_4370");
assertEquals("Snow Routes in Affect affecting route(s) ACTA_A1, ACTA_B2 and stop(s) ACTA_6968, ACTA_4370", resource.toTweet(bean));
// clear out routes, add a single stop
affects = new SituationAffectsBean();
affects.setAgencyId("ACTA");
bean.setAllAffects(new ArrayList<SituationAffectsBean>());
bean.getAllAffects().add(affects);
affects.setStopId("ACTA_4370");
assertEquals("Snow Routes in Affect affecting stop(s) ACTA_4370", resource.toTweet(bean));
// add another stop
affects = new SituationAffectsBean();
affects.setAgencyId("ACTA");
bean.getAllAffects().add(affects);
affects.setStopId("ACTA_6968");
assertEquals("Snow Routes in Affect affecting stop(s) ACTA_4370, ACTA_6968", resource.toTweet(bean));
// we don't support trip level tweets
}
use of org.onebusaway.transit_data.model.service_alerts.SituationAffectsBean in project onebusaway-application-modules by camsys.
the class AlertsAction method fillSituationAffects.
private void fillSituationAffects(Alert.Builder alert, List<SituationAffectsBean> affectsList) {
for (SituationAffectsBean affects : affectsList) {
EntitySelector.Builder entitySelector = EntitySelector.newBuilder();
if (affects.getAgencyId() != null)
entitySelector.setAgencyId(affects.getAgencyId());
if (affects.getRouteId() != null) {
entitySelector.setRouteId(id(agencyId, sanitize(affects.getRouteId())));
}
if (affects.getTripId() != null) {
TripDescriptor.Builder trip = TripDescriptor.newBuilder();
trip.setTripId(id(agencyId, sanitize(affects.getTripId())));
entitySelector.setTrip(trip);
}
if (affects.getStopId() != null)
entitySelector.setStopId(id(agencyId, sanitize(affects.getStopId())));
alert.addInformedEntity(entitySelector);
}
}
Aggregations