diff --git a/onebusaway-gtfs-transformer/src/main/java/org/onebusaway/gtfs_transformer/impl/MTAEntrancesStrategy.java b/onebusaway-gtfs-transformer/src/main/java/org/onebusaway/gtfs_transformer/impl/MTAEntrancesStrategy.java index 9e8a2789..84203308 100644 --- a/onebusaway-gtfs-transformer/src/main/java/org/onebusaway/gtfs_transformer/impl/MTAEntrancesStrategy.java +++ b/onebusaway-gtfs-transformer/src/main/java/org/onebusaway/gtfs_transformer/impl/MTAEntrancesStrategy.java @@ -84,7 +84,7 @@ public class MTAEntrancesStrategy implements GtfsTransformStrategy { private Set stopIdsWithPathways = new HashSet(); @CsvField(ignore = true) - private Map complexStopIds = new HashMap<>(); + private Map complexStopIds = new HashMap<>(); @CsvField(ignore = true) private String agencyId; @@ -113,6 +113,10 @@ public class MTAEntrancesStrategy implements GtfsTransformStrategy { private boolean contextualAccessibility; + @CsvField(optional = true) + private boolean markStopsAccessible = false; + + @CsvField(optional = true) private boolean skipStopsWithExistingPathways = true; @@ -131,9 +135,6 @@ public class MTAEntrancesStrategy implements GtfsTransformStrategy { @CsvField(optional = true) private int elevatorTraversalTime = 120; - @CsvField(optional = true) - private boolean markStopsAsAccessible = false; - public String getName() { return this.getClass().getName(); } @@ -166,6 +167,7 @@ public void run(TransformContext context, GtfsMutableRelationalDao dao) { } } + _log.info("elevatorCsv={}, entrancesCsv={}, accessibleComplexFile={}", elevatorsCsv, entrancesCsv, accessibleComplexFile); agencyId = dao.getAllAgencies().iterator().next().getId(); newStops = new HashSet<>(); @@ -233,12 +235,15 @@ public void run(TransformContext context, GtfsMutableRelationalDao dao) { readElevatorData(stopGroups, getComplexList(dao)); } - _log.info("found {} complex stops to mark as accessible", complexStopIds.size()); - for (AgencyAndId aid : complexStopIds.keySet()) { - Stop stop = complexStopIds.get(aid); - stop.setWheelchairBoarding(WHEELCHAIR_ACCESSIBLE); - _log.info("marking stop {} as accessible", stop.getId()); - dao.saveEntity(stop); + _log.info("found {} complex stops to mark as accessible and mark={}", + complexStopIds.size(), markStopsAccessible); + if (markStopsAccessible) { + for (String idOnly : complexStopIds.keySet()) { + Stop stop = complexStopIds.get(idOnly); + stop.setWheelchairBoarding(WHEELCHAIR_ACCESSIBLE); + _log.info("marking stop {} as accessible", stop.getId()); + dao.updateEntity(stop); + } } for (Stop s : newStops) { @@ -580,14 +585,13 @@ private Map> getComplexList(GtfsDao dao) { try (BufferedReader br = new BufferedReader(new FileReader(new File(this.accessibleComplexFile)))) { String line; while ((line = br.readLine()) != null) { - _log.info("accessibleComplexFile line: " + line); List complex = new ArrayList<>(); for (String id : line.split(STOP_SEPARATOR)) { Stop stop = stops.get(id); if (stop == null) _log.info("null stop: {}", id); complex.add(stop); - this.complexStopIds.put(AgencyAndId.convertFromString(id), stop); + this.complexStopIds.put(id, stop); } complexes.put("complex-" + UUID.randomUUID(), complex); } @@ -600,7 +604,7 @@ private Map> getComplexList(GtfsDao dao) { private Map getStopMap(GtfsDao dao) { Map map = new HashMap<>(); for (Stop stop : dao.getAllStops()) { - if (stop.getLocationType() == 0) { + if (stop.getLocationType() == LOCATION_TYPE_STOP) { map.put(stop.getId().getId(), stop); } } @@ -759,5 +763,9 @@ public void setContextualAccessibility(boolean contextualAccessibility) { private String getNamespace(){ return System.getProperty("cloudwatch.namespace"); } + + public void setMarkStopsAccessible(boolean flag) { + markStopsAccessible = flag; + } }