diff --git a/src/main/java/com/google/transit/realtime/GtfsRealtime.java b/src/main/java/com/google/transit/realtime/GtfsRealtime.java index 499eed1925b..44aab163fe2 100644 --- a/src/main/java/com/google/transit/realtime/GtfsRealtime.java +++ b/src/main/java/com/google/transit/realtime/GtfsRealtime.java @@ -1,18 +1,5 @@ -/* This program is free software: you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public License - as published by the Free Software Foundation, either version 3 of - the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - // Generated by the protocol buffer compiler. DO NOT EDIT! -// source: src/main/resources/gtfs-realtime.proto +// source: gtfs-realtime.proto package com.google.transit.realtime; @@ -21,8 +8,9 @@ private GtfsRealtime() {} public static void registerAllExtensions( com.google.protobuf.ExtensionRegistry registry) { } - public interface FeedMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { + public interface FeedMessageOrBuilder extends + com.google.protobuf.GeneratedMessage. + ExtendableMessageOrBuilder { // required .transit_realtime.FeedHeader header = 1; /** @@ -113,10 +101,10 @@ com.google.transit.realtime.GtfsRealtime.FeedEntityOrBuilder getEntityOrBuilder( * */ public static final class FeedMessage extends - com.google.protobuf.GeneratedMessage - implements FeedMessageOrBuilder { + com.google.protobuf.GeneratedMessage.ExtendableMessage< + FeedMessage> implements FeedMessageOrBuilder { // Use FeedMessage.newBuilder() to construct. - private FeedMessage(com.google.protobuf.GeneratedMessage.Builder builder) { + private FeedMessage(com.google.protobuf.GeneratedMessage.ExtendableBuilder builder) { super(builder); this.unknownFields = builder.getUnknownFields(); } @@ -337,6 +325,10 @@ public final boolean isInitialized() { return false; } } + if (!extensionsAreInitialized()) { + memoizedIsInitialized = 0; + return false; + } memoizedIsInitialized = 1; return true; } @@ -344,12 +336,16 @@ public final boolean isInitialized() { public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { getSerializedSize(); + com.google.protobuf.GeneratedMessage + .ExtendableMessage.ExtensionWriter extensionWriter = + newExtensionWriter(); if (((bitField0_ & 0x00000001) == 0x00000001)) { output.writeMessage(1, header_); } for (int i = 0; i < entity_.size(); i++) { output.writeMessage(2, entity_.get(i)); } + extensionWriter.writeUntil(2000, output); getUnknownFields().writeTo(output); } @@ -367,6 +363,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, entity_.get(i)); } + size += extensionsSerializedSize(); size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -463,8 +460,8 @@ protected Builder newBuilderForType( * */ public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements com.google.transit.realtime.GtfsRealtime.FeedMessageOrBuilder { + com.google.protobuf.GeneratedMessage.ExtendableBuilder< + com.google.transit.realtime.GtfsRealtime.FeedMessage, Builder> implements com.google.transit.realtime.GtfsRealtime.FeedMessageOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.transit.realtime.GtfsRealtime.internal_static_transit_realtime_FeedMessage_descriptor; @@ -601,6 +598,7 @@ public Builder mergeFrom(com.google.transit.realtime.GtfsRealtime.FeedMessage ot } } } + this.mergeExtensionFields(other); this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -620,6 +618,10 @@ public final boolean isInitialized() { return false; } } + if (!extensionsAreInitialized()) { + + return false; + } return true; } @@ -1989,8 +1991,9 @@ public Builder clearTimestamp() { // @@protoc_insertion_point(class_scope:transit_realtime.FeedHeader) } - public interface FeedEntityOrBuilder - extends com.google.protobuf.MessageOrBuilder { + public interface FeedEntityOrBuilder extends + com.google.protobuf.GeneratedMessage. + ExtendableMessageOrBuilder { // required string id = 1; /** @@ -2125,10 +2128,10 @@ public interface FeedEntityOrBuilder * */ public static final class FeedEntity extends - com.google.protobuf.GeneratedMessage - implements FeedEntityOrBuilder { + com.google.protobuf.GeneratedMessage.ExtendableMessage< + FeedEntity> implements FeedEntityOrBuilder { // Use FeedEntity.newBuilder() to construct. - private FeedEntity(com.google.protobuf.GeneratedMessage.Builder builder) { + private FeedEntity(com.google.protobuf.GeneratedMessage.ExtendableBuilder builder) { super(builder); this.unknownFields = builder.getUnknownFields(); } @@ -2478,6 +2481,10 @@ public final boolean isInitialized() { return false; } } + if (!extensionsAreInitialized()) { + memoizedIsInitialized = 0; + return false; + } memoizedIsInitialized = 1; return true; } @@ -2485,6 +2492,9 @@ public final boolean isInitialized() { public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { getSerializedSize(); + com.google.protobuf.GeneratedMessage + .ExtendableMessage.ExtensionWriter extensionWriter = + newExtensionWriter(); if (((bitField0_ & 0x00000001) == 0x00000001)) { output.writeBytes(1, getIdBytes()); } @@ -2500,6 +2510,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (((bitField0_ & 0x00000010) == 0x00000010)) { output.writeMessage(5, alert_); } + extensionWriter.writeUntil(2000, output); getUnknownFields().writeTo(output); } @@ -2529,6 +2540,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(5, alert_); } + size += extensionsSerializedSize(); size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -2615,8 +2627,8 @@ protected Builder newBuilderForType( * */ public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements com.google.transit.realtime.GtfsRealtime.FeedEntityOrBuilder { + com.google.protobuf.GeneratedMessage.ExtendableBuilder< + com.google.transit.realtime.GtfsRealtime.FeedEntity, Builder> implements com.google.transit.realtime.GtfsRealtime.FeedEntityOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.transit.realtime.GtfsRealtime.internal_static_transit_realtime_FeedEntity_descriptor; @@ -2767,6 +2779,7 @@ public Builder mergeFrom(com.google.transit.realtime.GtfsRealtime.FeedEntity oth if (other.hasAlert()) { mergeAlert(other.getAlert()); } + this.mergeExtensionFields(other); this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -2794,6 +2807,10 @@ public final boolean isInitialized() { return false; } } + if (!extensionsAreInitialized()) { + + return false; + } return true; } @@ -3621,7 +3638,7 @@ com.google.transit.realtime.GtfsRealtime.TripUpdate.StopTimeUpdateOrBuilder getS * optional uint64 timestamp = 4; * *
-     * Moment at which the vehicle's real-time progress was measured.  In POSIX
+     * Moment at which the vehicle's real-time progress was measured. In POSIX
      * time (i.e., the number of seconds since January 1st 1970 00:00:00 UTC).
      * 
*/ @@ -3630,11 +3647,63 @@ com.google.transit.realtime.GtfsRealtime.TripUpdate.StopTimeUpdateOrBuilder getS * optional uint64 timestamp = 4; * *
-     * Moment at which the vehicle's real-time progress was measured.  In POSIX
+     * Moment at which the vehicle's real-time progress was measured. In POSIX
      * time (i.e., the number of seconds since January 1st 1970 00:00:00 UTC).
      * 
*/ long getTimestamp(); + + // optional int32 delay = 5; + /** + * optional int32 delay = 5; + * + *
+     * The current schedule deviation for the trip.  Delay should only be
+     * specified when the prediction is given relative to some existing schedule
+     * in GTFS.
+     *
+     * Delay (in seconds) can be positive (meaning that the vehicle is late) or
+     * negative (meaning that the vehicle is ahead of schedule). Delay of 0
+     * means that the vehicle is exactly on time.
+     *
+     * Delay information in StopTimeUpdates take precedent of trip-level delay
+     * information, such that trip-level delay is only propagated until the next
+     * stop along the trip with a StopTimeUpdate delay value specified.
+     *
+     * Feed providers are strongly encouraged to provide a TripUpdate.timestamp
+     * value indicating when the delay value was last updated, in order to
+     * evaluate the freshness of the data.
+     *
+     * NOTE: This field is still experimental, and subject to change. It may be
+     * formally adopted in the future.
+     * 
+ */ + boolean hasDelay(); + /** + * optional int32 delay = 5; + * + *
+     * The current schedule deviation for the trip.  Delay should only be
+     * specified when the prediction is given relative to some existing schedule
+     * in GTFS.
+     *
+     * Delay (in seconds) can be positive (meaning that the vehicle is late) or
+     * negative (meaning that the vehicle is ahead of schedule). Delay of 0
+     * means that the vehicle is exactly on time.
+     *
+     * Delay information in StopTimeUpdates take precedent of trip-level delay
+     * information, such that trip-level delay is only propagated until the next
+     * stop along the trip with a StopTimeUpdate delay value specified.
+     *
+     * Feed providers are strongly encouraged to provide a TripUpdate.timestamp
+     * value indicating when the delay value was last updated, in order to
+     * evaluate the freshness of the data.
+     *
+     * NOTE: This field is still experimental, and subject to change. It may be
+     * formally adopted in the future.
+     * 
+ */ + int getDelay(); } /** * Protobuf type {@code transit_realtime.TripUpdate} @@ -3755,6 +3824,11 @@ private TripUpdate( timestamp_ = input.readUInt64(); break; } + case 40: { + bitField0_ |= 0x00000008; + delay_ = input.readInt32(); + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -4805,8 +4879,7 @@ public enum ScheduleRelationship * stops, although not necessarily according to the times of the schedule. * At least one of arrival and departure must be provided. If the schedule * for this stop contains both arrival and departure times then so must - * this update. An update with only an arrival, say, where the schedule - * has both, indicates that the trip is terminating early at this stop. + * this update. * */ SCHEDULED(0, 0), @@ -4841,8 +4914,7 @@ public enum ScheduleRelationship * stops, although not necessarily according to the times of the schedule. * At least one of arrival and departure must be provided. If the schedule * for this stop contains both arrival and departure times then so must - * this update. An update with only an arrival, say, where the schedule - * has both, indicates that the trip is terminating early at this stop. + * this update. * */ public static final int SCHEDULED_VALUE = 0; @@ -6085,7 +6157,7 @@ public com.google.transit.realtime.GtfsRealtime.TripUpdate.StopTimeUpdateOrBuild * optional uint64 timestamp = 4; * *
-     * Moment at which the vehicle's real-time progress was measured.  In POSIX
+     * Moment at which the vehicle's real-time progress was measured. In POSIX
      * time (i.e., the number of seconds since January 1st 1970 00:00:00 UTC).
      * 
*/ @@ -6096,7 +6168,7 @@ public boolean hasTimestamp() { * optional uint64 timestamp = 4; * *
-     * Moment at which the vehicle's real-time progress was measured.  In POSIX
+     * Moment at which the vehicle's real-time progress was measured. In POSIX
      * time (i.e., the number of seconds since January 1st 1970 00:00:00 UTC).
      * 
*/ @@ -6104,11 +6176,70 @@ public long getTimestamp() { return timestamp_; } + // optional int32 delay = 5; + public static final int DELAY_FIELD_NUMBER = 5; + private int delay_; + /** + * optional int32 delay = 5; + * + *
+     * The current schedule deviation for the trip.  Delay should only be
+     * specified when the prediction is given relative to some existing schedule
+     * in GTFS.
+     *
+     * Delay (in seconds) can be positive (meaning that the vehicle is late) or
+     * negative (meaning that the vehicle is ahead of schedule). Delay of 0
+     * means that the vehicle is exactly on time.
+     *
+     * Delay information in StopTimeUpdates take precedent of trip-level delay
+     * information, such that trip-level delay is only propagated until the next
+     * stop along the trip with a StopTimeUpdate delay value specified.
+     *
+     * Feed providers are strongly encouraged to provide a TripUpdate.timestamp
+     * value indicating when the delay value was last updated, in order to
+     * evaluate the freshness of the data.
+     *
+     * NOTE: This field is still experimental, and subject to change. It may be
+     * formally adopted in the future.
+     * 
+ */ + public boolean hasDelay() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional int32 delay = 5; + * + *
+     * The current schedule deviation for the trip.  Delay should only be
+     * specified when the prediction is given relative to some existing schedule
+     * in GTFS.
+     *
+     * Delay (in seconds) can be positive (meaning that the vehicle is late) or
+     * negative (meaning that the vehicle is ahead of schedule). Delay of 0
+     * means that the vehicle is exactly on time.
+     *
+     * Delay information in StopTimeUpdates take precedent of trip-level delay
+     * information, such that trip-level delay is only propagated until the next
+     * stop along the trip with a StopTimeUpdate delay value specified.
+     *
+     * Feed providers are strongly encouraged to provide a TripUpdate.timestamp
+     * value indicating when the delay value was last updated, in order to
+     * evaluate the freshness of the data.
+     *
+     * NOTE: This field is still experimental, and subject to change. It may be
+     * formally adopted in the future.
+     * 
+ */ + public int getDelay() { + return delay_; + } + private void initFields() { trip_ = com.google.transit.realtime.GtfsRealtime.TripDescriptor.getDefaultInstance(); vehicle_ = com.google.transit.realtime.GtfsRealtime.VehicleDescriptor.getDefaultInstance(); stopTimeUpdate_ = java.util.Collections.emptyList(); timestamp_ = 0L; + delay_ = 0; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -6161,6 +6292,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (((bitField0_ & 0x00000004) == 0x00000004)) { output.writeUInt64(4, timestamp_); } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeInt32(5, delay_); + } extensionWriter.writeUntil(2000, output); getUnknownFields().writeTo(output); } @@ -6187,6 +6321,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeUInt64Size(4, timestamp_); } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(5, delay_); + } size += extensionsSerializedSize(); size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; @@ -6356,6 +6494,8 @@ public Builder clear() { } timestamp_ = 0L; bitField0_ = (bitField0_ & ~0x00000008); + delay_ = 0; + bitField0_ = (bitField0_ & ~0x00000010); return this; } @@ -6413,6 +6553,10 @@ public com.google.transit.realtime.GtfsRealtime.TripUpdate buildPartial() { to_bitField0_ |= 0x00000004; } result.timestamp_ = timestamp_; + if (((from_bitField0_ & 0x00000010) == 0x00000010)) { + to_bitField0_ |= 0x00000008; + } + result.delay_ = delay_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -6464,6 +6608,9 @@ public Builder mergeFrom(com.google.transit.realtime.GtfsRealtime.TripUpdate oth if (other.hasTimestamp()) { setTimestamp(other.getTimestamp()); } + if (other.hasDelay()) { + setDelay(other.getDelay()); + } this.mergeExtensionFields(other); this.mergeUnknownFields(other.getUnknownFields()); return this; @@ -7491,7 +7638,7 @@ public com.google.transit.realtime.GtfsRealtime.TripUpdate.StopTimeUpdate.Builde * optional uint64 timestamp = 4; * *
-       * Moment at which the vehicle's real-time progress was measured.  In POSIX
+       * Moment at which the vehicle's real-time progress was measured. In POSIX
        * time (i.e., the number of seconds since January 1st 1970 00:00:00 UTC).
        * 
*/ @@ -7502,7 +7649,7 @@ public boolean hasTimestamp() { * optional uint64 timestamp = 4; * *
-       * Moment at which the vehicle's real-time progress was measured.  In POSIX
+       * Moment at which the vehicle's real-time progress was measured. In POSIX
        * time (i.e., the number of seconds since January 1st 1970 00:00:00 UTC).
        * 
*/ @@ -7513,7 +7660,7 @@ public long getTimestamp() { * optional uint64 timestamp = 4; * *
-       * Moment at which the vehicle's real-time progress was measured.  In POSIX
+       * Moment at which the vehicle's real-time progress was measured. In POSIX
        * time (i.e., the number of seconds since January 1st 1970 00:00:00 UTC).
        * 
*/ @@ -7527,7 +7674,7 @@ public Builder setTimestamp(long value) { * optional uint64 timestamp = 4; * *
-       * Moment at which the vehicle's real-time progress was measured.  In POSIX
+       * Moment at which the vehicle's real-time progress was measured. In POSIX
        * time (i.e., the number of seconds since January 1st 1970 00:00:00 UTC).
        * 
*/ @@ -7538,6 +7685,123 @@ public Builder clearTimestamp() { return this; } + // optional int32 delay = 5; + private int delay_ ; + /** + * optional int32 delay = 5; + * + *
+       * The current schedule deviation for the trip.  Delay should only be
+       * specified when the prediction is given relative to some existing schedule
+       * in GTFS.
+       *
+       * Delay (in seconds) can be positive (meaning that the vehicle is late) or
+       * negative (meaning that the vehicle is ahead of schedule). Delay of 0
+       * means that the vehicle is exactly on time.
+       *
+       * Delay information in StopTimeUpdates take precedent of trip-level delay
+       * information, such that trip-level delay is only propagated until the next
+       * stop along the trip with a StopTimeUpdate delay value specified.
+       *
+       * Feed providers are strongly encouraged to provide a TripUpdate.timestamp
+       * value indicating when the delay value was last updated, in order to
+       * evaluate the freshness of the data.
+       *
+       * NOTE: This field is still experimental, and subject to change. It may be
+       * formally adopted in the future.
+       * 
+ */ + public boolean hasDelay() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + /** + * optional int32 delay = 5; + * + *
+       * The current schedule deviation for the trip.  Delay should only be
+       * specified when the prediction is given relative to some existing schedule
+       * in GTFS.
+       *
+       * Delay (in seconds) can be positive (meaning that the vehicle is late) or
+       * negative (meaning that the vehicle is ahead of schedule). Delay of 0
+       * means that the vehicle is exactly on time.
+       *
+       * Delay information in StopTimeUpdates take precedent of trip-level delay
+       * information, such that trip-level delay is only propagated until the next
+       * stop along the trip with a StopTimeUpdate delay value specified.
+       *
+       * Feed providers are strongly encouraged to provide a TripUpdate.timestamp
+       * value indicating when the delay value was last updated, in order to
+       * evaluate the freshness of the data.
+       *
+       * NOTE: This field is still experimental, and subject to change. It may be
+       * formally adopted in the future.
+       * 
+ */ + public int getDelay() { + return delay_; + } + /** + * optional int32 delay = 5; + * + *
+       * The current schedule deviation for the trip.  Delay should only be
+       * specified when the prediction is given relative to some existing schedule
+       * in GTFS.
+       *
+       * Delay (in seconds) can be positive (meaning that the vehicle is late) or
+       * negative (meaning that the vehicle is ahead of schedule). Delay of 0
+       * means that the vehicle is exactly on time.
+       *
+       * Delay information in StopTimeUpdates take precedent of trip-level delay
+       * information, such that trip-level delay is only propagated until the next
+       * stop along the trip with a StopTimeUpdate delay value specified.
+       *
+       * Feed providers are strongly encouraged to provide a TripUpdate.timestamp
+       * value indicating when the delay value was last updated, in order to
+       * evaluate the freshness of the data.
+       *
+       * NOTE: This field is still experimental, and subject to change. It may be
+       * formally adopted in the future.
+       * 
+ */ + public Builder setDelay(int value) { + bitField0_ |= 0x00000010; + delay_ = value; + onChanged(); + return this; + } + /** + * optional int32 delay = 5; + * + *
+       * The current schedule deviation for the trip.  Delay should only be
+       * specified when the prediction is given relative to some existing schedule
+       * in GTFS.
+       *
+       * Delay (in seconds) can be positive (meaning that the vehicle is late) or
+       * negative (meaning that the vehicle is ahead of schedule). Delay of 0
+       * means that the vehicle is exactly on time.
+       *
+       * Delay information in StopTimeUpdates take precedent of trip-level delay
+       * information, such that trip-level delay is only propagated until the next
+       * stop along the trip with a StopTimeUpdate delay value specified.
+       *
+       * Feed providers are strongly encouraged to provide a TripUpdate.timestamp
+       * value indicating when the delay value was last updated, in order to
+       * evaluate the freshness of the data.
+       *
+       * NOTE: This field is still experimental, and subject to change. It may be
+       * formally adopted in the future.
+       * 
+ */ + public Builder clearDelay() { + bitField0_ = (bitField0_ & ~0x00000010); + delay_ = 0; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:transit_realtime.TripUpdate) } @@ -7740,6 +8004,16 @@ public interface VehiclePositionOrBuilder extends * optional .transit_realtime.VehiclePosition.CongestionLevel congestion_level = 6; */ com.google.transit.realtime.GtfsRealtime.VehiclePosition.CongestionLevel getCongestionLevel(); + + // optional .transit_realtime.VehiclePosition.OccupancyStatus occupancy_status = 9; + /** + * optional .transit_realtime.VehiclePosition.OccupancyStatus occupancy_status = 9; + */ + boolean hasOccupancyStatus(); + /** + * optional .transit_realtime.VehiclePosition.OccupancyStatus occupancy_status = 9; + */ + com.google.transit.realtime.GtfsRealtime.VehiclePosition.OccupancyStatus getOccupancyStatus(); } /** * Protobuf type {@code transit_realtime.VehiclePosition} @@ -7872,6 +8146,17 @@ private VehiclePosition( bitField0_ |= 0x00000002; break; } + case 72: { + int rawValue = input.readEnum(); + com.google.transit.realtime.GtfsRealtime.VehiclePosition.OccupancyStatus value = com.google.transit.realtime.GtfsRealtime.VehiclePosition.OccupancyStatus.valueOf(rawValue); + if (value == null) { + unknownFields.mergeVarintField(9, rawValue); + } else { + bitField0_ |= 0x00000100; + occupancyStatus_ = value; + } + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -8149,6 +8434,213 @@ private CongestionLevel(int index, int value) { // @@protoc_insertion_point(enum_scope:transit_realtime.VehiclePosition.CongestionLevel) } + /** + * Protobuf enum {@code transit_realtime.VehiclePosition.OccupancyStatus} + * + *
+     * The degree of passenger occupancy of the vehicle. This field is still
+     * experimental, and subject to change. It may be formally adopted in the
+     * future.
+     * 
+ */ + public enum OccupancyStatus + implements com.google.protobuf.ProtocolMessageEnum { + /** + * EMPTY = 0; + * + *
+       * The vehicle is considered empty by most measures, and has few or no
+       * passengers onboard, but is still accepting passengers.
+       * 
+ */ + EMPTY(0, 0), + /** + * MANY_SEATS_AVAILABLE = 1; + * + *
+       * The vehicle has a relatively large percentage of seats available.
+       * What percentage of free seats out of the total seats available is to be
+       * considered large enough to fall into this category is determined at the
+       * discretion of the producer.
+       * 
+ */ + MANY_SEATS_AVAILABLE(1, 1), + /** + * FEW_SEATS_AVAILABLE = 2; + * + *
+       * The vehicle has a relatively small percentage of seats available.
+       * What percentage of free seats out of the total seats available is to be
+       * considered small enough to fall into this category is determined at the
+       * discretion of the feed producer.
+       * 
+ */ + FEW_SEATS_AVAILABLE(2, 2), + /** + * STANDING_ROOM_ONLY = 3; + * + *
+       * The vehicle can currently accommodate only standing passengers.
+       * 
+ */ + STANDING_ROOM_ONLY(3, 3), + /** + * CRUSHED_STANDING_ROOM_ONLY = 4; + * + *
+       * The vehicle can currently accommodate only standing passengers
+       * and has limited space for them.
+       * 
+ */ + CRUSHED_STANDING_ROOM_ONLY(4, 4), + /** + * FULL = 5; + * + *
+       * The vehicle is considered full by most measures, but may still be
+       * allowing passengers to board.
+       * 
+ */ + FULL(5, 5), + /** + * NOT_ACCEPTING_PASSENGERS = 6; + * + *
+       * The vehicle is not accepting additional passengers.
+       * 
+ */ + NOT_ACCEPTING_PASSENGERS(6, 6), + ; + + /** + * EMPTY = 0; + * + *
+       * The vehicle is considered empty by most measures, and has few or no
+       * passengers onboard, but is still accepting passengers.
+       * 
+ */ + public static final int EMPTY_VALUE = 0; + /** + * MANY_SEATS_AVAILABLE = 1; + * + *
+       * The vehicle has a relatively large percentage of seats available.
+       * What percentage of free seats out of the total seats available is to be
+       * considered large enough to fall into this category is determined at the
+       * discretion of the producer.
+       * 
+ */ + public static final int MANY_SEATS_AVAILABLE_VALUE = 1; + /** + * FEW_SEATS_AVAILABLE = 2; + * + *
+       * The vehicle has a relatively small percentage of seats available.
+       * What percentage of free seats out of the total seats available is to be
+       * considered small enough to fall into this category is determined at the
+       * discretion of the feed producer.
+       * 
+ */ + public static final int FEW_SEATS_AVAILABLE_VALUE = 2; + /** + * STANDING_ROOM_ONLY = 3; + * + *
+       * The vehicle can currently accommodate only standing passengers.
+       * 
+ */ + public static final int STANDING_ROOM_ONLY_VALUE = 3; + /** + * CRUSHED_STANDING_ROOM_ONLY = 4; + * + *
+       * The vehicle can currently accommodate only standing passengers
+       * and has limited space for them.
+       * 
+ */ + public static final int CRUSHED_STANDING_ROOM_ONLY_VALUE = 4; + /** + * FULL = 5; + * + *
+       * The vehicle is considered full by most measures, but may still be
+       * allowing passengers to board.
+       * 
+ */ + public static final int FULL_VALUE = 5; + /** + * NOT_ACCEPTING_PASSENGERS = 6; + * + *
+       * The vehicle is not accepting additional passengers.
+       * 
+ */ + public static final int NOT_ACCEPTING_PASSENGERS_VALUE = 6; + + + public final int getNumber() { return value; } + + public static OccupancyStatus valueOf(int value) { + switch (value) { + case 0: return EMPTY; + case 1: return MANY_SEATS_AVAILABLE; + case 2: return FEW_SEATS_AVAILABLE; + case 3: return STANDING_ROOM_ONLY; + case 4: return CRUSHED_STANDING_ROOM_ONLY; + case 5: return FULL; + case 6: return NOT_ACCEPTING_PASSENGERS; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static com.google.protobuf.Internal.EnumLiteMap + internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public OccupancyStatus findValueByNumber(int number) { + return OccupancyStatus.valueOf(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + return getDescriptor().getValues().get(index); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.google.transit.realtime.GtfsRealtime.VehiclePosition.getDescriptor().getEnumTypes().get(2); + } + + private static final OccupancyStatus[] VALUES = values(); + + public static OccupancyStatus valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + return VALUES[desc.getIndex()]; + } + + private final int index; + private final int value; + + private OccupancyStatus(int index, int value) { + this.index = index; + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:transit_realtime.VehiclePosition.OccupancyStatus) + } + private int bitField0_; // optional .transit_realtime.TripDescriptor trip = 1; public static final int TRIP_FIELD_NUMBER = 1; @@ -8414,6 +8906,22 @@ public com.google.transit.realtime.GtfsRealtime.VehiclePosition.CongestionLevel return congestionLevel_; } + // optional .transit_realtime.VehiclePosition.OccupancyStatus occupancy_status = 9; + public static final int OCCUPANCY_STATUS_FIELD_NUMBER = 9; + private com.google.transit.realtime.GtfsRealtime.VehiclePosition.OccupancyStatus occupancyStatus_; + /** + * optional .transit_realtime.VehiclePosition.OccupancyStatus occupancy_status = 9; + */ + public boolean hasOccupancyStatus() { + return ((bitField0_ & 0x00000100) == 0x00000100); + } + /** + * optional .transit_realtime.VehiclePosition.OccupancyStatus occupancy_status = 9; + */ + public com.google.transit.realtime.GtfsRealtime.VehiclePosition.OccupancyStatus getOccupancyStatus() { + return occupancyStatus_; + } + private void initFields() { trip_ = com.google.transit.realtime.GtfsRealtime.TripDescriptor.getDefaultInstance(); vehicle_ = com.google.transit.realtime.GtfsRealtime.VehicleDescriptor.getDefaultInstance(); @@ -8423,6 +8931,7 @@ private void initFields() { currentStatus_ = com.google.transit.realtime.GtfsRealtime.VehiclePosition.VehicleStopStatus.IN_TRANSIT_TO; timestamp_ = 0L; congestionLevel_ = com.google.transit.realtime.GtfsRealtime.VehiclePosition.CongestionLevel.UNKNOWN_CONGESTION_LEVEL; + occupancyStatus_ = com.google.transit.realtime.GtfsRealtime.VehiclePosition.OccupancyStatus.EMPTY; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -8485,6 +8994,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (((bitField0_ & 0x00000002) == 0x00000002)) { output.writeMessage(8, vehicle_); } + if (((bitField0_ & 0x00000100) == 0x00000100)) { + output.writeEnum(9, occupancyStatus_.getNumber()); + } extensionWriter.writeUntil(2000, output); getUnknownFields().writeTo(output); } @@ -8527,6 +9039,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(8, vehicle_); } + if (((bitField0_ & 0x00000100) == 0x00000100)) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(9, occupancyStatus_.getNumber()); + } size += extensionsSerializedSize(); size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; @@ -8679,6 +9195,8 @@ public Builder clear() { bitField0_ = (bitField0_ & ~0x00000040); congestionLevel_ = com.google.transit.realtime.GtfsRealtime.VehiclePosition.CongestionLevel.UNKNOWN_CONGESTION_LEVEL; bitField0_ = (bitField0_ & ~0x00000080); + occupancyStatus_ = com.google.transit.realtime.GtfsRealtime.VehiclePosition.OccupancyStatus.EMPTY; + bitField0_ = (bitField0_ & ~0x00000100); return this; } @@ -8751,6 +9269,10 @@ public com.google.transit.realtime.GtfsRealtime.VehiclePosition buildPartial() { to_bitField0_ |= 0x00000080; } result.congestionLevel_ = congestionLevel_; + if (((from_bitField0_ & 0x00000100) == 0x00000100)) { + to_bitField0_ |= 0x00000100; + } + result.occupancyStatus_ = occupancyStatus_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -8793,6 +9315,9 @@ public Builder mergeFrom(com.google.transit.realtime.GtfsRealtime.VehiclePositio if (other.hasCongestionLevel()) { setCongestionLevel(other.getCongestionLevel()); } + if (other.hasOccupancyStatus()) { + setOccupancyStatus(other.getOccupancyStatus()); + } this.mergeExtensionFields(other); this.mergeUnknownFields(other.getUnknownFields()); return this; @@ -9630,6 +10155,42 @@ public Builder clearCongestionLevel() { return this; } + // optional .transit_realtime.VehiclePosition.OccupancyStatus occupancy_status = 9; + private com.google.transit.realtime.GtfsRealtime.VehiclePosition.OccupancyStatus occupancyStatus_ = com.google.transit.realtime.GtfsRealtime.VehiclePosition.OccupancyStatus.EMPTY; + /** + * optional .transit_realtime.VehiclePosition.OccupancyStatus occupancy_status = 9; + */ + public boolean hasOccupancyStatus() { + return ((bitField0_ & 0x00000100) == 0x00000100); + } + /** + * optional .transit_realtime.VehiclePosition.OccupancyStatus occupancy_status = 9; + */ + public com.google.transit.realtime.GtfsRealtime.VehiclePosition.OccupancyStatus getOccupancyStatus() { + return occupancyStatus_; + } + /** + * optional .transit_realtime.VehiclePosition.OccupancyStatus occupancy_status = 9; + */ + public Builder setOccupancyStatus(com.google.transit.realtime.GtfsRealtime.VehiclePosition.OccupancyStatus value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000100; + occupancyStatus_ = value; + onChanged(); + return this; + } + /** + * optional .transit_realtime.VehiclePosition.OccupancyStatus occupancy_status = 9; + */ + public Builder clearOccupancyStatus() { + bitField0_ = (bitField0_ & ~0x00000100); + occupancyStatus_ = com.google.transit.realtime.GtfsRealtime.VehiclePosition.OccupancyStatus.EMPTY; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:transit_realtime.VehiclePosition) } @@ -10658,6 +11219,12 @@ public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized != -1) return isInitialized == 1; + for (int i = 0; i < getActivePeriodCount(); i++) { + if (!getActivePeriod(i).isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } for (int i = 0; i < getInformedEntityCount(); i++) { if (!getInformedEntity(i).isInitialized()) { memoizedIsInitialized = 0; @@ -11082,6 +11649,12 @@ public Builder mergeFrom(com.google.transit.realtime.GtfsRealtime.Alert other) { } public final boolean isInitialized() { + for (int i = 0; i < getActivePeriodCount(); i++) { + if (!getActivePeriod(i).isInitialized()) { + + return false; + } + } for (int i = 0; i < getInformedEntityCount(); i++) { if (!getInformedEntity(i).isInitialized()) { @@ -12343,8 +12916,9 @@ public com.google.transit.realtime.GtfsRealtime.TranslatedStringOrBuilder getDes // @@protoc_insertion_point(class_scope:transit_realtime.Alert) } - public interface TimeRangeOrBuilder - extends com.google.protobuf.MessageOrBuilder { + public interface TimeRangeOrBuilder extends + com.google.protobuf.GeneratedMessage. + ExtendableMessageOrBuilder { // optional uint64 start = 1; /** @@ -12399,10 +12973,10 @@ public interface TimeRangeOrBuilder * */ public static final class TimeRange extends - com.google.protobuf.GeneratedMessage - implements TimeRangeOrBuilder { + com.google.protobuf.GeneratedMessage.ExtendableMessage< + TimeRange> implements TimeRangeOrBuilder { // Use TimeRange.newBuilder() to construct. - private TimeRange(com.google.protobuf.GeneratedMessage.Builder builder) { + private TimeRange(com.google.protobuf.GeneratedMessage.ExtendableBuilder builder) { super(builder); this.unknownFields = builder.getUnknownFields(); } @@ -12561,6 +13135,10 @@ public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized != -1) return isInitialized == 1; + if (!extensionsAreInitialized()) { + memoizedIsInitialized = 0; + return false; + } memoizedIsInitialized = 1; return true; } @@ -12568,12 +13146,16 @@ public final boolean isInitialized() { public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { getSerializedSize(); + com.google.protobuf.GeneratedMessage + .ExtendableMessage.ExtensionWriter extensionWriter = + newExtensionWriter(); if (((bitField0_ & 0x00000001) == 0x00000001)) { output.writeUInt64(1, start_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { output.writeUInt64(2, end_); } + extensionWriter.writeUntil(2000, output); getUnknownFields().writeTo(output); } @@ -12591,6 +13173,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeUInt64Size(2, end_); } + size += extensionsSerializedSize(); size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -12678,8 +13261,8 @@ protected Builder newBuilderForType( * */ public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements com.google.transit.realtime.GtfsRealtime.TimeRangeOrBuilder { + com.google.protobuf.GeneratedMessage.ExtendableBuilder< + com.google.transit.realtime.GtfsRealtime.TimeRange, Builder> implements com.google.transit.realtime.GtfsRealtime.TimeRangeOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.transit.realtime.GtfsRealtime.internal_static_transit_realtime_TimeRange_descriptor; @@ -12774,11 +13357,16 @@ public Builder mergeFrom(com.google.transit.realtime.GtfsRealtime.TimeRange othe if (other.hasEnd()) { setEnd(other.getEnd()); } + this.mergeExtensionFields(other); this.mergeUnknownFields(other.getUnknownFields()); return this; } public final boolean isInitialized() { + if (!extensionsAreInitialized()) { + + return false; + } return true; } @@ -13887,8 +14475,8 @@ public interface TripDescriptorOrBuilder extends * *
      * The trip_id from the GTFS feed that this selector refers to.
-     * For non frequency expanded trips, this field is enough to uniquely identify
-     * the trip. For frequency expanded, start_time and start_date might also be
+     * For non frequency-based trips, this field is enough to uniquely identify
+     * the trip. For frequency-based trip, start_time and start_date might also be
      * necessary.
      * 
*/ @@ -13898,8 +14486,8 @@ public interface TripDescriptorOrBuilder extends * *
      * The trip_id from the GTFS feed that this selector refers to.
-     * For non frequency expanded trips, this field is enough to uniquely identify
-     * the trip. For frequency expanded, start_time and start_date might also be
+     * For non frequency-based trips, this field is enough to uniquely identify
+     * the trip. For frequency-based trip, start_time and start_date might also be
      * necessary.
      * 
*/ @@ -13909,8 +14497,8 @@ public interface TripDescriptorOrBuilder extends * *
      * The trip_id from the GTFS feed that this selector refers to.
-     * For non frequency expanded trips, this field is enough to uniquely identify
-     * the trip. For frequency expanded, start_time and start_date might also be
+     * For non frequency-based trips, this field is enough to uniquely identify
+     * the trip. For frequency-based trip, start_time and start_date might also be
      * necessary.
      * 
*/ @@ -13949,12 +14537,21 @@ public interface TripDescriptorOrBuilder extends * optional string start_time = 2; * *
-     * The scheduled start time of this trip instance.
-     * This field should be given only if the trip is frequency-expanded in the
-     * GTFS feed. The value must precisely correspond to start_time specified for
-     * the route in the GTFS feed plus some multiple of headway_secs.
-     * Format of the field is same as that of GTFS/frequencies.txt/start_time,
-     * e.g., 11:15:35 or 25:15:35.
+     * The initially scheduled start time of this trip instance.
+     * When the trip_id corresponds to a non-frequency-based trip, this field
+     * should either be omitted or be equal to the value in the GTFS feed. When
+     * the trip_id correponds to a frequency-based trip, the start_time must be
+     * specified for trip updates and vehicle positions. If the trip corresponds
+     * to exact_times=1 GTFS record, then start_time must be some multiple
+     * (including zero) of headway_secs later than frequencies.txt start_time for
+     * the corresponding time period. If the trip corresponds to exact_times=0,
+     * then its start_time may be arbitrary, and is initially expected to be the
+     * first departure of the trip. Once established, the start_time of this
+     * frequency-based trip should be considered immutable, even if the first
+     * departure time changes -- that time change may instead be reflected in a
+     * StopTimeUpdate.
+     * Format and semantics of the field is same as that of
+     * GTFS/frequencies.txt/start_time, e.g., 11:15:35 or 25:15:35.
      * 
*/ boolean hasStartTime(); @@ -13962,12 +14559,21 @@ public interface TripDescriptorOrBuilder extends * optional string start_time = 2; * *
-     * The scheduled start time of this trip instance.
-     * This field should be given only if the trip is frequency-expanded in the
-     * GTFS feed. The value must precisely correspond to start_time specified for
-     * the route in the GTFS feed plus some multiple of headway_secs.
-     * Format of the field is same as that of GTFS/frequencies.txt/start_time,
-     * e.g., 11:15:35 or 25:15:35.
+     * The initially scheduled start time of this trip instance.
+     * When the trip_id corresponds to a non-frequency-based trip, this field
+     * should either be omitted or be equal to the value in the GTFS feed. When
+     * the trip_id correponds to a frequency-based trip, the start_time must be
+     * specified for trip updates and vehicle positions. If the trip corresponds
+     * to exact_times=1 GTFS record, then start_time must be some multiple
+     * (including zero) of headway_secs later than frequencies.txt start_time for
+     * the corresponding time period. If the trip corresponds to exact_times=0,
+     * then its start_time may be arbitrary, and is initially expected to be the
+     * first departure of the trip. Once established, the start_time of this
+     * frequency-based trip should be considered immutable, even if the first
+     * departure time changes -- that time change may instead be reflected in a
+     * StopTimeUpdate.
+     * Format and semantics of the field is same as that of
+     * GTFS/frequencies.txt/start_time, e.g., 11:15:35 or 25:15:35.
      * 
*/ java.lang.String getStartTime(); @@ -13975,12 +14581,21 @@ public interface TripDescriptorOrBuilder extends * optional string start_time = 2; * *
-     * The scheduled start time of this trip instance.
-     * This field should be given only if the trip is frequency-expanded in the
-     * GTFS feed. The value must precisely correspond to start_time specified for
-     * the route in the GTFS feed plus some multiple of headway_secs.
-     * Format of the field is same as that of GTFS/frequencies.txt/start_time,
-     * e.g., 11:15:35 or 25:15:35.
+     * The initially scheduled start time of this trip instance.
+     * When the trip_id corresponds to a non-frequency-based trip, this field
+     * should either be omitted or be equal to the value in the GTFS feed. When
+     * the trip_id correponds to a frequency-based trip, the start_time must be
+     * specified for trip updates and vehicle positions. If the trip corresponds
+     * to exact_times=1 GTFS record, then start_time must be some multiple
+     * (including zero) of headway_secs later than frequencies.txt start_time for
+     * the corresponding time period. If the trip corresponds to exact_times=0,
+     * then its start_time may be arbitrary, and is initially expected to be the
+     * first departure of the trip. Once established, the start_time of this
+     * frequency-based trip should be considered immutable, even if the first
+     * departure time changes -- that time change may instead be reflected in a
+     * StopTimeUpdate.
+     * Format and semantics of the field is same as that of
+     * GTFS/frequencies.txt/start_time, e.g., 11:15:35 or 25:15:35.
      * 
*/ com.google.protobuf.ByteString @@ -14040,6 +14655,24 @@ public interface TripDescriptorOrBuilder extends com.google.protobuf.ByteString getStartDateBytes(); + // optional uint32 direction_id = 6; + /** + * optional uint32 direction_id = 6; + * + *
+     * The direction_id from the GTFS feed trips.txt file, indicating the direction of travel for this trip.
+     * 
+ */ + boolean hasDirectionId(); + /** + * optional uint32 direction_id = 6; + * + *
+     * The direction_id from the GTFS feed trips.txt file, indicating the direction of travel for this trip.
+     * 
+ */ + int getDirectionId(); + // optional .transit_realtime.TripDescriptor.ScheduleRelationship schedule_relationship = 4; /** * optional .transit_realtime.TripDescriptor.ScheduleRelationship schedule_relationship = 4; @@ -14134,7 +14767,7 @@ private TripDescriptor( if (value == null) { unknownFields.mergeVarintField(4, rawValue); } else { - bitField0_ |= 0x00000010; + bitField0_ |= 0x00000020; scheduleRelationship_ = value; } break; @@ -14144,6 +14777,11 @@ private TripDescriptor( routeId_ = input.readBytes(); break; } + case 48: { + bitField0_ |= 0x00000010; + directionId_ = input.readUInt32(); + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -14230,27 +14868,6 @@ public enum ScheduleRelationship * */ CANCELED(3, 3), - /** - * REPLACEMENT = 5; - * - *
-       * A trip that replaces a portion of static schedule.
-       * If the trip selector identifies a certain trip instance, then only that
-       * instance is replaced. If the selector identifies a route, then all the
-       * trips along that route are replaced.
-       *
-       * The replacement applies only to the portion of the trip supplied. For
-       * instance, consider a route that goes through stops A,B,C,D,E,F, and a
-       * REPLACEMENT trip provides data for stops A,B,C. Then, the times for stops
-       * D,E,F are still taken from the static schedule.
-       *
-       * A feed might supply several REPLACEMENT trips. In this case, the portion
-       * of static schedule that is replaced is the union of what is defined by
-       * all the feeds. Normally, all the REPLACEMENT trips should either
-       * correspond to the same route or to individual trip instances.
-       * 
- */ - REPLACEMENT(4, 5), ; /** @@ -14289,27 +14906,6 @@ public enum ScheduleRelationship * */ public static final int CANCELED_VALUE = 3; - /** - * REPLACEMENT = 5; - * - *
-       * A trip that replaces a portion of static schedule.
-       * If the trip selector identifies a certain trip instance, then only that
-       * instance is replaced. If the selector identifies a route, then all the
-       * trips along that route are replaced.
-       *
-       * The replacement applies only to the portion of the trip supplied. For
-       * instance, consider a route that goes through stops A,B,C,D,E,F, and a
-       * REPLACEMENT trip provides data for stops A,B,C. Then, the times for stops
-       * D,E,F are still taken from the static schedule.
-       *
-       * A feed might supply several REPLACEMENT trips. In this case, the portion
-       * of static schedule that is replaced is the union of what is defined by
-       * all the feeds. Normally, all the REPLACEMENT trips should either
-       * correspond to the same route or to individual trip instances.
-       * 
- */ - public static final int REPLACEMENT_VALUE = 5; public final int getNumber() { return value; } @@ -14320,7 +14916,6 @@ public static ScheduleRelationship valueOf(int value) { case 1: return ADDED; case 2: return UNSCHEDULED; case 3: return CANCELED; - case 5: return REPLACEMENT; default: return null; } } @@ -14381,8 +14976,8 @@ private ScheduleRelationship(int index, int value) { * *
      * The trip_id from the GTFS feed that this selector refers to.
-     * For non frequency expanded trips, this field is enough to uniquely identify
-     * the trip. For frequency expanded, start_time and start_date might also be
+     * For non frequency-based trips, this field is enough to uniquely identify
+     * the trip. For frequency-based trip, start_time and start_date might also be
      * necessary.
      * 
*/ @@ -14394,8 +14989,8 @@ public boolean hasTripId() { * *
      * The trip_id from the GTFS feed that this selector refers to.
-     * For non frequency expanded trips, this field is enough to uniquely identify
-     * the trip. For frequency expanded, start_time and start_date might also be
+     * For non frequency-based trips, this field is enough to uniquely identify
+     * the trip. For frequency-based trip, start_time and start_date might also be
      * necessary.
      * 
*/ @@ -14418,8 +15013,8 @@ public java.lang.String getTripId() { * *
      * The trip_id from the GTFS feed that this selector refers to.
-     * For non frequency expanded trips, this field is enough to uniquely identify
-     * the trip. For frequency expanded, start_time and start_date might also be
+     * For non frequency-based trips, this field is enough to uniquely identify
+     * the trip. For frequency-based trip, start_time and start_date might also be
      * necessary.
      * 
*/ @@ -14499,12 +15094,21 @@ public java.lang.String getRouteId() { * optional string start_time = 2; * *
-     * The scheduled start time of this trip instance.
-     * This field should be given only if the trip is frequency-expanded in the
-     * GTFS feed. The value must precisely correspond to start_time specified for
-     * the route in the GTFS feed plus some multiple of headway_secs.
-     * Format of the field is same as that of GTFS/frequencies.txt/start_time,
-     * e.g., 11:15:35 or 25:15:35.
+     * The initially scheduled start time of this trip instance.
+     * When the trip_id corresponds to a non-frequency-based trip, this field
+     * should either be omitted or be equal to the value in the GTFS feed. When
+     * the trip_id correponds to a frequency-based trip, the start_time must be
+     * specified for trip updates and vehicle positions. If the trip corresponds
+     * to exact_times=1 GTFS record, then start_time must be some multiple
+     * (including zero) of headway_secs later than frequencies.txt start_time for
+     * the corresponding time period. If the trip corresponds to exact_times=0,
+     * then its start_time may be arbitrary, and is initially expected to be the
+     * first departure of the trip. Once established, the start_time of this
+     * frequency-based trip should be considered immutable, even if the first
+     * departure time changes -- that time change may instead be reflected in a
+     * StopTimeUpdate.
+     * Format and semantics of the field is same as that of
+     * GTFS/frequencies.txt/start_time, e.g., 11:15:35 or 25:15:35.
      * 
*/ public boolean hasStartTime() { @@ -14514,12 +15118,21 @@ public boolean hasStartTime() { * optional string start_time = 2; * *
-     * The scheduled start time of this trip instance.
-     * This field should be given only if the trip is frequency-expanded in the
-     * GTFS feed. The value must precisely correspond to start_time specified for
-     * the route in the GTFS feed plus some multiple of headway_secs.
-     * Format of the field is same as that of GTFS/frequencies.txt/start_time,
-     * e.g., 11:15:35 or 25:15:35.
+     * The initially scheduled start time of this trip instance.
+     * When the trip_id corresponds to a non-frequency-based trip, this field
+     * should either be omitted or be equal to the value in the GTFS feed. When
+     * the trip_id correponds to a frequency-based trip, the start_time must be
+     * specified for trip updates and vehicle positions. If the trip corresponds
+     * to exact_times=1 GTFS record, then start_time must be some multiple
+     * (including zero) of headway_secs later than frequencies.txt start_time for
+     * the corresponding time period. If the trip corresponds to exact_times=0,
+     * then its start_time may be arbitrary, and is initially expected to be the
+     * first departure of the trip. Once established, the start_time of this
+     * frequency-based trip should be considered immutable, even if the first
+     * departure time changes -- that time change may instead be reflected in a
+     * StopTimeUpdate.
+     * Format and semantics of the field is same as that of
+     * GTFS/frequencies.txt/start_time, e.g., 11:15:35 or 25:15:35.
      * 
*/ public java.lang.String getStartTime() { @@ -14540,12 +15153,21 @@ public java.lang.String getStartTime() { * optional string start_time = 2; * *
-     * The scheduled start time of this trip instance.
-     * This field should be given only if the trip is frequency-expanded in the
-     * GTFS feed. The value must precisely correspond to start_time specified for
-     * the route in the GTFS feed plus some multiple of headway_secs.
-     * Format of the field is same as that of GTFS/frequencies.txt/start_time,
-     * e.g., 11:15:35 or 25:15:35.
+     * The initially scheduled start time of this trip instance.
+     * When the trip_id corresponds to a non-frequency-based trip, this field
+     * should either be omitted or be equal to the value in the GTFS feed. When
+     * the trip_id correponds to a frequency-based trip, the start_time must be
+     * specified for trip updates and vehicle positions. If the trip corresponds
+     * to exact_times=1 GTFS record, then start_time must be some multiple
+     * (including zero) of headway_secs later than frequencies.txt start_time for
+     * the corresponding time period. If the trip corresponds to exact_times=0,
+     * then its start_time may be arbitrary, and is initially expected to be the
+     * first departure of the trip. Once established, the start_time of this
+     * frequency-based trip should be considered immutable, even if the first
+     * departure time changes -- that time change may instead be reflected in a
+     * StopTimeUpdate.
+     * Format and semantics of the field is same as that of
+     * GTFS/frequencies.txt/start_time, e.g., 11:15:35 or 25:15:35.
      * 
*/ public com.google.protobuf.ByteString @@ -14644,6 +15266,30 @@ public java.lang.String getStartDate() { } } + // optional uint32 direction_id = 6; + public static final int DIRECTION_ID_FIELD_NUMBER = 6; + private int directionId_; + /** + * optional uint32 direction_id = 6; + * + *
+     * The direction_id from the GTFS feed trips.txt file, indicating the direction of travel for this trip.
+     * 
+ */ + public boolean hasDirectionId() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + /** + * optional uint32 direction_id = 6; + * + *
+     * The direction_id from the GTFS feed trips.txt file, indicating the direction of travel for this trip.
+     * 
+ */ + public int getDirectionId() { + return directionId_; + } + // optional .transit_realtime.TripDescriptor.ScheduleRelationship schedule_relationship = 4; public static final int SCHEDULE_RELATIONSHIP_FIELD_NUMBER = 4; private com.google.transit.realtime.GtfsRealtime.TripDescriptor.ScheduleRelationship scheduleRelationship_; @@ -14651,7 +15297,7 @@ public java.lang.String getStartDate() { * optional .transit_realtime.TripDescriptor.ScheduleRelationship schedule_relationship = 4; */ public boolean hasScheduleRelationship() { - return ((bitField0_ & 0x00000010) == 0x00000010); + return ((bitField0_ & 0x00000020) == 0x00000020); } /** * optional .transit_realtime.TripDescriptor.ScheduleRelationship schedule_relationship = 4; @@ -14665,6 +15311,7 @@ private void initFields() { routeId_ = ""; startTime_ = ""; startDate_ = ""; + directionId_ = 0; scheduleRelationship_ = com.google.transit.realtime.GtfsRealtime.TripDescriptor.ScheduleRelationship.SCHEDULED; } private byte memoizedIsInitialized = -1; @@ -14695,12 +15342,15 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (((bitField0_ & 0x00000008) == 0x00000008)) { output.writeBytes(3, getStartDateBytes()); } - if (((bitField0_ & 0x00000010) == 0x00000010)) { + if (((bitField0_ & 0x00000020) == 0x00000020)) { output.writeEnum(4, scheduleRelationship_.getNumber()); } if (((bitField0_ & 0x00000002) == 0x00000002)) { output.writeBytes(5, getRouteIdBytes()); } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + output.writeUInt32(6, directionId_); + } extensionWriter.writeUntil(2000, output); getUnknownFields().writeTo(output); } @@ -14723,7 +15373,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeBytesSize(3, getStartDateBytes()); } - if (((bitField0_ & 0x00000010) == 0x00000010)) { + if (((bitField0_ & 0x00000020) == 0x00000020)) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(4, scheduleRelationship_.getNumber()); } @@ -14731,6 +15381,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeBytesSize(5, getRouteIdBytes()); } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(6, directionId_); + } size += extensionsSerializedSize(); size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; @@ -14868,8 +15522,10 @@ public Builder clear() { bitField0_ = (bitField0_ & ~0x00000004); startDate_ = ""; bitField0_ = (bitField0_ & ~0x00000008); - scheduleRelationship_ = com.google.transit.realtime.GtfsRealtime.TripDescriptor.ScheduleRelationship.SCHEDULED; + directionId_ = 0; bitField0_ = (bitField0_ & ~0x00000010); + scheduleRelationship_ = com.google.transit.realtime.GtfsRealtime.TripDescriptor.ScheduleRelationship.SCHEDULED; + bitField0_ = (bitField0_ & ~0x00000020); return this; } @@ -14917,6 +15573,10 @@ public com.google.transit.realtime.GtfsRealtime.TripDescriptor buildPartial() { if (((from_bitField0_ & 0x00000010) == 0x00000010)) { to_bitField0_ |= 0x00000010; } + result.directionId_ = directionId_; + if (((from_bitField0_ & 0x00000020) == 0x00000020)) { + to_bitField0_ |= 0x00000020; + } result.scheduleRelationship_ = scheduleRelationship_; result.bitField0_ = to_bitField0_; onBuilt(); @@ -14954,6 +15614,9 @@ public Builder mergeFrom(com.google.transit.realtime.GtfsRealtime.TripDescriptor startDate_ = other.startDate_; onChanged(); } + if (other.hasDirectionId()) { + setDirectionId(other.getDirectionId()); + } if (other.hasScheduleRelationship()) { setScheduleRelationship(other.getScheduleRelationship()); } @@ -14996,8 +15659,8 @@ public Builder mergeFrom( * *
        * The trip_id from the GTFS feed that this selector refers to.
-       * For non frequency expanded trips, this field is enough to uniquely identify
-       * the trip. For frequency expanded, start_time and start_date might also be
+       * For non frequency-based trips, this field is enough to uniquely identify
+       * the trip. For frequency-based trip, start_time and start_date might also be
        * necessary.
        * 
*/ @@ -15009,8 +15672,8 @@ public boolean hasTripId() { * *
        * The trip_id from the GTFS feed that this selector refers to.
-       * For non frequency expanded trips, this field is enough to uniquely identify
-       * the trip. For frequency expanded, start_time and start_date might also be
+       * For non frequency-based trips, this field is enough to uniquely identify
+       * the trip. For frequency-based trip, start_time and start_date might also be
        * necessary.
        * 
*/ @@ -15030,8 +15693,8 @@ public java.lang.String getTripId() { * *
        * The trip_id from the GTFS feed that this selector refers to.
-       * For non frequency expanded trips, this field is enough to uniquely identify
-       * the trip. For frequency expanded, start_time and start_date might also be
+       * For non frequency-based trips, this field is enough to uniquely identify
+       * the trip. For frequency-based trip, start_time and start_date might also be
        * necessary.
        * 
*/ @@ -15053,8 +15716,8 @@ public java.lang.String getTripId() { * *
        * The trip_id from the GTFS feed that this selector refers to.
-       * For non frequency expanded trips, this field is enough to uniquely identify
-       * the trip. For frequency expanded, start_time and start_date might also be
+       * For non frequency-based trips, this field is enough to uniquely identify
+       * the trip. For frequency-based trip, start_time and start_date might also be
        * necessary.
        * 
*/ @@ -15073,8 +15736,8 @@ public Builder setTripId( * *
        * The trip_id from the GTFS feed that this selector refers to.
-       * For non frequency expanded trips, this field is enough to uniquely identify
-       * the trip. For frequency expanded, start_time and start_date might also be
+       * For non frequency-based trips, this field is enough to uniquely identify
+       * the trip. For frequency-based trip, start_time and start_date might also be
        * necessary.
        * 
*/ @@ -15089,8 +15752,8 @@ public Builder clearTripId() { * *
        * The trip_id from the GTFS feed that this selector refers to.
-       * For non frequency expanded trips, this field is enough to uniquely identify
-       * the trip. For frequency expanded, start_time and start_date might also be
+       * For non frequency-based trips, this field is enough to uniquely identify
+       * the trip. For frequency-based trip, start_time and start_date might also be
        * necessary.
        * 
*/ @@ -15209,12 +15872,21 @@ public Builder setRouteIdBytes( * optional string start_time = 2; * *
-       * The scheduled start time of this trip instance.
-       * This field should be given only if the trip is frequency-expanded in the
-       * GTFS feed. The value must precisely correspond to start_time specified for
-       * the route in the GTFS feed plus some multiple of headway_secs.
-       * Format of the field is same as that of GTFS/frequencies.txt/start_time,
-       * e.g., 11:15:35 or 25:15:35.
+       * The initially scheduled start time of this trip instance.
+       * When the trip_id corresponds to a non-frequency-based trip, this field
+       * should either be omitted or be equal to the value in the GTFS feed. When
+       * the trip_id correponds to a frequency-based trip, the start_time must be
+       * specified for trip updates and vehicle positions. If the trip corresponds
+       * to exact_times=1 GTFS record, then start_time must be some multiple
+       * (including zero) of headway_secs later than frequencies.txt start_time for
+       * the corresponding time period. If the trip corresponds to exact_times=0,
+       * then its start_time may be arbitrary, and is initially expected to be the
+       * first departure of the trip. Once established, the start_time of this
+       * frequency-based trip should be considered immutable, even if the first
+       * departure time changes -- that time change may instead be reflected in a
+       * StopTimeUpdate.
+       * Format and semantics of the field is same as that of
+       * GTFS/frequencies.txt/start_time, e.g., 11:15:35 or 25:15:35.
        * 
*/ public boolean hasStartTime() { @@ -15224,12 +15896,21 @@ public boolean hasStartTime() { * optional string start_time = 2; * *
-       * The scheduled start time of this trip instance.
-       * This field should be given only if the trip is frequency-expanded in the
-       * GTFS feed. The value must precisely correspond to start_time specified for
-       * the route in the GTFS feed plus some multiple of headway_secs.
-       * Format of the field is same as that of GTFS/frequencies.txt/start_time,
-       * e.g., 11:15:35 or 25:15:35.
+       * The initially scheduled start time of this trip instance.
+       * When the trip_id corresponds to a non-frequency-based trip, this field
+       * should either be omitted or be equal to the value in the GTFS feed. When
+       * the trip_id correponds to a frequency-based trip, the start_time must be
+       * specified for trip updates and vehicle positions. If the trip corresponds
+       * to exact_times=1 GTFS record, then start_time must be some multiple
+       * (including zero) of headway_secs later than frequencies.txt start_time for
+       * the corresponding time period. If the trip corresponds to exact_times=0,
+       * then its start_time may be arbitrary, and is initially expected to be the
+       * first departure of the trip. Once established, the start_time of this
+       * frequency-based trip should be considered immutable, even if the first
+       * departure time changes -- that time change may instead be reflected in a
+       * StopTimeUpdate.
+       * Format and semantics of the field is same as that of
+       * GTFS/frequencies.txt/start_time, e.g., 11:15:35 or 25:15:35.
        * 
*/ public java.lang.String getStartTime() { @@ -15247,12 +15928,21 @@ public java.lang.String getStartTime() { * optional string start_time = 2; * *
-       * The scheduled start time of this trip instance.
-       * This field should be given only if the trip is frequency-expanded in the
-       * GTFS feed. The value must precisely correspond to start_time specified for
-       * the route in the GTFS feed plus some multiple of headway_secs.
-       * Format of the field is same as that of GTFS/frequencies.txt/start_time,
-       * e.g., 11:15:35 or 25:15:35.
+       * The initially scheduled start time of this trip instance.
+       * When the trip_id corresponds to a non-frequency-based trip, this field
+       * should either be omitted or be equal to the value in the GTFS feed. When
+       * the trip_id correponds to a frequency-based trip, the start_time must be
+       * specified for trip updates and vehicle positions. If the trip corresponds
+       * to exact_times=1 GTFS record, then start_time must be some multiple
+       * (including zero) of headway_secs later than frequencies.txt start_time for
+       * the corresponding time period. If the trip corresponds to exact_times=0,
+       * then its start_time may be arbitrary, and is initially expected to be the
+       * first departure of the trip. Once established, the start_time of this
+       * frequency-based trip should be considered immutable, even if the first
+       * departure time changes -- that time change may instead be reflected in a
+       * StopTimeUpdate.
+       * Format and semantics of the field is same as that of
+       * GTFS/frequencies.txt/start_time, e.g., 11:15:35 or 25:15:35.
        * 
*/ public com.google.protobuf.ByteString @@ -15272,12 +15962,21 @@ public java.lang.String getStartTime() { * optional string start_time = 2; * *
-       * The scheduled start time of this trip instance.
-       * This field should be given only if the trip is frequency-expanded in the
-       * GTFS feed. The value must precisely correspond to start_time specified for
-       * the route in the GTFS feed plus some multiple of headway_secs.
-       * Format of the field is same as that of GTFS/frequencies.txt/start_time,
-       * e.g., 11:15:35 or 25:15:35.
+       * The initially scheduled start time of this trip instance.
+       * When the trip_id corresponds to a non-frequency-based trip, this field
+       * should either be omitted or be equal to the value in the GTFS feed. When
+       * the trip_id correponds to a frequency-based trip, the start_time must be
+       * specified for trip updates and vehicle positions. If the trip corresponds
+       * to exact_times=1 GTFS record, then start_time must be some multiple
+       * (including zero) of headway_secs later than frequencies.txt start_time for
+       * the corresponding time period. If the trip corresponds to exact_times=0,
+       * then its start_time may be arbitrary, and is initially expected to be the
+       * first departure of the trip. Once established, the start_time of this
+       * frequency-based trip should be considered immutable, even if the first
+       * departure time changes -- that time change may instead be reflected in a
+       * StopTimeUpdate.
+       * Format and semantics of the field is same as that of
+       * GTFS/frequencies.txt/start_time, e.g., 11:15:35 or 25:15:35.
        * 
*/ public Builder setStartTime( @@ -15294,12 +15993,21 @@ public Builder setStartTime( * optional string start_time = 2; * *
-       * The scheduled start time of this trip instance.
-       * This field should be given only if the trip is frequency-expanded in the
-       * GTFS feed. The value must precisely correspond to start_time specified for
-       * the route in the GTFS feed plus some multiple of headway_secs.
-       * Format of the field is same as that of GTFS/frequencies.txt/start_time,
-       * e.g., 11:15:35 or 25:15:35.
+       * The initially scheduled start time of this trip instance.
+       * When the trip_id corresponds to a non-frequency-based trip, this field
+       * should either be omitted or be equal to the value in the GTFS feed. When
+       * the trip_id correponds to a frequency-based trip, the start_time must be
+       * specified for trip updates and vehicle positions. If the trip corresponds
+       * to exact_times=1 GTFS record, then start_time must be some multiple
+       * (including zero) of headway_secs later than frequencies.txt start_time for
+       * the corresponding time period. If the trip corresponds to exact_times=0,
+       * then its start_time may be arbitrary, and is initially expected to be the
+       * first departure of the trip. Once established, the start_time of this
+       * frequency-based trip should be considered immutable, even if the first
+       * departure time changes -- that time change may instead be reflected in a
+       * StopTimeUpdate.
+       * Format and semantics of the field is same as that of
+       * GTFS/frequencies.txt/start_time, e.g., 11:15:35 or 25:15:35.
        * 
*/ public Builder clearStartTime() { @@ -15312,12 +16020,21 @@ public Builder clearStartTime() { * optional string start_time = 2; * *
-       * The scheduled start time of this trip instance.
-       * This field should be given only if the trip is frequency-expanded in the
-       * GTFS feed. The value must precisely correspond to start_time specified for
-       * the route in the GTFS feed plus some multiple of headway_secs.
-       * Format of the field is same as that of GTFS/frequencies.txt/start_time,
-       * e.g., 11:15:35 or 25:15:35.
+       * The initially scheduled start time of this trip instance.
+       * When the trip_id corresponds to a non-frequency-based trip, this field
+       * should either be omitted or be equal to the value in the GTFS feed. When
+       * the trip_id correponds to a frequency-based trip, the start_time must be
+       * specified for trip updates and vehicle positions. If the trip corresponds
+       * to exact_times=1 GTFS record, then start_time must be some multiple
+       * (including zero) of headway_secs later than frequencies.txt start_time for
+       * the corresponding time period. If the trip corresponds to exact_times=0,
+       * then its start_time may be arbitrary, and is initially expected to be the
+       * first departure of the trip. Once established, the start_time of this
+       * frequency-based trip should be considered immutable, even if the first
+       * departure time changes -- that time change may instead be reflected in a
+       * StopTimeUpdate.
+       * Format and semantics of the field is same as that of
+       * GTFS/frequencies.txt/start_time, e.g., 11:15:35 or 25:15:35.
        * 
*/ public Builder setStartTimeBytes( @@ -15483,13 +16200,62 @@ public Builder setStartDateBytes( return this; } + // optional uint32 direction_id = 6; + private int directionId_ ; + /** + * optional uint32 direction_id = 6; + * + *
+       * The direction_id from the GTFS feed trips.txt file, indicating the direction of travel for this trip.
+       * 
+ */ + public boolean hasDirectionId() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + /** + * optional uint32 direction_id = 6; + * + *
+       * The direction_id from the GTFS feed trips.txt file, indicating the direction of travel for this trip.
+       * 
+ */ + public int getDirectionId() { + return directionId_; + } + /** + * optional uint32 direction_id = 6; + * + *
+       * The direction_id from the GTFS feed trips.txt file, indicating the direction of travel for this trip.
+       * 
+ */ + public Builder setDirectionId(int value) { + bitField0_ |= 0x00000010; + directionId_ = value; + onChanged(); + return this; + } + /** + * optional uint32 direction_id = 6; + * + *
+       * The direction_id from the GTFS feed trips.txt file, indicating the direction of travel for this trip.
+       * 
+ */ + public Builder clearDirectionId() { + bitField0_ = (bitField0_ & ~0x00000010); + directionId_ = 0; + onChanged(); + return this; + } + // optional .transit_realtime.TripDescriptor.ScheduleRelationship schedule_relationship = 4; private com.google.transit.realtime.GtfsRealtime.TripDescriptor.ScheduleRelationship scheduleRelationship_ = com.google.transit.realtime.GtfsRealtime.TripDescriptor.ScheduleRelationship.SCHEDULED; /** * optional .transit_realtime.TripDescriptor.ScheduleRelationship schedule_relationship = 4; */ public boolean hasScheduleRelationship() { - return ((bitField0_ & 0x00000010) == 0x00000010); + return ((bitField0_ & 0x00000020) == 0x00000020); } /** * optional .transit_realtime.TripDescriptor.ScheduleRelationship schedule_relationship = 4; @@ -15504,7 +16270,7 @@ public Builder setScheduleRelationship(com.google.transit.realtime.GtfsRealtime. if (value == null) { throw new NullPointerException(); } - bitField0_ |= 0x00000010; + bitField0_ |= 0x00000020; scheduleRelationship_ = value; onChanged(); return this; @@ -15513,7 +16279,7 @@ public Builder setScheduleRelationship(com.google.transit.realtime.GtfsRealtime. * optional .transit_realtime.TripDescriptor.ScheduleRelationship schedule_relationship = 4; */ public Builder clearScheduleRelationship() { - bitField0_ = (bitField0_ & ~0x00000010); + bitField0_ = (bitField0_ & ~0x00000020); scheduleRelationship_ = com.google.transit.realtime.GtfsRealtime.TripDescriptor.ScheduleRelationship.SCHEDULED; onChanged(); return this; @@ -17723,8 +18489,9 @@ public Builder setStopIdBytes( // @@protoc_insertion_point(class_scope:transit_realtime.EntitySelector) } - public interface TranslatedStringOrBuilder - extends com.google.protobuf.MessageOrBuilder { + public interface TranslatedStringOrBuilder extends + com.google.protobuf.GeneratedMessage. + ExtendableMessageOrBuilder { // repeated .transit_realtime.TranslatedString.Translation translation = 1; /** @@ -17788,10 +18555,10 @@ com.google.transit.realtime.GtfsRealtime.TranslatedString.TranslationOrBuilder g * */ public static final class TranslatedString extends - com.google.protobuf.GeneratedMessage - implements TranslatedStringOrBuilder { + com.google.protobuf.GeneratedMessage.ExtendableMessage< + TranslatedString> implements TranslatedStringOrBuilder { // Use TranslatedString.newBuilder() to construct. - private TranslatedString(com.google.protobuf.GeneratedMessage.Builder builder) { + private TranslatedString(com.google.protobuf.GeneratedMessage.ExtendableBuilder builder) { super(builder); this.unknownFields = builder.getUnknownFields(); } @@ -17885,8 +18652,9 @@ public com.google.protobuf.Parser getParserForType() { return PARSER; } - public interface TranslationOrBuilder - extends com.google.protobuf.MessageOrBuilder { + public interface TranslationOrBuilder extends + com.google.protobuf.GeneratedMessage. + ExtendableMessageOrBuilder { // required string text = 1; /** @@ -17952,10 +18720,10 @@ public interface TranslationOrBuilder * Protobuf type {@code transit_realtime.TranslatedString.Translation} */ public static final class Translation extends - com.google.protobuf.GeneratedMessage - implements TranslationOrBuilder { + com.google.protobuf.GeneratedMessage.ExtendableMessage< + Translation> implements TranslationOrBuilder { // Use Translation.newBuilder() to construct. - private Translation(com.google.protobuf.GeneratedMessage.Builder builder) { + private Translation(com.google.protobuf.GeneratedMessage.ExtendableBuilder builder) { super(builder); this.unknownFields = builder.getUnknownFields(); } @@ -18178,6 +18946,10 @@ public final boolean isInitialized() { memoizedIsInitialized = 0; return false; } + if (!extensionsAreInitialized()) { + memoizedIsInitialized = 0; + return false; + } memoizedIsInitialized = 1; return true; } @@ -18185,12 +18957,16 @@ public final boolean isInitialized() { public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { getSerializedSize(); + com.google.protobuf.GeneratedMessage + .ExtendableMessage.ExtensionWriter extensionWriter = + newExtensionWriter(); if (((bitField0_ & 0x00000001) == 0x00000001)) { output.writeBytes(1, getTextBytes()); } if (((bitField0_ & 0x00000002) == 0x00000002)) { output.writeBytes(2, getLanguageBytes()); } + extensionWriter.writeUntil(2000, output); getUnknownFields().writeTo(output); } @@ -18208,6 +18984,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeBytesSize(2, getLanguageBytes()); } + size += extensionsSerializedSize(); size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -18290,8 +19067,8 @@ protected Builder newBuilderForType( * Protobuf type {@code transit_realtime.TranslatedString.Translation} */ public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements com.google.transit.realtime.GtfsRealtime.TranslatedString.TranslationOrBuilder { + com.google.protobuf.GeneratedMessage.ExtendableBuilder< + com.google.transit.realtime.GtfsRealtime.TranslatedString.Translation, Builder> implements com.google.transit.realtime.GtfsRealtime.TranslatedString.TranslationOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.transit.realtime.GtfsRealtime.internal_static_transit_realtime_TranslatedString_Translation_descriptor; @@ -18390,6 +19167,7 @@ public Builder mergeFrom(com.google.transit.realtime.GtfsRealtime.TranslatedStri language_ = other.language_; onChanged(); } + this.mergeExtensionFields(other); this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -18399,6 +19177,10 @@ public final boolean isInitialized() { return false; } + if (!extensionsAreInitialized()) { + + return false; + } return true; } @@ -18710,6 +19492,10 @@ public final boolean isInitialized() { return false; } } + if (!extensionsAreInitialized()) { + memoizedIsInitialized = 0; + return false; + } memoizedIsInitialized = 1; return true; } @@ -18717,9 +19503,13 @@ public final boolean isInitialized() { public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { getSerializedSize(); + com.google.protobuf.GeneratedMessage + .ExtendableMessage.ExtensionWriter extensionWriter = + newExtensionWriter(); for (int i = 0; i < translation_.size(); i++) { output.writeMessage(1, translation_.get(i)); } + extensionWriter.writeUntil(2000, output); getUnknownFields().writeTo(output); } @@ -18733,6 +19523,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, translation_.get(i)); } + size += extensionsSerializedSize(); size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -18828,8 +19619,8 @@ protected Builder newBuilderForType( * */ public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements com.google.transit.realtime.GtfsRealtime.TranslatedStringOrBuilder { + com.google.protobuf.GeneratedMessage.ExtendableBuilder< + com.google.transit.realtime.GtfsRealtime.TranslatedString, Builder> implements com.google.transit.realtime.GtfsRealtime.TranslatedStringOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.transit.realtime.GtfsRealtime.internal_static_transit_realtime_TranslatedString_descriptor; @@ -18946,6 +19737,7 @@ public Builder mergeFrom(com.google.transit.realtime.GtfsRealtime.TranslatedStri } } } + this.mergeExtensionFields(other); this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -18957,6 +19749,10 @@ public final boolean isInitialized() { return false; } } + if (!extensionsAreInitialized()) { + + return false; + } return true; } @@ -19386,94 +20182,101 @@ public com.google.transit.realtime.GtfsRealtime.TranslatedString.Translation.Bui descriptor; static { java.lang.String[] descriptorData = { - "\n&src/main/resources/gtfs-realtime.proto" + - "\022\020transit_realtime\"i\n\013FeedMessage\022,\n\006hea" + - "der\030\001 \002(\0132\034.transit_realtime.FeedHeader\022" + - ",\n\006entity\030\002 \003(\0132\034.transit_realtime.FeedE" + - "ntity\"\317\001\n\nFeedHeader\022\035\n\025gtfs_realtime_ve" + - "rsion\030\001 \002(\t\022Q\n\016incrementality\030\002 \001(\0162+.tr" + - "ansit_realtime.FeedHeader.Incrementality" + - ":\014FULL_DATASET\022\021\n\ttimestamp\030\003 \001(\004\"4\n\016Inc" + - "rementality\022\020\n\014FULL_DATASET\020\000\022\020\n\014DIFFERE" + - "NTIAL\020\001*\006\010\350\007\020\320\017\"\302\001\n\nFeedEntity\022\n\n\002id\030\001 \002", - "(\t\022\031\n\nis_deleted\030\002 \001(\010:\005false\0221\n\013trip_up" + - "date\030\003 \001(\0132\034.transit_realtime.TripUpdate" + - "\0222\n\007vehicle\030\004 \001(\0132!.transit_realtime.Veh" + - "iclePosition\022&\n\005alert\030\005 \001(\0132\027.transit_re" + - "altime.Alert\"\213\005\n\nTripUpdate\022.\n\004trip\030\001 \002(" + - "\0132 .transit_realtime.TripDescriptor\0224\n\007v" + - "ehicle\030\003 \001(\0132#.transit_realtime.VehicleD" + - "escriptor\022E\n\020stop_time_update\030\002 \003(\0132+.tr" + - "ansit_realtime.TripUpdate.StopTimeUpdate" + - "\022\021\n\ttimestamp\030\004 \001(\004\032I\n\rStopTimeEvent\022\r\n\005", - "delay\030\001 \001(\005\022\014\n\004time\030\002 \001(\003\022\023\n\013uncertainty" + - "\030\003 \001(\005*\006\010\350\007\020\320\017\032\351\002\n\016StopTimeUpdate\022\025\n\rsto" + - "p_sequence\030\001 \001(\r\022\017\n\007stop_id\030\004 \001(\t\022;\n\007arr" + - "ival\030\002 \001(\0132*.transit_realtime.TripUpdate" + - ".StopTimeEvent\022=\n\tdeparture\030\003 \001(\0132*.tran" + - "sit_realtime.TripUpdate.StopTimeEvent\022j\n" + - "\025schedule_relationship\030\005 \001(\0162@.transit_r" + - "ealtime.TripUpdate.StopTimeUpdate.Schedu" + - "leRelationship:\tSCHEDULED\"?\n\024ScheduleRel" + - "ationship\022\r\n\tSCHEDULED\020\000\022\013\n\007SKIPPED\020\001\022\013\n", - "\007NO_DATA\020\002*\006\010\350\007\020\320\017*\006\010\350\007\020\320\017\"\341\004\n\017VehiclePo" + - "sition\022.\n\004trip\030\001 \001(\0132 .transit_realtime." + - "TripDescriptor\0224\n\007vehicle\030\010 \001(\0132#.transi" + - "t_realtime.VehicleDescriptor\022,\n\010position" + - "\030\002 \001(\0132\032.transit_realtime.Position\022\035\n\025cu" + - "rrent_stop_sequence\030\003 \001(\r\022\017\n\007stop_id\030\007 \001" + - "(\t\022Z\n\016current_status\030\004 \001(\01623.transit_rea" + - "ltime.VehiclePosition.VehicleStopStatus:" + - "\rIN_TRANSIT_TO\022\021\n\ttimestamp\030\005 \001(\004\022K\n\020con" + - "gestion_level\030\006 \001(\01621.transit_realtime.V", - "ehiclePosition.CongestionLevel\"G\n\021Vehicl" + - "eStopStatus\022\017\n\013INCOMING_AT\020\000\022\016\n\nSTOPPED_" + - "AT\020\001\022\021\n\rIN_TRANSIT_TO\020\002\"}\n\017CongestionLev" + - "el\022\034\n\030UNKNOWN_CONGESTION_LEVEL\020\000\022\024\n\020RUNN" + - "ING_SMOOTHLY\020\001\022\017\n\013STOP_AND_GO\020\002\022\016\n\nCONGE" + - "STION\020\003\022\025\n\021SEVERE_CONGESTION\020\004*\006\010\350\007\020\320\017\"\266" + - "\006\n\005Alert\0222\n\ractive_period\030\001 \003(\0132\033.transi" + - "t_realtime.TimeRange\0229\n\017informed_entity\030" + - "\005 \003(\0132 .transit_realtime.EntitySelector\022" + - ";\n\005cause\030\006 \001(\0162\035.transit_realtime.Alert.", - "Cause:\rUNKNOWN_CAUSE\022>\n\006effect\030\007 \001(\0162\036.t" + - "ransit_realtime.Alert.Effect:\016UNKNOWN_EF" + - "FECT\022/\n\003url\030\010 \001(\0132\".transit_realtime.Tra" + - "nslatedString\0227\n\013header_text\030\n \001(\0132\".tra" + - "nsit_realtime.TranslatedString\022<\n\020descri" + - "ption_text\030\013 \001(\0132\".transit_realtime.Tran" + - "slatedString\"\330\001\n\005Cause\022\021\n\rUNKNOWN_CAUSE\020" + - "\001\022\017\n\013OTHER_CAUSE\020\002\022\025\n\021TECHNICAL_PROBLEM\020" + - "\003\022\n\n\006STRIKE\020\004\022\021\n\rDEMONSTRATION\020\005\022\014\n\010ACCI" + - "DENT\020\006\022\013\n\007HOLIDAY\020\007\022\013\n\007WEATHER\020\010\022\017\n\013MAIN", - "TENANCE\020\t\022\020\n\014CONSTRUCTION\020\n\022\023\n\017POLICE_AC" + - "TIVITY\020\013\022\025\n\021MEDICAL_EMERGENCY\020\014\"\265\001\n\006Effe" + - "ct\022\016\n\nNO_SERVICE\020\001\022\023\n\017REDUCED_SERVICE\020\002\022" + - "\026\n\022SIGNIFICANT_DELAYS\020\003\022\n\n\006DETOUR\020\004\022\026\n\022A" + - "DDITIONAL_SERVICE\020\005\022\024\n\020MODIFIED_SERVICE\020" + - "\006\022\020\n\014OTHER_EFFECT\020\007\022\022\n\016UNKNOWN_EFFECT\020\010\022" + - "\016\n\nSTOP_MOVED\020\t*\006\010\350\007\020\320\017\"\'\n\tTimeRange\022\r\n\005" + - "start\030\001 \001(\004\022\013\n\003end\030\002 \001(\004\"i\n\010Position\022\020\n\010" + - "latitude\030\001 \002(\002\022\021\n\tlongitude\030\002 \002(\002\022\017\n\007bea" + - "ring\030\003 \001(\002\022\020\n\010odometer\030\004 \001(\001\022\r\n\005speed\030\005 ", - "\001(\002*\006\010\350\007\020\320\017\"\233\002\n\016TripDescriptor\022\017\n\007trip_i" + - "d\030\001 \001(\t\022\020\n\010route_id\030\005 \001(\t\022\022\n\nstart_time\030" + - "\002 \001(\t\022\022\n\nstart_date\030\003 \001(\t\022T\n\025schedule_re" + - "lationship\030\004 \001(\01625.transit_realtime.Trip" + - "Descriptor.ScheduleRelationship\"`\n\024Sched" + - "uleRelationship\022\r\n\tSCHEDULED\020\000\022\t\n\005ADDED\020" + - "\001\022\017\n\013UNSCHEDULED\020\002\022\014\n\010CANCELED\020\003\022\017\n\013REPL" + - "ACEMENT\020\005*\006\010\350\007\020\320\017\"M\n\021VehicleDescriptor\022\n" + + "\n\023gtfs-realtime.proto\022\020transit_realtime\"" + + "q\n\013FeedMessage\022,\n\006header\030\001 \002(\0132\034.transit" + + "_realtime.FeedHeader\022,\n\006entity\030\002 \003(\0132\034.t" + + "ransit_realtime.FeedEntity*\006\010\350\007\020\320\017\"\317\001\n\nF" + + "eedHeader\022\035\n\025gtfs_realtime_version\030\001 \002(\t" + + "\022Q\n\016incrementality\030\002 \001(\0162+.transit_realt" + + "ime.FeedHeader.Incrementality:\014FULL_DATA" + + "SET\022\021\n\ttimestamp\030\003 \001(\004\"4\n\016Incrementality" + + "\022\020\n\014FULL_DATASET\020\000\022\020\n\014DIFFERENTIAL\020\001*\006\010\350" + + "\007\020\320\017\"\312\001\n\nFeedEntity\022\n\n\002id\030\001 \002(\t\022\031\n\nis_de", + "leted\030\002 \001(\010:\005false\0221\n\013trip_update\030\003 \001(\0132" + + "\034.transit_realtime.TripUpdate\0222\n\007vehicle" + + "\030\004 \001(\0132!.transit_realtime.VehiclePositio" + + "n\022&\n\005alert\030\005 \001(\0132\027.transit_realtime.Aler" + + "t*\006\010\350\007\020\320\017\"\232\005\n\nTripUpdate\022.\n\004trip\030\001 \002(\0132 " + + ".transit_realtime.TripDescriptor\0224\n\007vehi" + + "cle\030\003 \001(\0132#.transit_realtime.VehicleDesc" + + "riptor\022E\n\020stop_time_update\030\002 \003(\0132+.trans" + + "it_realtime.TripUpdate.StopTimeUpdate\022\021\n" + + "\ttimestamp\030\004 \001(\004\022\r\n\005delay\030\005 \001(\005\032I\n\rStopT", + "imeEvent\022\r\n\005delay\030\001 \001(\005\022\014\n\004time\030\002 \001(\003\022\023\n" + + "\013uncertainty\030\003 \001(\005*\006\010\350\007\020\320\017\032\351\002\n\016StopTimeU" + + "pdate\022\025\n\rstop_sequence\030\001 \001(\r\022\017\n\007stop_id\030" + + "\004 \001(\t\022;\n\007arrival\030\002 \001(\0132*.transit_realtim" + + "e.TripUpdate.StopTimeEvent\022=\n\tdeparture\030" + + "\003 \001(\0132*.transit_realtime.TripUpdate.Stop" + + "TimeEvent\022j\n\025schedule_relationship\030\005 \001(\016" + + "2@.transit_realtime.TripUpdate.StopTimeU" + + "pdate.ScheduleRelationship:\tSCHEDULED\"?\n" + + "\024ScheduleRelationship\022\r\n\tSCHEDULED\020\000\022\013\n\007", + "SKIPPED\020\001\022\013\n\007NO_DATA\020\002*\006\010\350\007\020\320\017*\006\010\350\007\020\320\017\"\340" + + "\006\n\017VehiclePosition\022.\n\004trip\030\001 \001(\0132 .trans" + + "it_realtime.TripDescriptor\0224\n\007vehicle\030\010 " + + "\001(\0132#.transit_realtime.VehicleDescriptor" + + "\022,\n\010position\030\002 \001(\0132\032.transit_realtime.Po" + + "sition\022\035\n\025current_stop_sequence\030\003 \001(\r\022\017\n" + + "\007stop_id\030\007 \001(\t\022Z\n\016current_status\030\004 \001(\01623" + + ".transit_realtime.VehiclePosition.Vehicl" + + "eStopStatus:\rIN_TRANSIT_TO\022\021\n\ttimestamp\030" + + "\005 \001(\004\022K\n\020congestion_level\030\006 \001(\01621.transi", + "t_realtime.VehiclePosition.CongestionLev" + + "el\022K\n\020occupancy_status\030\t \001(\01621.transit_r" + + "ealtime.VehiclePosition.OccupancyStatus\"" + + "G\n\021VehicleStopStatus\022\017\n\013INCOMING_AT\020\000\022\016\n" + + "\nSTOPPED_AT\020\001\022\021\n\rIN_TRANSIT_TO\020\002\"}\n\017Cong" + + "estionLevel\022\034\n\030UNKNOWN_CONGESTION_LEVEL\020" + + "\000\022\024\n\020RUNNING_SMOOTHLY\020\001\022\017\n\013STOP_AND_GO\020\002" + + "\022\016\n\nCONGESTION\020\003\022\025\n\021SEVERE_CONGESTION\020\004\"" + + "\257\001\n\017OccupancyStatus\022\t\n\005EMPTY\020\000\022\030\n\024MANY_S" + + "EATS_AVAILABLE\020\001\022\027\n\023FEW_SEATS_AVAILABLE\020", + "\002\022\026\n\022STANDING_ROOM_ONLY\020\003\022\036\n\032CRUSHED_STA" + + "NDING_ROOM_ONLY\020\004\022\010\n\004FULL\020\005\022\034\n\030NOT_ACCEP" + + "TING_PASSENGERS\020\006*\006\010\350\007\020\320\017\"\266\006\n\005Alert\0222\n\ra" + + "ctive_period\030\001 \003(\0132\033.transit_realtime.Ti" + + "meRange\0229\n\017informed_entity\030\005 \003(\0132 .trans" + + "it_realtime.EntitySelector\022;\n\005cause\030\006 \001(" + + "\0162\035.transit_realtime.Alert.Cause:\rUNKNOW" + + "N_CAUSE\022>\n\006effect\030\007 \001(\0162\036.transit_realti" + + "me.Alert.Effect:\016UNKNOWN_EFFECT\022/\n\003url\030\010" + + " \001(\0132\".transit_realtime.TranslatedString", + "\0227\n\013header_text\030\n \001(\0132\".transit_realtime" + + ".TranslatedString\022<\n\020description_text\030\013 " + + "\001(\0132\".transit_realtime.TranslatedString\"" + + "\330\001\n\005Cause\022\021\n\rUNKNOWN_CAUSE\020\001\022\017\n\013OTHER_CA" + + "USE\020\002\022\025\n\021TECHNICAL_PROBLEM\020\003\022\n\n\006STRIKE\020\004" + + "\022\021\n\rDEMONSTRATION\020\005\022\014\n\010ACCIDENT\020\006\022\013\n\007HOL" + + "IDAY\020\007\022\013\n\007WEATHER\020\010\022\017\n\013MAINTENANCE\020\t\022\020\n\014" + + "CONSTRUCTION\020\n\022\023\n\017POLICE_ACTIVITY\020\013\022\025\n\021M" + + "EDICAL_EMERGENCY\020\014\"\265\001\n\006Effect\022\016\n\nNO_SERV" + + "ICE\020\001\022\023\n\017REDUCED_SERVICE\020\002\022\026\n\022SIGNIFICAN", + "T_DELAYS\020\003\022\n\n\006DETOUR\020\004\022\026\n\022ADDITIONAL_SER" + + "VICE\020\005\022\024\n\020MODIFIED_SERVICE\020\006\022\020\n\014OTHER_EF" + + "FECT\020\007\022\022\n\016UNKNOWN_EFFECT\020\010\022\016\n\nSTOP_MOVED" + + "\020\t*\006\010\350\007\020\320\017\"/\n\tTimeRange\022\r\n\005start\030\001 \001(\004\022\013" + + "\n\003end\030\002 \001(\004*\006\010\350\007\020\320\017\"i\n\010Position\022\020\n\010latit" + + "ude\030\001 \002(\002\022\021\n\tlongitude\030\002 \002(\002\022\017\n\007bearing\030" + + "\003 \001(\002\022\020\n\010odometer\030\004 \001(\001\022\r\n\005speed\030\005 \001(\002*\006" + + "\010\350\007\020\320\017\"\240\002\n\016TripDescriptor\022\017\n\007trip_id\030\001 \001" + + "(\t\022\020\n\010route_id\030\005 \001(\t\022\022\n\nstart_time\030\002 \001(\t" + + "\022\022\n\nstart_date\030\003 \001(\t\022\024\n\014direction_id\030\006 \001", + "(\r\022T\n\025schedule_relationship\030\004 \001(\01625.tran" + + "sit_realtime.TripDescriptor.ScheduleRela" + + "tionship\"O\n\024ScheduleRelationship\022\r\n\tSCHE" + + "DULED\020\000\022\t\n\005ADDED\020\001\022\017\n\013UNSCHEDULED\020\002\022\014\n\010C" + + "ANCELED\020\003*\006\010\350\007\020\320\017\"M\n\021VehicleDescriptor\022\n" + "\n\002id\030\001 \001(\t\022\r\n\005label\030\002 \001(\t\022\025\n\rlicense_pla" + - "te\030\003 \001(\t*\006\010\350\007\020\320\017\"\222\001\n\016EntitySelector\022\021\n\ta", + "te\030\003 \001(\t*\006\010\350\007\020\320\017\"\222\001\n\016EntitySelector\022\021\n\ta" + "gency_id\030\001 \001(\t\022\020\n\010route_id\030\002 \001(\t\022\022\n\nrout" + "e_type\030\003 \001(\005\022.\n\004trip\030\004 \001(\0132 .transit_rea" + - "ltime.TripDescriptor\022\017\n\007stop_id\030\005 \001(\t*\006\010" + - "\350\007\020\320\017\"\206\001\n\020TranslatedString\022C\n\013translatio" + + "ltime.TripDescriptor\022\017\n\007stop_id\030\005 \001(\t*\006\010", + "\350\007\020\320\017\"\226\001\n\020TranslatedString\022C\n\013translatio" + "n\030\001 \003(\0132..transit_realtime.TranslatedStr" + - "ing.Translation\032-\n\013Translation\022\014\n\004text\030\001" + - " \002(\t\022\020\n\010language\030\002 \001(\tB\035\n\033com.google.tra" + - "nsit.realtime" + "ing.Translation\0325\n\013Translation\022\014\n\004text\030\001" + + " \002(\t\022\020\n\010language\030\002 \001(\t*\006\010\350\007\020\320\017*\006\010\350\007\020\320\017B\035" + + "\n\033com.google.transit.realtime" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -19503,7 +20306,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_transit_realtime_TripUpdate_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_transit_realtime_TripUpdate_descriptor, - new java.lang.String[] { "Trip", "Vehicle", "StopTimeUpdate", "Timestamp", }); + new java.lang.String[] { "Trip", "Vehicle", "StopTimeUpdate", "Timestamp", "Delay", }); internal_static_transit_realtime_TripUpdate_StopTimeEvent_descriptor = internal_static_transit_realtime_TripUpdate_descriptor.getNestedTypes().get(0); internal_static_transit_realtime_TripUpdate_StopTimeEvent_fieldAccessorTable = new @@ -19521,7 +20324,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_transit_realtime_VehiclePosition_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_transit_realtime_VehiclePosition_descriptor, - new java.lang.String[] { "Trip", "Vehicle", "Position", "CurrentStopSequence", "StopId", "CurrentStatus", "Timestamp", "CongestionLevel", }); + new java.lang.String[] { "Trip", "Vehicle", "Position", "CurrentStopSequence", "StopId", "CurrentStatus", "Timestamp", "CongestionLevel", "OccupancyStatus", }); internal_static_transit_realtime_Alert_descriptor = getDescriptor().getMessageTypes().get(5); internal_static_transit_realtime_Alert_fieldAccessorTable = new @@ -19545,7 +20348,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_transit_realtime_TripDescriptor_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_transit_realtime_TripDescriptor_descriptor, - new java.lang.String[] { "TripId", "RouteId", "StartTime", "StartDate", "ScheduleRelationship", }); + new java.lang.String[] { "TripId", "RouteId", "StartTime", "StartDate", "DirectionId", "ScheduleRelationship", }); internal_static_transit_realtime_VehicleDescriptor_descriptor = getDescriptor().getMessageTypes().get(9); internal_static_transit_realtime_VehicleDescriptor_fieldAccessorTable = new