Search in sources :

Example 1 with Affects

use of org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.Affects in project onebusaway-application-modules by camsys.

the class GtfsRealtimeAlertLibraryTest method testGetAlertAsServiceAlert.

@Test
public void testGetAlertAsServiceAlert() {
    AgencyAndId alertId = new AgencyAndId("1", "A1");
    Alert.Builder alert = Alert.newBuilder();
    GtfsRealtime.TimeRange.Builder timeRange = GtfsRealtime.TimeRange.newBuilder();
    timeRange.setStart(1L);
    timeRange.setStart(2L);
    alert.addActivePeriod(timeRange);
    EntitySelector.Builder entitySelector = EntitySelector.newBuilder();
    entitySelector.setAgencyId("agencyId");
    entitySelector.setRouteId("routeId");
    entitySelector.setStopId("stopId");
    TripDescriptor.Builder tripDescriptor = TripDescriptor.newBuilder();
    tripDescriptor.setTripId("tripId");
    entitySelector.setTrip(tripDescriptor);
    alert.addInformedEntity(entitySelector);
    alert.setCause(Alert.Cause.ACCIDENT);
    alert.setEffect(Alert.Effect.DETOUR);
    TranslatedString.Builder headerTexts = TranslatedString.newBuilder();
    Translation.Builder headerText = Translation.newBuilder();
    headerText.setLanguage("en");
    headerText.setText("Summary");
    headerTexts.addTranslation(headerText);
    alert.setHeaderText(headerTexts);
    TranslatedString.Builder descriptionTexts = TranslatedString.newBuilder();
    Translation.Builder descriptionText = Translation.newBuilder();
    descriptionText.setLanguage("fr");
    descriptionText.setText("Description");
    descriptionTexts.addTranslation(descriptionText);
    alert.setDescriptionText(descriptionTexts);
    TranslatedString.Builder urls = TranslatedString.newBuilder();
    Translation.Builder url = Translation.newBuilder();
    url.setLanguage("es");
    url.setText("http://something/");
    urls.addTranslation(url);
    alert.setUrl(urls);
    Mockito.when(_entitySource.getRouteId("routeId")).thenReturn(ServiceAlertLibrary.id("1", "routeId"));
    Mockito.when(_entitySource.getStopId("stopId")).thenReturn(ServiceAlertLibrary.id("2", "stopId"));
    Mockito.when(_entitySource.getTripId("tripId")).thenReturn(ServiceAlertLibrary.id("3", "tripId"));
    ServiceAlert.Builder serviceAlert = _library.getAlertAsServiceAlert(alertId, alert.build());
    Id id = serviceAlert.getId();
    assertEquals("1", id.getAgencyId());
    assertEquals("A1", id.getId());
    assertEquals(1, serviceAlert.getAffectsCount());
    Affects affects = serviceAlert.getAffects(0);
    assertEquals("agencyId", affects.getAgencyId());
    assertEquals("1", affects.getRouteId().getAgencyId());
    assertEquals("routeId", affects.getRouteId().getId());
    assertEquals("2", affects.getStopId().getAgencyId());
    assertEquals("stopId", affects.getStopId().getId());
    assertEquals("3", affects.getTripId().getAgencyId());
    assertEquals("tripId", affects.getTripId().getId());
    assertEquals(ServiceAlert.Cause.ACCIDENT, serviceAlert.getCause());
    assertEquals(1, serviceAlert.getConsequenceCount());
    Consequence consequence = serviceAlert.getConsequence(0);
    assertEquals(Effect.DETOUR, consequence.getEffect());
    ServiceAlerts.TranslatedString summaries = serviceAlert.getSummary();
    assertEquals(1, summaries.getTranslationCount());
    ServiceAlerts.TranslatedString.Translation summary = summaries.getTranslation(0);
    assertEquals("en", summary.getLanguage());
    assertEquals("Summary", summary.getText());
    ServiceAlerts.TranslatedString descriptions = serviceAlert.getDescription();
    assertEquals(1, descriptions.getTranslationCount());
    ServiceAlerts.TranslatedString.Translation description = descriptions.getTranslation(0);
    assertEquals("fr", description.getLanguage());
    assertEquals("Description", description.getText());
    ServiceAlerts.TranslatedString alertUrls = serviceAlert.getUrl();
    assertEquals(1, alertUrls.getTranslationCount());
    ServiceAlerts.TranslatedString.Translation alertUrl = alertUrls.getTranslation(0);
    assertEquals("es", alertUrl.getLanguage());
    assertEquals("http://something/", alertUrl.getText());
}
Also used : TranslatedString(com.google.transit.realtime.GtfsRealtime.TranslatedString) EntitySelector(com.google.transit.realtime.GtfsRealtime.EntitySelector) Translation(com.google.transit.realtime.GtfsRealtime.TranslatedString.Translation) AgencyAndId(org.onebusaway.gtfs.model.AgencyAndId) ServiceAlerts(org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts) Consequence(org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.Consequence) Affects(org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.Affects) ServiceAlert(org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.ServiceAlert) TripDescriptor(com.google.transit.realtime.GtfsRealtime.TripDescriptor) ServiceAlert(org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.ServiceAlert) Alert(com.google.transit.realtime.GtfsRealtime.Alert) Id(org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.Id) AgencyAndId(org.onebusaway.gtfs.model.AgencyAndId) Test(org.junit.Test)

Example 2 with Affects

use of org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.Affects in project onebusaway-application-modules by camsys.

the class GtfsRealtimeAlertLibrary method getAlertAsServiceAlert.

public ServiceAlert.Builder getAlertAsServiceAlert(AgencyAndId id, Alert alert, Map agencyIdMap) {
    ServiceAlert.Builder b = ServiceAlert.newBuilder();
    b.setCreationTime(SystemTime.currentTimeMillis());
    b.setModifiedTime(SystemTime.currentTimeMillis());
    b.setId(ServiceAlertLibrary.id(id));
    for (GtfsRealtime.TimeRange range : alert.getActivePeriodList()) {
        ServiceAlerts.TimeRange.Builder rangeBuilder = ServiceAlerts.TimeRange.newBuilder();
        if (range.hasStart())
            rangeBuilder.setStart(range.getStart());
        if (range.hasEnd())
            rangeBuilder.setEnd(range.getEnd());
        b.addActiveWindow(rangeBuilder);
    }
    if (alert.hasCause())
        b.setCause(convertCause(alert.getCause()));
    if (alert.hasHeaderText())
        b.setSummary(convertTranslatedString(alert.getHeaderText()));
    if (alert.hasDescriptionText())
        b.setDescription(convertTranslatedString(alert.getDescriptionText()));
    if (alert.hasEffect()) {
        Consequence.Builder consequence = Consequence.newBuilder();
        consequence.setEffect(convertEffect(alert.getEffect()));
        b.addConsequence(consequence);
    }
    for (EntitySelector selector : alert.getInformedEntityList()) {
        Affects.Builder affects = getEntitySelectorAsAffects(selector, agencyIdMap);
        b.addAffects(affects);
    }
    if (alert.hasUrl())
        b.setUrl(convertTranslatedString(alert.getUrl()));
    return b;
}
Also used : ServiceAlert(org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.ServiceAlert) EntitySelector(com.google.transit.realtime.GtfsRealtime.EntitySelector) Consequence(org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.Consequence) Affects(org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.Affects) GtfsRealtime(com.google.transit.realtime.GtfsRealtime)

Example 3 with Affects

use of org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.Affects in project onebusaway-application-modules by camsys.

the class GtfsRealtimeAlertLibrary method getEntitySelectorAsAffects.

private Affects.Builder getEntitySelectorAsAffects(EntitySelector selector, Map agencyIdMap) {
    Affects.Builder affects = Affects.newBuilder();
    if (selector.hasAgencyId()) {
        String agencyId = selector.getAgencyId();
        if (agencyIdMap != null && agencyIdMap.get(agencyId) != null) {
            agencyId = (String) agencyIdMap.get(agencyId);
        }
        affects.setAgencyId(agencyId);
    }
    if (selector.hasRouteId()) {
        Id routeId = _entitySource.getRouteId(selector.getRouteId());
        affects.setRouteId(routeId);
    }
    if (selector.hasStopId()) {
        Id stopId = _entitySource.getStopId(selector.getStopId());
        affects.setStopId(stopId);
    }
    if (selector.hasTrip()) {
        TripDescriptor trip = selector.getTrip();
        if (trip.hasTripId())
            affects.setTripId(_entitySource.getTripId(trip.getTripId()));
        else if (trip.hasRouteId())
            affects.setRouteId(_entitySource.getRouteId(trip.getRouteId()));
    }
    return affects;
}
Also used : TripDescriptor(com.google.transit.realtime.GtfsRealtime.TripDescriptor) Id(org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.Id) AgencyAndId(org.onebusaway.gtfs.model.AgencyAndId) Affects(org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.Affects)

Aggregations

Affects (org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.Affects)3 EntitySelector (com.google.transit.realtime.GtfsRealtime.EntitySelector)2 TripDescriptor (com.google.transit.realtime.GtfsRealtime.TripDescriptor)2 AgencyAndId (org.onebusaway.gtfs.model.AgencyAndId)2 Consequence (org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.Consequence)2 Id (org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.Id)2 ServiceAlert (org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.ServiceAlert)2 GtfsRealtime (com.google.transit.realtime.GtfsRealtime)1 Alert (com.google.transit.realtime.GtfsRealtime.Alert)1 TranslatedString (com.google.transit.realtime.GtfsRealtime.TranslatedString)1 Translation (com.google.transit.realtime.GtfsRealtime.TranslatedString.Translation)1 Test (org.junit.Test)1 ServiceAlerts (org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts)1