First prototype
diff --git a/inc/Gtfs/Agency.php b/inc/Gtfs/Agency.php
new file mode 100644
index 0000000..43f1f3c
--- /dev/null
+++ b/inc/Gtfs/Agency.php
@@ -0,0 +1,307 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+use Google\Protobuf\Internal\GPBType;
+use Google\Protobuf\Internal\RepeatedField;
+use Google\Protobuf\Internal\GPBUtil;
+
+/**
+ * Generated from protobuf message <code>gtfs.Agency</code>
+ */
+class Agency extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The agency_id field is an ID that uniquely identifies a transit agency.
+ *
+ * Generated from protobuf field <code>string agency_id = 1;</code>
+ */
+ protected $agency_id = '';
+ /**
+ * The agency_name field contains the full name of the transit agency.
+ *
+ * Generated from protobuf field <code>string agency_name = 2;</code>
+ */
+ protected $agency_name = '';
+ /**
+ * The agency_url field contains the URL of the transit agency.
+ *
+ * Generated from protobuf field <code>string agency_url = 3;</code>
+ */
+ protected $agency_url = '';
+ /**
+ * The agency_timezone field contains the timezone where the transit agency is located.
+ *
+ * Generated from protobuf field <code>string agency_timezone = 4;</code>
+ */
+ protected $agency_timezone = '';
+ /**
+ * The agency_lang field contains a two-letter ISO 639-1 code for the primary language used by this transit agency.
+ *
+ * Generated from protobuf field <code>string agency_lang = 5;</code>
+ */
+ protected $agency_lang = '';
+ /**
+ * The agency_phone field contains a single voice telephone number for the specified agency.
+ *
+ * Generated from protobuf field <code>string agency_phone = 6;</code>
+ */
+ protected $agency_phone = '';
+ /**
+ * The agency_fare_url specifies the URL of a web page that allows a rider to purchase tickets or other fare instruments for that agency online.
+ *
+ * Generated from protobuf field <code>string agency_fare_url = 7;</code>
+ */
+ protected $agency_fare_url = '';
+ /**
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ */
+ protected $extension = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $agency_id
+ * The agency_id field is an ID that uniquely identifies a transit agency.
+ * @type string $agency_name
+ * The agency_name field contains the full name of the transit agency.
+ * @type string $agency_url
+ * The agency_url field contains the URL of the transit agency.
+ * @type string $agency_timezone
+ * The agency_timezone field contains the timezone where the transit agency is located.
+ * @type string $agency_lang
+ * The agency_lang field contains a two-letter ISO 639-1 code for the primary language used by this transit agency.
+ * @type string $agency_phone
+ * The agency_phone field contains a single voice telephone number for the specified agency.
+ * @type string $agency_fare_url
+ * The agency_fare_url specifies the URL of a web page that allows a rider to purchase tickets or other fare instruments for that agency online.
+ * @type \Google\Protobuf\Any $extension
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Proto\Gtfs::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The agency_id field is an ID that uniquely identifies a transit agency.
+ *
+ * Generated from protobuf field <code>string agency_id = 1;</code>
+ * @return string
+ */
+ public function getAgencyId()
+ {
+ return $this->agency_id;
+ }
+
+ /**
+ * The agency_id field is an ID that uniquely identifies a transit agency.
+ *
+ * Generated from protobuf field <code>string agency_id = 1;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setAgencyId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->agency_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The agency_name field contains the full name of the transit agency.
+ *
+ * Generated from protobuf field <code>string agency_name = 2;</code>
+ * @return string
+ */
+ public function getAgencyName()
+ {
+ return $this->agency_name;
+ }
+
+ /**
+ * The agency_name field contains the full name of the transit agency.
+ *
+ * Generated from protobuf field <code>string agency_name = 2;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setAgencyName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->agency_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The agency_url field contains the URL of the transit agency.
+ *
+ * Generated from protobuf field <code>string agency_url = 3;</code>
+ * @return string
+ */
+ public function getAgencyUrl()
+ {
+ return $this->agency_url;
+ }
+
+ /**
+ * The agency_url field contains the URL of the transit agency.
+ *
+ * Generated from protobuf field <code>string agency_url = 3;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setAgencyUrl($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->agency_url = $var;
+
+ return $this;
+ }
+
+ /**
+ * The agency_timezone field contains the timezone where the transit agency is located.
+ *
+ * Generated from protobuf field <code>string agency_timezone = 4;</code>
+ * @return string
+ */
+ public function getAgencyTimezone()
+ {
+ return $this->agency_timezone;
+ }
+
+ /**
+ * The agency_timezone field contains the timezone where the transit agency is located.
+ *
+ * Generated from protobuf field <code>string agency_timezone = 4;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setAgencyTimezone($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->agency_timezone = $var;
+
+ return $this;
+ }
+
+ /**
+ * The agency_lang field contains a two-letter ISO 639-1 code for the primary language used by this transit agency.
+ *
+ * Generated from protobuf field <code>string agency_lang = 5;</code>
+ * @return string
+ */
+ public function getAgencyLang()
+ {
+ return $this->agency_lang;
+ }
+
+ /**
+ * The agency_lang field contains a two-letter ISO 639-1 code for the primary language used by this transit agency.
+ *
+ * Generated from protobuf field <code>string agency_lang = 5;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setAgencyLang($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->agency_lang = $var;
+
+ return $this;
+ }
+
+ /**
+ * The agency_phone field contains a single voice telephone number for the specified agency.
+ *
+ * Generated from protobuf field <code>string agency_phone = 6;</code>
+ * @return string
+ */
+ public function getAgencyPhone()
+ {
+ return $this->agency_phone;
+ }
+
+ /**
+ * The agency_phone field contains a single voice telephone number for the specified agency.
+ *
+ * Generated from protobuf field <code>string agency_phone = 6;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setAgencyPhone($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->agency_phone = $var;
+
+ return $this;
+ }
+
+ /**
+ * The agency_fare_url specifies the URL of a web page that allows a rider to purchase tickets or other fare instruments for that agency online.
+ *
+ * Generated from protobuf field <code>string agency_fare_url = 7;</code>
+ * @return string
+ */
+ public function getAgencyFareUrl()
+ {
+ return $this->agency_fare_url;
+ }
+
+ /**
+ * The agency_fare_url specifies the URL of a web page that allows a rider to purchase tickets or other fare instruments for that agency online.
+ *
+ * Generated from protobuf field <code>string agency_fare_url = 7;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setAgencyFareUrl($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->agency_fare_url = $var;
+
+ return $this;
+ }
+
+ /**
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @return \Google\Protobuf\Any
+ */
+ public function getExtension()
+ {
+ return $this->extension;
+ }
+
+ /**
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @param \Google\Protobuf\Any $var
+ * @return $this
+ */
+ public function setExtension($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Any::class);
+ $this->extension = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/inc/Gtfs/Calendar.php b/inc/Gtfs/Calendar.php
new file mode 100644
index 0000000..2536d81
--- /dev/null
+++ b/inc/Gtfs/Calendar.php
@@ -0,0 +1,350 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+use Google\Protobuf\Internal\GPBType;
+use Google\Protobuf\Internal\RepeatedField;
+use Google\Protobuf\Internal\GPBUtil;
+
+/**
+ * Generated from protobuf message <code>gtfs.Calendar</code>
+ */
+class Calendar extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The trip_id field contains an ID that identifies a trip. The trip_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string service_id = 1;</code>
+ */
+ protected $service_id = '';
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay monday = 2;</code>
+ */
+ protected $monday = 0;
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay tuesday = 3;</code>
+ */
+ protected $tuesday = 0;
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay wednesday = 4;</code>
+ */
+ protected $wednesday = 0;
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay thursday = 5;</code>
+ */
+ protected $thursday = 0;
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay friday = 6;</code>
+ */
+ protected $friday = 0;
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay saturday = 7;</code>
+ */
+ protected $saturday = 0;
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay sunday = 8;</code>
+ */
+ protected $sunday = 0;
+ /**
+ * Generated from protobuf field <code>string start_date = 9;</code>
+ */
+ protected $start_date = '';
+ /**
+ * Generated from protobuf field <code>string end_date = 10;</code>
+ */
+ protected $end_date = '';
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ */
+ protected $extension = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service_id
+ * The trip_id field contains an ID that identifies a trip. The trip_id is dataset unique.
+ * @type int $monday
+ * @type int $tuesday
+ * @type int $wednesday
+ * @type int $thursday
+ * @type int $friday
+ * @type int $saturday
+ * @type int $sunday
+ * @type string $start_date
+ * @type string $end_date
+ * @type \Google\Protobuf\Any $extension
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Proto\Gtfs::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The trip_id field contains an ID that identifies a trip. The trip_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string service_id = 1;</code>
+ * @return string
+ */
+ public function getServiceId()
+ {
+ return $this->service_id;
+ }
+
+ /**
+ * The trip_id field contains an ID that identifies a trip. The trip_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string service_id = 1;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay monday = 2;</code>
+ * @return int
+ */
+ public function getMonday()
+ {
+ return $this->monday;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay monday = 2;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setMonday($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\Calendar_CalendarDay::class);
+ $this->monday = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay tuesday = 3;</code>
+ * @return int
+ */
+ public function getTuesday()
+ {
+ return $this->tuesday;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay tuesday = 3;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setTuesday($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\Calendar_CalendarDay::class);
+ $this->tuesday = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay wednesday = 4;</code>
+ * @return int
+ */
+ public function getWednesday()
+ {
+ return $this->wednesday;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay wednesday = 4;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setWednesday($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\Calendar_CalendarDay::class);
+ $this->wednesday = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay thursday = 5;</code>
+ * @return int
+ */
+ public function getThursday()
+ {
+ return $this->thursday;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay thursday = 5;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setThursday($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\Calendar_CalendarDay::class);
+ $this->thursday = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay friday = 6;</code>
+ * @return int
+ */
+ public function getFriday()
+ {
+ return $this->friday;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay friday = 6;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setFriday($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\Calendar_CalendarDay::class);
+ $this->friday = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay saturday = 7;</code>
+ * @return int
+ */
+ public function getSaturday()
+ {
+ return $this->saturday;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay saturday = 7;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setSaturday($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\Calendar_CalendarDay::class);
+ $this->saturday = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay sunday = 8;</code>
+ * @return int
+ */
+ public function getSunday()
+ {
+ return $this->sunday;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar.CalendarDay sunday = 8;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setSunday($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\Calendar_CalendarDay::class);
+ $this->sunday = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string start_date = 9;</code>
+ * @return string
+ */
+ public function getStartDate()
+ {
+ return $this->start_date;
+ }
+
+ /**
+ * Generated from protobuf field <code>string start_date = 9;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setStartDate($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->start_date = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string end_date = 10;</code>
+ * @return string
+ */
+ public function getEndDate()
+ {
+ return $this->end_date;
+ }
+
+ /**
+ * Generated from protobuf field <code>string end_date = 10;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setEndDate($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->end_date = $var;
+
+ return $this;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @return \Google\Protobuf\Any
+ */
+ public function getExtension()
+ {
+ return $this->extension;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @param \Google\Protobuf\Any $var
+ * @return $this
+ */
+ public function setExtension($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Any::class);
+ $this->extension = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/inc/Gtfs/Calendar/CalendarDay.php b/inc/Gtfs/Calendar/CalendarDay.php
new file mode 100644
index 0000000..12b6667
--- /dev/null
+++ b/inc/Gtfs/Calendar/CalendarDay.php
@@ -0,0 +1,51 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs\Calendar;
+
+use UnexpectedValueException;
+
+/**
+ * Protobuf type <code>gtfs.Calendar.CalendarDay</code>
+ */
+class CalendarDay
+{
+ /**
+ * Generated from protobuf enum <code>NOT_AVAILABLE = 0;</code>
+ */
+ const NOT_AVAILABLE = 0;
+ /**
+ * Generated from protobuf enum <code>AVAILABLE = 1;</code>
+ */
+ const AVAILABLE = 1;
+
+ private static $valueToName = [
+ self::NOT_AVAILABLE => 'NOT_AVAILABLE',
+ self::AVAILABLE => 'AVAILABLE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CalendarDay::class, \Gtfs\Calendar_CalendarDay::class);
+
diff --git a/inc/Gtfs/CalendarDate.php b/inc/Gtfs/CalendarDate.php
new file mode 100644
index 0000000..a3f9240
--- /dev/null
+++ b/inc/Gtfs/CalendarDate.php
@@ -0,0 +1,161 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+use Google\Protobuf\Internal\GPBType;
+use Google\Protobuf\Internal\RepeatedField;
+use Google\Protobuf\Internal\GPBUtil;
+
+/**
+ * Generated from protobuf message <code>gtfs.CalendarDate</code>
+ */
+class CalendarDate extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The trip_id field contains an ID that identifies a trip. The trip_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string service_id = 1;</code>
+ */
+ protected $service_id = '';
+ /**
+ * Generated from protobuf field <code>string date = 2;</code>
+ */
+ protected $date = '';
+ /**
+ * Generated from protobuf field <code>.gtfs.CalendarDate.ExceptionType exception_type = 3;</code>
+ */
+ protected $exception_type = 0;
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ */
+ protected $extension = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service_id
+ * The trip_id field contains an ID that identifies a trip. The trip_id is dataset unique.
+ * @type string $date
+ * @type int $exception_type
+ * @type \Google\Protobuf\Any $extension
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Proto\Gtfs::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The trip_id field contains an ID that identifies a trip. The trip_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string service_id = 1;</code>
+ * @return string
+ */
+ public function getServiceId()
+ {
+ return $this->service_id;
+ }
+
+ /**
+ * The trip_id field contains an ID that identifies a trip. The trip_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string service_id = 1;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string date = 2;</code>
+ * @return string
+ */
+ public function getDate()
+ {
+ return $this->date;
+ }
+
+ /**
+ * Generated from protobuf field <code>string date = 2;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setDate($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->date = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.CalendarDate.ExceptionType exception_type = 3;</code>
+ * @return int
+ */
+ public function getExceptionType()
+ {
+ return $this->exception_type;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.CalendarDate.ExceptionType exception_type = 3;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setExceptionType($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\CalendarDate_ExceptionType::class);
+ $this->exception_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @return \Google\Protobuf\Any
+ */
+ public function getExtension()
+ {
+ return $this->extension;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @param \Google\Protobuf\Any $var
+ * @return $this
+ */
+ public function setExtension($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Any::class);
+ $this->extension = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/inc/Gtfs/CalendarDate/ExceptionType.php b/inc/Gtfs/CalendarDate/ExceptionType.php
new file mode 100644
index 0000000..11a0024
--- /dev/null
+++ b/inc/Gtfs/CalendarDate/ExceptionType.php
@@ -0,0 +1,56 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs\CalendarDate;
+
+use UnexpectedValueException;
+
+/**
+ * Protobuf type <code>gtfs.CalendarDate.ExceptionType</code>
+ */
+class ExceptionType
+{
+ /**
+ * Generated from protobuf enum <code>UNUSED_UNKNOWN = 0;</code>
+ */
+ const UNUSED_UNKNOWN = 0;
+ /**
+ * Generated from protobuf enum <code>ADDED = 1;</code>
+ */
+ const ADDED = 1;
+ /**
+ * Generated from protobuf enum <code>REMOVED = 2;</code>
+ */
+ const REMOVED = 2;
+
+ private static $valueToName = [
+ self::UNUSED_UNKNOWN => 'UNUSED_UNKNOWN',
+ self::ADDED => 'ADDED',
+ self::REMOVED => 'REMOVED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ExceptionType::class, \Gtfs\CalendarDate_ExceptionType::class);
+
diff --git a/inc/Gtfs/CalendarDate_ExceptionType.php b/inc/Gtfs/CalendarDate_ExceptionType.php
new file mode 100644
index 0000000..46dcd0c
--- /dev/null
+++ b/inc/Gtfs/CalendarDate_ExceptionType.php
@@ -0,0 +1,16 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+if (false) {
+ /**
+ * This class is deprecated. Use Gtfs\CalendarDate\ExceptionType instead.
+ * @deprecated
+ */
+ class CalendarDate_ExceptionType {}
+}
+class_exists(CalendarDate\ExceptionType::class);
+@trigger_error('Gtfs\CalendarDate_ExceptionType is deprecated and will be removed in the next major release. Use Gtfs\CalendarDate\ExceptionType instead', E_USER_DEPRECATED);
+
diff --git a/inc/Gtfs/Calendar_CalendarDay.php b/inc/Gtfs/Calendar_CalendarDay.php
new file mode 100644
index 0000000..00964cc
--- /dev/null
+++ b/inc/Gtfs/Calendar_CalendarDay.php
@@ -0,0 +1,16 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+if (false) {
+ /**
+ * This class is deprecated. Use Gtfs\Calendar\CalendarDay instead.
+ * @deprecated
+ */
+ class Calendar_CalendarDay {}
+}
+class_exists(Calendar\CalendarDay::class);
+@trigger_error('Gtfs\Calendar_CalendarDay is deprecated and will be removed in the next major release. Use Gtfs\Calendar\CalendarDay instead', E_USER_DEPRECATED);
+
diff --git a/inc/Gtfs/FareAttribute.php b/inc/Gtfs/FareAttribute.php
new file mode 100644
index 0000000..81e62ec
--- /dev/null
+++ b/inc/Gtfs/FareAttribute.php
@@ -0,0 +1,235 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+use Google\Protobuf\Internal\GPBType;
+use Google\Protobuf\Internal\RepeatedField;
+use Google\Protobuf\Internal\GPBUtil;
+
+/**
+ * Generated from protobuf message <code>gtfs.FareAttribute</code>
+ */
+class FareAttribute extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Generated from protobuf field <code>string fare_id = 1;</code>
+ */
+ protected $fare_id = '';
+ /**
+ * Generated from protobuf field <code>float price = 2;</code>
+ */
+ protected $price = 0.0;
+ /**
+ * Generated from protobuf field <code>string currency_type = 3;</code>
+ */
+ protected $currency_type = '';
+ /**
+ * Generated from protobuf field <code>.gtfs.FareAttribute.PaymentMethod payment_method = 4;</code>
+ */
+ protected $payment_method = 0;
+ /**
+ * Generated from protobuf field <code>.gtfs.FareAttribute.Transfers transfers = 5;</code>
+ */
+ protected $transfers = 0;
+ /**
+ * Generated from protobuf field <code>int32 transfer_duration = 6;</code>
+ */
+ protected $transfer_duration = 0;
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ */
+ protected $extension = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $fare_id
+ * @type float $price
+ * @type string $currency_type
+ * @type int $payment_method
+ * @type int $transfers
+ * @type int $transfer_duration
+ * @type \Google\Protobuf\Any $extension
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Proto\Gtfs::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Generated from protobuf field <code>string fare_id = 1;</code>
+ * @return string
+ */
+ public function getFareId()
+ {
+ return $this->fare_id;
+ }
+
+ /**
+ * Generated from protobuf field <code>string fare_id = 1;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setFareId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->fare_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>float price = 2;</code>
+ * @return float
+ */
+ public function getPrice()
+ {
+ return $this->price;
+ }
+
+ /**
+ * Generated from protobuf field <code>float price = 2;</code>
+ * @param float $var
+ * @return $this
+ */
+ public function setPrice($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->price = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string currency_type = 3;</code>
+ * @return string
+ */
+ public function getCurrencyType()
+ {
+ return $this->currency_type;
+ }
+
+ /**
+ * Generated from protobuf field <code>string currency_type = 3;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setCurrencyType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->currency_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.FareAttribute.PaymentMethod payment_method = 4;</code>
+ * @return int
+ */
+ public function getPaymentMethod()
+ {
+ return $this->payment_method;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.FareAttribute.PaymentMethod payment_method = 4;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setPaymentMethod($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\FareAttribute_PaymentMethod::class);
+ $this->payment_method = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.FareAttribute.Transfers transfers = 5;</code>
+ * @return int
+ */
+ public function getTransfers()
+ {
+ return $this->transfers;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.FareAttribute.Transfers transfers = 5;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setTransfers($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\FareAttribute_Transfers::class);
+ $this->transfers = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>int32 transfer_duration = 6;</code>
+ * @return int
+ */
+ public function getTransferDuration()
+ {
+ return $this->transfer_duration;
+ }
+
+ /**
+ * Generated from protobuf field <code>int32 transfer_duration = 6;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setTransferDuration($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->transfer_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @return \Google\Protobuf\Any
+ */
+ public function getExtension()
+ {
+ return $this->extension;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @param \Google\Protobuf\Any $var
+ * @return $this
+ */
+ public function setExtension($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Any::class);
+ $this->extension = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/inc/Gtfs/FareAttribute/PaymentMethod.php b/inc/Gtfs/FareAttribute/PaymentMethod.php
new file mode 100644
index 0000000..12d828f
--- /dev/null
+++ b/inc/Gtfs/FareAttribute/PaymentMethod.php
@@ -0,0 +1,51 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs\FareAttribute;
+
+use UnexpectedValueException;
+
+/**
+ * Protobuf type <code>gtfs.FareAttribute.PaymentMethod</code>
+ */
+class PaymentMethod
+{
+ /**
+ * Generated from protobuf enum <code>ONBOARD = 0;</code>
+ */
+ const ONBOARD = 0;
+ /**
+ * Generated from protobuf enum <code>PREBOARDING = 1;</code>
+ */
+ const PREBOARDING = 1;
+
+ private static $valueToName = [
+ self::ONBOARD => 'ONBOARD',
+ self::PREBOARDING => 'PREBOARDING',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PaymentMethod::class, \Gtfs\FareAttribute_PaymentMethod::class);
+
diff --git a/inc/Gtfs/FareAttribute/Transfers.php b/inc/Gtfs/FareAttribute/Transfers.php
new file mode 100644
index 0000000..66d3f0e
--- /dev/null
+++ b/inc/Gtfs/FareAttribute/Transfers.php
@@ -0,0 +1,61 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs\FareAttribute;
+
+use UnexpectedValueException;
+
+/**
+ * Protobuf type <code>gtfs.FareAttribute.Transfers</code>
+ */
+class Transfers
+{
+ /**
+ * Generated from protobuf enum <code>NO = 0;</code>
+ */
+ const NO = 0;
+ /**
+ * Generated from protobuf enum <code>ONCE = 1;</code>
+ */
+ const ONCE = 1;
+ /**
+ * Generated from protobuf enum <code>TWICE = 2;</code>
+ */
+ const TWICE = 2;
+ /**
+ * Generated from protobuf enum <code>UNLIMITED = 3;</code>
+ */
+ const UNLIMITED = 3;
+
+ private static $valueToName = [
+ self::NO => 'NO',
+ self::ONCE => 'ONCE',
+ self::TWICE => 'TWICE',
+ self::UNLIMITED => 'UNLIMITED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Transfers::class, \Gtfs\FareAttribute_Transfers::class);
+
diff --git a/inc/Gtfs/FareAttribute_PaymentMethod.php b/inc/Gtfs/FareAttribute_PaymentMethod.php
new file mode 100644
index 0000000..216c76b
--- /dev/null
+++ b/inc/Gtfs/FareAttribute_PaymentMethod.php
@@ -0,0 +1,16 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+if (false) {
+ /**
+ * This class is deprecated. Use Gtfs\FareAttribute\PaymentMethod instead.
+ * @deprecated
+ */
+ class FareAttribute_PaymentMethod {}
+}
+class_exists(FareAttribute\PaymentMethod::class);
+@trigger_error('Gtfs\FareAttribute_PaymentMethod is deprecated and will be removed in the next major release. Use Gtfs\FareAttribute\PaymentMethod instead', E_USER_DEPRECATED);
+
diff --git a/inc/Gtfs/FareAttribute_Transfers.php b/inc/Gtfs/FareAttribute_Transfers.php
new file mode 100644
index 0000000..8dffd82
--- /dev/null
+++ b/inc/Gtfs/FareAttribute_Transfers.php
@@ -0,0 +1,16 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+if (false) {
+ /**
+ * This class is deprecated. Use Gtfs\FareAttribute\Transfers instead.
+ * @deprecated
+ */
+ class FareAttribute_Transfers {}
+}
+class_exists(FareAttribute\Transfers::class);
+@trigger_error('Gtfs\FareAttribute_Transfers is deprecated and will be removed in the next major release. Use Gtfs\FareAttribute\Transfers instead', E_USER_DEPRECATED);
+
diff --git a/inc/Gtfs/FareRule.php b/inc/Gtfs/FareRule.php
new file mode 100644
index 0000000..bc5f0ac
--- /dev/null
+++ b/inc/Gtfs/FareRule.php
@@ -0,0 +1,208 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+use Google\Protobuf\Internal\GPBType;
+use Google\Protobuf\Internal\RepeatedField;
+use Google\Protobuf\Internal\GPBUtil;
+
+/**
+ * Generated from protobuf message <code>gtfs.FareRule</code>
+ */
+class FareRule extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Generated from protobuf field <code>string fare_id = 1;</code>
+ */
+ protected $fare_id = '';
+ /**
+ * Generated from protobuf field <code>string route_id = 2;</code>
+ */
+ protected $route_id = '';
+ /**
+ * Generated from protobuf field <code>string origin_id = 3;</code>
+ */
+ protected $origin_id = '';
+ /**
+ * Generated from protobuf field <code>string destination_id = 4;</code>
+ */
+ protected $destination_id = '';
+ /**
+ * Generated from protobuf field <code>string contains_id = 5;</code>
+ */
+ protected $contains_id = '';
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ */
+ protected $extension = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $fare_id
+ * @type string $route_id
+ * @type string $origin_id
+ * @type string $destination_id
+ * @type string $contains_id
+ * @type \Google\Protobuf\Any $extension
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Proto\Gtfs::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Generated from protobuf field <code>string fare_id = 1;</code>
+ * @return string
+ */
+ public function getFareId()
+ {
+ return $this->fare_id;
+ }
+
+ /**
+ * Generated from protobuf field <code>string fare_id = 1;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setFareId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->fare_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string route_id = 2;</code>
+ * @return string
+ */
+ public function getRouteId()
+ {
+ return $this->route_id;
+ }
+
+ /**
+ * Generated from protobuf field <code>string route_id = 2;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setRouteId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->route_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string origin_id = 3;</code>
+ * @return string
+ */
+ public function getOriginId()
+ {
+ return $this->origin_id;
+ }
+
+ /**
+ * Generated from protobuf field <code>string origin_id = 3;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setOriginId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->origin_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string destination_id = 4;</code>
+ * @return string
+ */
+ public function getDestinationId()
+ {
+ return $this->destination_id;
+ }
+
+ /**
+ * Generated from protobuf field <code>string destination_id = 4;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setDestinationId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->destination_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string contains_id = 5;</code>
+ * @return string
+ */
+ public function getContainsId()
+ {
+ return $this->contains_id;
+ }
+
+ /**
+ * Generated from protobuf field <code>string contains_id = 5;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setContainsId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->contains_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @return \Google\Protobuf\Any
+ */
+ public function getExtension()
+ {
+ return $this->extension;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @param \Google\Protobuf\Any $var
+ * @return $this
+ */
+ public function setExtension($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Any::class);
+ $this->extension = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/inc/Gtfs/FeedEntity.php b/inc/Gtfs/FeedEntity.php
new file mode 100644
index 0000000..b77caca
--- /dev/null
+++ b/inc/Gtfs/FeedEntity.php
@@ -0,0 +1,445 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+use Google\Protobuf\Internal\GPBType;
+use Google\Protobuf\Internal\RepeatedField;
+use Google\Protobuf\Internal\GPBUtil;
+
+/**
+ * A definition (or update) of an entity in the transit feed.
+ *
+ * Generated from protobuf message <code>gtfs.FeedEntity</code>
+ */
+class FeedEntity extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The ids are used only to provide incrementality support. The id should be
+ * unique within a FeedMessage. Consequent FeedMessages may contain
+ * FeedEntities with the same id. In case of a DIFFERENTIAL update the new
+ * FeedEntity with some id will replace the old FeedEntity with the same id
+ * (or delete it - see is_deleted below).
+ * The actual GTFS entities (e.g. stations, routes, trips) referenced by the
+ * feed must be specified by explicit selectors (see EntitySelector below for
+ * more info).
+ *
+ * Generated from protobuf field <code>string id = 1;</code>
+ */
+ protected $id = '';
+ /**
+ * Whether this entity is to be deleted. Relevant only for incremental
+ * fetches.
+ *
+ * Generated from protobuf field <code>bool is_deleted = 2;</code>
+ */
+ protected $is_deleted = false;
+ /**
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ */
+ protected $extension = null;
+ protected $element;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $id
+ * The ids are used only to provide incrementality support. The id should be
+ * unique within a FeedMessage. Consequent FeedMessages may contain
+ * FeedEntities with the same id. In case of a DIFFERENTIAL update the new
+ * FeedEntity with some id will replace the old FeedEntity with the same id
+ * (or delete it - see is_deleted below).
+ * The actual GTFS entities (e.g. stations, routes, trips) referenced by the
+ * feed must be specified by explicit selectors (see EntitySelector below for
+ * more info).
+ * @type bool $is_deleted
+ * Whether this entity is to be deleted. Relevant only for incremental
+ * fetches.
+ * @type \Gtfs\Agency $agency
+ * @type \Gtfs\Stop $stop
+ * @type \Gtfs\Route $route
+ * @type \Gtfs\Trip $trip
+ * @type \Gtfs\StopTime $stop_time
+ * @type \Gtfs\Calendar $calendar
+ * @type \Gtfs\CalendarDate $calendar_date
+ * @type \Gtfs\FareAttribute $fare_attribute
+ * @type \Gtfs\FareRule $fare_rule
+ * @type \Gtfs\Shape $shape
+ * @type \Gtfs\Frequency $frequency
+ * @type \Gtfs\Transfer $transfer
+ * @type \Google\Protobuf\Any $extension
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Proto\Gtfs::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The ids are used only to provide incrementality support. The id should be
+ * unique within a FeedMessage. Consequent FeedMessages may contain
+ * FeedEntities with the same id. In case of a DIFFERENTIAL update the new
+ * FeedEntity with some id will replace the old FeedEntity with the same id
+ * (or delete it - see is_deleted below).
+ * The actual GTFS entities (e.g. stations, routes, trips) referenced by the
+ * feed must be specified by explicit selectors (see EntitySelector below for
+ * more info).
+ *
+ * Generated from protobuf field <code>string id = 1;</code>
+ * @return string
+ */
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * The ids are used only to provide incrementality support. The id should be
+ * unique within a FeedMessage. Consequent FeedMessages may contain
+ * FeedEntities with the same id. In case of a DIFFERENTIAL update the new
+ * FeedEntity with some id will replace the old FeedEntity with the same id
+ * (or delete it - see is_deleted below).
+ * The actual GTFS entities (e.g. stations, routes, trips) referenced by the
+ * feed must be specified by explicit selectors (see EntitySelector below for
+ * more info).
+ *
+ * Generated from protobuf field <code>string id = 1;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether this entity is to be deleted. Relevant only for incremental
+ * fetches.
+ *
+ * Generated from protobuf field <code>bool is_deleted = 2;</code>
+ * @return bool
+ */
+ public function getIsDeleted()
+ {
+ return $this->is_deleted;
+ }
+
+ /**
+ * Whether this entity is to be deleted. Relevant only for incremental
+ * fetches.
+ *
+ * Generated from protobuf field <code>bool is_deleted = 2;</code>
+ * @param bool $var
+ * @return $this
+ */
+ public function setIsDeleted($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->is_deleted = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Agency agency = 3;</code>
+ * @return \Gtfs\Agency
+ */
+ public function getAgency()
+ {
+ return $this->readOneof(3);
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Agency agency = 3;</code>
+ * @param \Gtfs\Agency $var
+ * @return $this
+ */
+ public function setAgency($var)
+ {
+ GPBUtil::checkMessage($var, \Gtfs\Agency::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Stop stop = 4;</code>
+ * @return \Gtfs\Stop
+ */
+ public function getStop()
+ {
+ return $this->readOneof(4);
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Stop stop = 4;</code>
+ * @param \Gtfs\Stop $var
+ * @return $this
+ */
+ public function setStop($var)
+ {
+ GPBUtil::checkMessage($var, \Gtfs\Stop::class);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Route route = 5;</code>
+ * @return \Gtfs\Route
+ */
+ public function getRoute()
+ {
+ return $this->readOneof(5);
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Route route = 5;</code>
+ * @param \Gtfs\Route $var
+ * @return $this
+ */
+ public function setRoute($var)
+ {
+ GPBUtil::checkMessage($var, \Gtfs\Route::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Trip trip = 6;</code>
+ * @return \Gtfs\Trip
+ */
+ public function getTrip()
+ {
+ return $this->readOneof(6);
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Trip trip = 6;</code>
+ * @param \Gtfs\Trip $var
+ * @return $this
+ */
+ public function setTrip($var)
+ {
+ GPBUtil::checkMessage($var, \Gtfs\Trip::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.StopTime stop_time = 7;</code>
+ * @return \Gtfs\StopTime
+ */
+ public function getStopTime()
+ {
+ return $this->readOneof(7);
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.StopTime stop_time = 7;</code>
+ * @param \Gtfs\StopTime $var
+ * @return $this
+ */
+ public function setStopTime($var)
+ {
+ GPBUtil::checkMessage($var, \Gtfs\StopTime::class);
+ $this->writeOneof(7, $var);
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar calendar = 8;</code>
+ * @return \Gtfs\Calendar
+ */
+ public function getCalendar()
+ {
+ return $this->readOneof(8);
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Calendar calendar = 8;</code>
+ * @param \Gtfs\Calendar $var
+ * @return $this
+ */
+ public function setCalendar($var)
+ {
+ GPBUtil::checkMessage($var, \Gtfs\Calendar::class);
+ $this->writeOneof(8, $var);
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.CalendarDate calendar_date = 9;</code>
+ * @return \Gtfs\CalendarDate
+ */
+ public function getCalendarDate()
+ {
+ return $this->readOneof(9);
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.CalendarDate calendar_date = 9;</code>
+ * @param \Gtfs\CalendarDate $var
+ * @return $this
+ */
+ public function setCalendarDate($var)
+ {
+ GPBUtil::checkMessage($var, \Gtfs\CalendarDate::class);
+ $this->writeOneof(9, $var);
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.FareAttribute fare_attribute = 10;</code>
+ * @return \Gtfs\FareAttribute
+ */
+ public function getFareAttribute()
+ {
+ return $this->readOneof(10);
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.FareAttribute fare_attribute = 10;</code>
+ * @param \Gtfs\FareAttribute $var
+ * @return $this
+ */
+ public function setFareAttribute($var)
+ {
+ GPBUtil::checkMessage($var, \Gtfs\FareAttribute::class);
+ $this->writeOneof(10, $var);
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.FareRule fare_rule = 11;</code>
+ * @return \Gtfs\FareRule
+ */
+ public function getFareRule()
+ {
+ return $this->readOneof(11);
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.FareRule fare_rule = 11;</code>
+ * @param \Gtfs\FareRule $var
+ * @return $this
+ */
+ public function setFareRule($var)
+ {
+ GPBUtil::checkMessage($var, \Gtfs\FareRule::class);
+ $this->writeOneof(11, $var);
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Shape shape = 12;</code>
+ * @return \Gtfs\Shape
+ */
+ public function getShape()
+ {
+ return $this->readOneof(12);
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Shape shape = 12;</code>
+ * @param \Gtfs\Shape $var
+ * @return $this
+ */
+ public function setShape($var)
+ {
+ GPBUtil::checkMessage($var, \Gtfs\Shape::class);
+ $this->writeOneof(12, $var);
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Frequency frequency = 13;</code>
+ * @return \Gtfs\Frequency
+ */
+ public function getFrequency()
+ {
+ return $this->readOneof(13);
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Frequency frequency = 13;</code>
+ * @param \Gtfs\Frequency $var
+ * @return $this
+ */
+ public function setFrequency($var)
+ {
+ GPBUtil::checkMessage($var, \Gtfs\Frequency::class);
+ $this->writeOneof(13, $var);
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Transfer transfer = 14;</code>
+ * @return \Gtfs\Transfer
+ */
+ public function getTransfer()
+ {
+ return $this->readOneof(14);
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Transfer transfer = 14;</code>
+ * @param \Gtfs\Transfer $var
+ * @return $this
+ */
+ public function setTransfer($var)
+ {
+ GPBUtil::checkMessage($var, \Gtfs\Transfer::class);
+ $this->writeOneof(14, $var);
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @return \Google\Protobuf\Any
+ */
+ public function getExtension()
+ {
+ return $this->extension;
+ }
+
+ /**
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @param \Google\Protobuf\Any $var
+ * @return $this
+ */
+ public function setExtension($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Any::class);
+ $this->extension = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getElement()
+ {
+ return $this->whichOneof("element");
+ }
+
+}
+
diff --git a/inc/Gtfs/FeedHeader.php b/inc/Gtfs/FeedHeader.php
new file mode 100644
index 0000000..88ae19e
--- /dev/null
+++ b/inc/Gtfs/FeedHeader.php
@@ -0,0 +1,314 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+use Google\Protobuf\Internal\GPBType;
+use Google\Protobuf\Internal\RepeatedField;
+use Google\Protobuf\Internal\GPBUtil;
+
+/**
+ * Metadata about a feed, included in feed messages.
+ *
+ * Generated from protobuf message <code>gtfs.FeedHeader</code>
+ */
+class FeedHeader extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Version of the feed specification.
+ * The current version is 1.0.
+ *
+ * Generated from protobuf field <code>string gtfs_version = 1;</code>
+ */
+ protected $gtfs_version = '';
+ /**
+ * The feed_publisher_name field contains the full name of the organization that publishes the feed.
+ *
+ * Generated from protobuf field <code>string feed_publisher_name = 2;</code>
+ */
+ protected $feed_publisher_name = '';
+ /**
+ * The feed_publisher_url field contains the URL of the feed publishing organization's website.
+ *
+ * Generated from protobuf field <code>string feed_publisher_url = 3;</code>
+ */
+ protected $feed_publisher_url = '';
+ /**
+ * The feed_lang field contains a IETF BCP 47 language code specifying the default language used for the text in this feed.
+ *
+ * Generated from protobuf field <code>string feed_lang = 4;</code>
+ */
+ protected $feed_lang = '';
+ /**
+ * The feed provides complete and reliable schedule information for service in the period from the beginning of the
+ * feed_start_date day to the end of the feed_end_date day in YYYYMMDD
+ *
+ * Generated from protobuf field <code>string feed_start_date = 5;</code>
+ */
+ protected $feed_start_date = '';
+ /**
+ * Generated from protobuf field <code>string feed_end_date = 6;</code>
+ */
+ protected $feed_end_date = '';
+ /**
+ * The feed publisher can specify a string here that indicates the current version of their GTFS feed.
+ *
+ * Generated from protobuf field <code>string feed_version = 7;</code>
+ */
+ protected $feed_version = '';
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ */
+ protected $extension = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $gtfs_version
+ * Version of the feed specification.
+ * The current version is 1.0.
+ * @type string $feed_publisher_name
+ * The feed_publisher_name field contains the full name of the organization that publishes the feed.
+ * @type string $feed_publisher_url
+ * The feed_publisher_url field contains the URL of the feed publishing organization's website.
+ * @type string $feed_lang
+ * The feed_lang field contains a IETF BCP 47 language code specifying the default language used for the text in this feed.
+ * @type string $feed_start_date
+ * The feed provides complete and reliable schedule information for service in the period from the beginning of the
+ * feed_start_date day to the end of the feed_end_date day in YYYYMMDD
+ * @type string $feed_end_date
+ * @type string $feed_version
+ * The feed publisher can specify a string here that indicates the current version of their GTFS feed.
+ * @type \Google\Protobuf\Any $extension
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Proto\Gtfs::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Version of the feed specification.
+ * The current version is 1.0.
+ *
+ * Generated from protobuf field <code>string gtfs_version = 1;</code>
+ * @return string
+ */
+ public function getGtfsVersion()
+ {
+ return $this->gtfs_version;
+ }
+
+ /**
+ * Version of the feed specification.
+ * The current version is 1.0.
+ *
+ * Generated from protobuf field <code>string gtfs_version = 1;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setGtfsVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->gtfs_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * The feed_publisher_name field contains the full name of the organization that publishes the feed.
+ *
+ * Generated from protobuf field <code>string feed_publisher_name = 2;</code>
+ * @return string
+ */
+ public function getFeedPublisherName()
+ {
+ return $this->feed_publisher_name;
+ }
+
+ /**
+ * The feed_publisher_name field contains the full name of the organization that publishes the feed.
+ *
+ * Generated from protobuf field <code>string feed_publisher_name = 2;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setFeedPublisherName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->feed_publisher_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The feed_publisher_url field contains the URL of the feed publishing organization's website.
+ *
+ * Generated from protobuf field <code>string feed_publisher_url = 3;</code>
+ * @return string
+ */
+ public function getFeedPublisherUrl()
+ {
+ return $this->feed_publisher_url;
+ }
+
+ /**
+ * The feed_publisher_url field contains the URL of the feed publishing organization's website.
+ *
+ * Generated from protobuf field <code>string feed_publisher_url = 3;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setFeedPublisherUrl($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->feed_publisher_url = $var;
+
+ return $this;
+ }
+
+ /**
+ * The feed_lang field contains a IETF BCP 47 language code specifying the default language used for the text in this feed.
+ *
+ * Generated from protobuf field <code>string feed_lang = 4;</code>
+ * @return string
+ */
+ public function getFeedLang()
+ {
+ return $this->feed_lang;
+ }
+
+ /**
+ * The feed_lang field contains a IETF BCP 47 language code specifying the default language used for the text in this feed.
+ *
+ * Generated from protobuf field <code>string feed_lang = 4;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setFeedLang($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->feed_lang = $var;
+
+ return $this;
+ }
+
+ /**
+ * The feed provides complete and reliable schedule information for service in the period from the beginning of the
+ * feed_start_date day to the end of the feed_end_date day in YYYYMMDD
+ *
+ * Generated from protobuf field <code>string feed_start_date = 5;</code>
+ * @return string
+ */
+ public function getFeedStartDate()
+ {
+ return $this->feed_start_date;
+ }
+
+ /**
+ * The feed provides complete and reliable schedule information for service in the period from the beginning of the
+ * feed_start_date day to the end of the feed_end_date day in YYYYMMDD
+ *
+ * Generated from protobuf field <code>string feed_start_date = 5;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setFeedStartDate($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->feed_start_date = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string feed_end_date = 6;</code>
+ * @return string
+ */
+ public function getFeedEndDate()
+ {
+ return $this->feed_end_date;
+ }
+
+ /**
+ * Generated from protobuf field <code>string feed_end_date = 6;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setFeedEndDate($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->feed_end_date = $var;
+
+ return $this;
+ }
+
+ /**
+ * The feed publisher can specify a string here that indicates the current version of their GTFS feed.
+ *
+ * Generated from protobuf field <code>string feed_version = 7;</code>
+ * @return string
+ */
+ public function getFeedVersion()
+ {
+ return $this->feed_version;
+ }
+
+ /**
+ * The feed publisher can specify a string here that indicates the current version of their GTFS feed.
+ *
+ * Generated from protobuf field <code>string feed_version = 7;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setFeedVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->feed_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @return \Google\Protobuf\Any
+ */
+ public function getExtension()
+ {
+ return $this->extension;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @param \Google\Protobuf\Any $var
+ * @return $this
+ */
+ public function setExtension($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Any::class);
+ $this->extension = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/inc/Gtfs/FeedMessage.php b/inc/Gtfs/FeedMessage.php
new file mode 100644
index 0000000..26ace5f
--- /dev/null
+++ b/inc/Gtfs/FeedMessage.php
@@ -0,0 +1,99 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+use Google\Protobuf\Internal\GPBType;
+use Google\Protobuf\Internal\RepeatedField;
+use Google\Protobuf\Internal\GPBUtil;
+
+/**
+ * Generated from protobuf message <code>gtfs.FeedMessage</code>
+ */
+class FeedMessage extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Metadata about this feed and feed message.
+ *
+ * Generated from protobuf field <code>.gtfs.FeedHeader header = 1;</code>
+ */
+ protected $header = null;
+ /**
+ * Contents of the feed.
+ *
+ * Generated from protobuf field <code>repeated .gtfs.FeedEntity entity = 2;</code>
+ */
+ private $entity;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Gtfs\FeedHeader $header
+ * Metadata about this feed and feed message.
+ * @type \Gtfs\FeedEntity[]|\Google\Protobuf\Internal\RepeatedField $entity
+ * Contents of the feed.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Proto\Gtfs::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Metadata about this feed and feed message.
+ *
+ * Generated from protobuf field <code>.gtfs.FeedHeader header = 1;</code>
+ * @return \Gtfs\FeedHeader
+ */
+ public function getHeader()
+ {
+ return $this->header;
+ }
+
+ /**
+ * Metadata about this feed and feed message.
+ *
+ * Generated from protobuf field <code>.gtfs.FeedHeader header = 1;</code>
+ * @param \Gtfs\FeedHeader $var
+ * @return $this
+ */
+ public function setHeader($var)
+ {
+ GPBUtil::checkMessage($var, \Gtfs\FeedHeader::class);
+ $this->header = $var;
+
+ return $this;
+ }
+
+ /**
+ * Contents of the feed.
+ *
+ * Generated from protobuf field <code>repeated .gtfs.FeedEntity entity = 2;</code>
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEntity()
+ {
+ return $this->entity;
+ }
+
+ /**
+ * Contents of the feed.
+ *
+ * Generated from protobuf field <code>repeated .gtfs.FeedEntity entity = 2;</code>
+ * @param \Gtfs\FeedEntity[]|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEntity($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Gtfs\FeedEntity::class);
+ $this->entity = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/inc/Gtfs/Frequency.php b/inc/Gtfs/Frequency.php
new file mode 100644
index 0000000..6d53d50
--- /dev/null
+++ b/inc/Gtfs/Frequency.php
@@ -0,0 +1,208 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+use Google\Protobuf\Internal\GPBType;
+use Google\Protobuf\Internal\RepeatedField;
+use Google\Protobuf\Internal\GPBUtil;
+
+/**
+ * Generated from protobuf message <code>gtfs.Frequency</code>
+ */
+class Frequency extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Generated from protobuf field <code>string trip_id = 1;</code>
+ */
+ protected $trip_id = '';
+ /**
+ * Generated from protobuf field <code>string start_time = 2;</code>
+ */
+ protected $start_time = '';
+ /**
+ * Generated from protobuf field <code>string end_time = 3;</code>
+ */
+ protected $end_time = '';
+ /**
+ * Generated from protobuf field <code>int32 headway_secs = 4;</code>
+ */
+ protected $headway_secs = 0;
+ /**
+ * Generated from protobuf field <code>.gtfs.Frequency.ScheduleType exact_times = 5;</code>
+ */
+ protected $exact_times = 0;
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ */
+ protected $extension = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $trip_id
+ * @type string $start_time
+ * @type string $end_time
+ * @type int $headway_secs
+ * @type int $exact_times
+ * @type \Google\Protobuf\Any $extension
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Proto\Gtfs::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Generated from protobuf field <code>string trip_id = 1;</code>
+ * @return string
+ */
+ public function getTripId()
+ {
+ return $this->trip_id;
+ }
+
+ /**
+ * Generated from protobuf field <code>string trip_id = 1;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setTripId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->trip_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string start_time = 2;</code>
+ * @return string
+ */
+ public function getStartTime()
+ {
+ return $this->start_time;
+ }
+
+ /**
+ * Generated from protobuf field <code>string start_time = 2;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setStartTime($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string end_time = 3;</code>
+ * @return string
+ */
+ public function getEndTime()
+ {
+ return $this->end_time;
+ }
+
+ /**
+ * Generated from protobuf field <code>string end_time = 3;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setEndTime($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>int32 headway_secs = 4;</code>
+ * @return int
+ */
+ public function getHeadwaySecs()
+ {
+ return $this->headway_secs;
+ }
+
+ /**
+ * Generated from protobuf field <code>int32 headway_secs = 4;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setHeadwaySecs($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->headway_secs = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Frequency.ScheduleType exact_times = 5;</code>
+ * @return int
+ */
+ public function getExactTimes()
+ {
+ return $this->exact_times;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Frequency.ScheduleType exact_times = 5;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setExactTimes($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\Frequency_ScheduleType::class);
+ $this->exact_times = $var;
+
+ return $this;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @return \Google\Protobuf\Any
+ */
+ public function getExtension()
+ {
+ return $this->extension;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @param \Google\Protobuf\Any $var
+ * @return $this
+ */
+ public function setExtension($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Any::class);
+ $this->extension = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/inc/Gtfs/Frequency/ScheduleType.php b/inc/Gtfs/Frequency/ScheduleType.php
new file mode 100644
index 0000000..2fa70da
--- /dev/null
+++ b/inc/Gtfs/Frequency/ScheduleType.php
@@ -0,0 +1,51 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs\Frequency;
+
+use UnexpectedValueException;
+
+/**
+ * Protobuf type <code>gtfs.Frequency.ScheduleType</code>
+ */
+class ScheduleType
+{
+ /**
+ * Generated from protobuf enum <code>NOT_EXACTLY = 0;</code>
+ */
+ const NOT_EXACTLY = 0;
+ /**
+ * Generated from protobuf enum <code>EXACTLY = 1;</code>
+ */
+ const EXACTLY = 1;
+
+ private static $valueToName = [
+ self::NOT_EXACTLY => 'NOT_EXACTLY',
+ self::EXACTLY => 'EXACTLY',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ScheduleType::class, \Gtfs\Frequency_ScheduleType::class);
+
diff --git a/inc/Gtfs/Frequency_ScheduleType.php b/inc/Gtfs/Frequency_ScheduleType.php
new file mode 100644
index 0000000..679bb8c
--- /dev/null
+++ b/inc/Gtfs/Frequency_ScheduleType.php
@@ -0,0 +1,16 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+if (false) {
+ /**
+ * This class is deprecated. Use Gtfs\Frequency\ScheduleType instead.
+ * @deprecated
+ */
+ class Frequency_ScheduleType {}
+}
+class_exists(Frequency\ScheduleType::class);
+@trigger_error('Gtfs\Frequency_ScheduleType is deprecated and will be removed in the next major release. Use Gtfs\Frequency\ScheduleType instead', E_USER_DEPRECATED);
+
diff --git a/inc/Gtfs/Route.php b/inc/Gtfs/Route.php
new file mode 100644
index 0000000..091ae1e
--- /dev/null
+++ b/inc/Gtfs/Route.php
@@ -0,0 +1,380 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+use Google\Protobuf\Internal\GPBType;
+use Google\Protobuf\Internal\RepeatedField;
+use Google\Protobuf\Internal\GPBUtil;
+
+/**
+ * Generated from protobuf message <code>gtfs.Route</code>
+ */
+class Route extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The route_id field contains an ID that uniquely identifies a route.
+ * The route_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string route_id = 1;</code>
+ */
+ protected $route_id = '';
+ /**
+ * The agency_id field defines an agency for the specified route.
+ *
+ * Generated from protobuf field <code>string agency_id = 2;</code>
+ */
+ protected $agency_id = '';
+ /**
+ * The route_short_name contains the short name of a route.
+ *
+ * Generated from protobuf field <code>string route_short_name = 3;</code>
+ */
+ protected $route_short_name = '';
+ /**
+ * The route_long_name contains the full name of a route.
+ *
+ * Generated from protobuf field <code>string route_long_name = 4;</code>
+ */
+ protected $route_long_name = '';
+ /**
+ * The route_desc field contains a description of a route.
+ *
+ * Generated from protobuf field <code>string route_desc = 5;</code>
+ */
+ protected $route_desc = '';
+ /**
+ * Generated from protobuf field <code>.gtfs.Route.RouteType route_type = 6;</code>
+ */
+ protected $route_type = 0;
+ /**
+ * The route_url field contains the URL of a web page about that particular route.
+ *
+ * Generated from protobuf field <code>string route_url = 7;</code>
+ */
+ protected $route_url = '';
+ /**
+ * In systems that have colors assigned to routes, the route_color field defines a color that corresponds to a route.
+ * The color must be provided as a six-character hexadecimal number, for example, 00FFFF.
+ *
+ * Generated from protobuf field <code>string route_color = 8;</code>
+ */
+ protected $route_color = '';
+ /**
+ * The route_text_color field can be used to specify a legible color to use for text drawn against a background of route_color.
+ *
+ * Generated from protobuf field <code>string route_text_color = 9;</code>
+ */
+ protected $route_text_color = '';
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ */
+ protected $extension = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $route_id
+ * The route_id field contains an ID that uniquely identifies a route.
+ * The route_id is dataset unique.
+ * @type string $agency_id
+ * The agency_id field defines an agency for the specified route.
+ * @type string $route_short_name
+ * The route_short_name contains the short name of a route.
+ * @type string $route_long_name
+ * The route_long_name contains the full name of a route.
+ * @type string $route_desc
+ * The route_desc field contains a description of a route.
+ * @type int $route_type
+ * @type string $route_url
+ * The route_url field contains the URL of a web page about that particular route.
+ * @type string $route_color
+ * In systems that have colors assigned to routes, the route_color field defines a color that corresponds to a route.
+ * The color must be provided as a six-character hexadecimal number, for example, 00FFFF.
+ * @type string $route_text_color
+ * The route_text_color field can be used to specify a legible color to use for text drawn against a background of route_color.
+ * @type \Google\Protobuf\Any $extension
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Proto\Gtfs::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The route_id field contains an ID that uniquely identifies a route.
+ * The route_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string route_id = 1;</code>
+ * @return string
+ */
+ public function getRouteId()
+ {
+ return $this->route_id;
+ }
+
+ /**
+ * The route_id field contains an ID that uniquely identifies a route.
+ * The route_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string route_id = 1;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setRouteId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->route_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The agency_id field defines an agency for the specified route.
+ *
+ * Generated from protobuf field <code>string agency_id = 2;</code>
+ * @return string
+ */
+ public function getAgencyId()
+ {
+ return $this->agency_id;
+ }
+
+ /**
+ * The agency_id field defines an agency for the specified route.
+ *
+ * Generated from protobuf field <code>string agency_id = 2;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setAgencyId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->agency_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The route_short_name contains the short name of a route.
+ *
+ * Generated from protobuf field <code>string route_short_name = 3;</code>
+ * @return string
+ */
+ public function getRouteShortName()
+ {
+ return $this->route_short_name;
+ }
+
+ /**
+ * The route_short_name contains the short name of a route.
+ *
+ * Generated from protobuf field <code>string route_short_name = 3;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setRouteShortName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->route_short_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The route_long_name contains the full name of a route.
+ *
+ * Generated from protobuf field <code>string route_long_name = 4;</code>
+ * @return string
+ */
+ public function getRouteLongName()
+ {
+ return $this->route_long_name;
+ }
+
+ /**
+ * The route_long_name contains the full name of a route.
+ *
+ * Generated from protobuf field <code>string route_long_name = 4;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setRouteLongName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->route_long_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The route_desc field contains a description of a route.
+ *
+ * Generated from protobuf field <code>string route_desc = 5;</code>
+ * @return string
+ */
+ public function getRouteDesc()
+ {
+ return $this->route_desc;
+ }
+
+ /**
+ * The route_desc field contains a description of a route.
+ *
+ * Generated from protobuf field <code>string route_desc = 5;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setRouteDesc($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->route_desc = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Route.RouteType route_type = 6;</code>
+ * @return int
+ */
+ public function getRouteType()
+ {
+ return $this->route_type;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Route.RouteType route_type = 6;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setRouteType($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\Route_RouteType::class);
+ $this->route_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The route_url field contains the URL of a web page about that particular route.
+ *
+ * Generated from protobuf field <code>string route_url = 7;</code>
+ * @return string
+ */
+ public function getRouteUrl()
+ {
+ return $this->route_url;
+ }
+
+ /**
+ * The route_url field contains the URL of a web page about that particular route.
+ *
+ * Generated from protobuf field <code>string route_url = 7;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setRouteUrl($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->route_url = $var;
+
+ return $this;
+ }
+
+ /**
+ * In systems that have colors assigned to routes, the route_color field defines a color that corresponds to a route.
+ * The color must be provided as a six-character hexadecimal number, for example, 00FFFF.
+ *
+ * Generated from protobuf field <code>string route_color = 8;</code>
+ * @return string
+ */
+ public function getRouteColor()
+ {
+ return $this->route_color;
+ }
+
+ /**
+ * In systems that have colors assigned to routes, the route_color field defines a color that corresponds to a route.
+ * The color must be provided as a six-character hexadecimal number, for example, 00FFFF.
+ *
+ * Generated from protobuf field <code>string route_color = 8;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setRouteColor($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->route_color = $var;
+
+ return $this;
+ }
+
+ /**
+ * The route_text_color field can be used to specify a legible color to use for text drawn against a background of route_color.
+ *
+ * Generated from protobuf field <code>string route_text_color = 9;</code>
+ * @return string
+ */
+ public function getRouteTextColor()
+ {
+ return $this->route_text_color;
+ }
+
+ /**
+ * The route_text_color field can be used to specify a legible color to use for text drawn against a background of route_color.
+ *
+ * Generated from protobuf field <code>string route_text_color = 9;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setRouteTextColor($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->route_text_color = $var;
+
+ return $this;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @return \Google\Protobuf\Any
+ */
+ public function getExtension()
+ {
+ return $this->extension;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @param \Google\Protobuf\Any $var
+ * @return $this
+ */
+ public function setExtension($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Any::class);
+ $this->extension = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/inc/Gtfs/Route/RouteType.php b/inc/Gtfs/Route/RouteType.php
new file mode 100644
index 0000000..9e9f6cc
--- /dev/null
+++ b/inc/Gtfs/Route/RouteType.php
@@ -0,0 +1,99 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs\Route;
+
+use UnexpectedValueException;
+
+/**
+ * The route_type field describes the type of transportation used on a route.
+ *
+ * Protobuf type <code>gtfs.Route.RouteType</code>
+ */
+class RouteType
+{
+ /**
+ * Tram, Streetcar, Light rail. Any light rail or street level system within a metropolitan area.
+ *
+ * Generated from protobuf enum <code>TRAM = 0;</code>
+ */
+ const TRAM = 0;
+ /**
+ * Subway, Metro. Any underground rail system within a metropolitan area.
+ *
+ * Generated from protobuf enum <code>SUBWAY = 1;</code>
+ */
+ const SUBWAY = 1;
+ /**
+ * Rail. Used for intercity or long-distance travel.
+ *
+ * Generated from protobuf enum <code>RAIL = 2;</code>
+ */
+ const RAIL = 2;
+ /**
+ * Bus. Used for short- and long-distance bus routes.
+ *
+ * Generated from protobuf enum <code>BUS = 3;</code>
+ */
+ const BUS = 3;
+ /**
+ * Ferry. Used for short- and long-distance boat service.
+ *
+ * Generated from protobuf enum <code>FERRY = 4;</code>
+ */
+ const FERRY = 4;
+ /**
+ * Cable car. Used for street-level cable cars where the cable runs beneath the car.
+ *
+ * Generated from protobuf enum <code>CABLECAR = 5;</code>
+ */
+ const CABLECAR = 5;
+ /**
+ * Gondola, Suspended cable car. Typically used for aerial cable cars where the car is suspended from the cable.
+ *
+ * Generated from protobuf enum <code>GONDOLA = 6;</code>
+ */
+ const GONDOLA = 6;
+ /**
+ * Funicular. Any rail system designed for steep inclines.
+ *
+ * Generated from protobuf enum <code>FUNICULAR = 7;</code>
+ */
+ const FUNICULAR = 7;
+
+ private static $valueToName = [
+ self::TRAM => 'TRAM',
+ self::SUBWAY => 'SUBWAY',
+ self::RAIL => 'RAIL',
+ self::BUS => 'BUS',
+ self::FERRY => 'FERRY',
+ self::CABLECAR => 'CABLECAR',
+ self::GONDOLA => 'GONDOLA',
+ self::FUNICULAR => 'FUNICULAR',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(RouteType::class, \Gtfs\Route_RouteType::class);
+
diff --git a/inc/Gtfs/Route_RouteType.php b/inc/Gtfs/Route_RouteType.php
new file mode 100644
index 0000000..3b8a42c
--- /dev/null
+++ b/inc/Gtfs/Route_RouteType.php
@@ -0,0 +1,16 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+if (false) {
+ /**
+ * This class is deprecated. Use Gtfs\Route\RouteType instead.
+ * @deprecated
+ */
+ class Route_RouteType {}
+}
+class_exists(Route\RouteType::class);
+@trigger_error('Gtfs\Route_RouteType is deprecated and will be removed in the next major release. Use Gtfs\Route\RouteType instead', E_USER_DEPRECATED);
+
diff --git a/inc/Gtfs/Shape.php b/inc/Gtfs/Shape.php
new file mode 100644
index 0000000..5396c4f
--- /dev/null
+++ b/inc/Gtfs/Shape.php
@@ -0,0 +1,208 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+use Google\Protobuf\Internal\GPBType;
+use Google\Protobuf\Internal\RepeatedField;
+use Google\Protobuf\Internal\GPBUtil;
+
+/**
+ * Generated from protobuf message <code>gtfs.Shape</code>
+ */
+class Shape extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Generated from protobuf field <code>string shape_id = 1;</code>
+ */
+ protected $shape_id = '';
+ /**
+ * Generated from protobuf field <code>float shape_pt_lat = 2;</code>
+ */
+ protected $shape_pt_lat = 0.0;
+ /**
+ * Generated from protobuf field <code>float shape_pt_lon = 3;</code>
+ */
+ protected $shape_pt_lon = 0.0;
+ /**
+ * Generated from protobuf field <code>int32 shape_pt_sequence = 4;</code>
+ */
+ protected $shape_pt_sequence = 0;
+ /**
+ * Generated from protobuf field <code>float shape_dist_traveled = 5;</code>
+ */
+ protected $shape_dist_traveled = 0.0;
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ */
+ protected $extension = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $shape_id
+ * @type float $shape_pt_lat
+ * @type float $shape_pt_lon
+ * @type int $shape_pt_sequence
+ * @type float $shape_dist_traveled
+ * @type \Google\Protobuf\Any $extension
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Proto\Gtfs::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Generated from protobuf field <code>string shape_id = 1;</code>
+ * @return string
+ */
+ public function getShapeId()
+ {
+ return $this->shape_id;
+ }
+
+ /**
+ * Generated from protobuf field <code>string shape_id = 1;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setShapeId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->shape_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>float shape_pt_lat = 2;</code>
+ * @return float
+ */
+ public function getShapePtLat()
+ {
+ return $this->shape_pt_lat;
+ }
+
+ /**
+ * Generated from protobuf field <code>float shape_pt_lat = 2;</code>
+ * @param float $var
+ * @return $this
+ */
+ public function setShapePtLat($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->shape_pt_lat = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>float shape_pt_lon = 3;</code>
+ * @return float
+ */
+ public function getShapePtLon()
+ {
+ return $this->shape_pt_lon;
+ }
+
+ /**
+ * Generated from protobuf field <code>float shape_pt_lon = 3;</code>
+ * @param float $var
+ * @return $this
+ */
+ public function setShapePtLon($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->shape_pt_lon = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>int32 shape_pt_sequence = 4;</code>
+ * @return int
+ */
+ public function getShapePtSequence()
+ {
+ return $this->shape_pt_sequence;
+ }
+
+ /**
+ * Generated from protobuf field <code>int32 shape_pt_sequence = 4;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setShapePtSequence($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->shape_pt_sequence = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>float shape_dist_traveled = 5;</code>
+ * @return float
+ */
+ public function getShapeDistTraveled()
+ {
+ return $this->shape_dist_traveled;
+ }
+
+ /**
+ * Generated from protobuf field <code>float shape_dist_traveled = 5;</code>
+ * @param float $var
+ * @return $this
+ */
+ public function setShapeDistTraveled($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->shape_dist_traveled = $var;
+
+ return $this;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @return \Google\Protobuf\Any
+ */
+ public function getExtension()
+ {
+ return $this->extension;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @param \Google\Protobuf\Any $var
+ * @return $this
+ */
+ public function setExtension($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Any::class);
+ $this->extension = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/inc/Gtfs/Stop.php b/inc/Gtfs/Stop.php
new file mode 100644
index 0000000..ae0170b
--- /dev/null
+++ b/inc/Gtfs/Stop.php
@@ -0,0 +1,454 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+use Google\Protobuf\Internal\GPBType;
+use Google\Protobuf\Internal\RepeatedField;
+use Google\Protobuf\Internal\GPBUtil;
+
+/**
+ * Generated from protobuf message <code>gtfs.Stop</code>
+ */
+class Stop extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The stop_id field contains an ID that uniquely identifies a stop or station.
+ * Multiple routes may use the same stop. stop_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string stop_id = 1;</code>
+ */
+ protected $stop_id = '';
+ /**
+ * The stop_code field contains short text or a number that uniquely identifies the stop for passengers.
+ *
+ * Generated from protobuf field <code>string stop_code = 2;</code>
+ */
+ protected $stop_code = '';
+ /**
+ * The stop_name field contains the name of a stop or station.
+ *
+ * Generated from protobuf field <code>string stop_name = 3;</code>
+ */
+ protected $stop_name = '';
+ /**
+ * The stop_desc field contains a description of a stop.
+ *
+ * Generated from protobuf field <code>string stop_desc = 4;</code>
+ */
+ protected $stop_desc = '';
+ /**
+ * Degrees North, in the WGS-84 coordinate system.
+ *
+ * Generated from protobuf field <code>float latitude = 5;</code>
+ */
+ protected $latitude = 0.0;
+ /**
+ * Degrees East, in the WGS-84 coordinate system.
+ *
+ * Generated from protobuf field <code>float longitude = 6;</code>
+ */
+ protected $longitude = 0.0;
+ /**
+ * Generated from protobuf field <code>string zone_id = 7;</code>
+ */
+ protected $zone_id = '';
+ /**
+ * Generated from protobuf field <code>string stop_url = 8;</code>
+ */
+ protected $stop_url = '';
+ /**
+ * Generated from protobuf field <code>.gtfs.Stop.LocationType location_type = 9;</code>
+ */
+ protected $location_type = 0;
+ /**
+ * Generated from protobuf field <code>string parent_station = 10;</code>
+ */
+ protected $parent_station = '';
+ /**
+ * Generated from protobuf field <code>string agency_timezone = 11;</code>
+ */
+ protected $agency_timezone = '';
+ /**
+ * The exact status of the vehicle with respect to the current stop.
+ * Ignored if current_stop_sequence is missing.
+ *
+ * Generated from protobuf field <code>.gtfs.Stop.WheelchairBoarding wheelchair_boarding = 12;</code>
+ */
+ protected $wheelchair_boarding = 0;
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ */
+ protected $extension = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $stop_id
+ * The stop_id field contains an ID that uniquely identifies a stop or station.
+ * Multiple routes may use the same stop. stop_id is dataset unique.
+ * @type string $stop_code
+ * The stop_code field contains short text or a number that uniquely identifies the stop for passengers.
+ * @type string $stop_name
+ * The stop_name field contains the name of a stop or station.
+ * @type string $stop_desc
+ * The stop_desc field contains a description of a stop.
+ * @type float $latitude
+ * Degrees North, in the WGS-84 coordinate system.
+ * @type float $longitude
+ * Degrees East, in the WGS-84 coordinate system.
+ * @type string $zone_id
+ * @type string $stop_url
+ * @type int $location_type
+ * @type string $parent_station
+ * @type string $agency_timezone
+ * @type int $wheelchair_boarding
+ * The exact status of the vehicle with respect to the current stop.
+ * Ignored if current_stop_sequence is missing.
+ * @type \Google\Protobuf\Any $extension
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Proto\Gtfs::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The stop_id field contains an ID that uniquely identifies a stop or station.
+ * Multiple routes may use the same stop. stop_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string stop_id = 1;</code>
+ * @return string
+ */
+ public function getStopId()
+ {
+ return $this->stop_id;
+ }
+
+ /**
+ * The stop_id field contains an ID that uniquely identifies a stop or station.
+ * Multiple routes may use the same stop. stop_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string stop_id = 1;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setStopId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->stop_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The stop_code field contains short text or a number that uniquely identifies the stop for passengers.
+ *
+ * Generated from protobuf field <code>string stop_code = 2;</code>
+ * @return string
+ */
+ public function getStopCode()
+ {
+ return $this->stop_code;
+ }
+
+ /**
+ * The stop_code field contains short text or a number that uniquely identifies the stop for passengers.
+ *
+ * Generated from protobuf field <code>string stop_code = 2;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setStopCode($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->stop_code = $var;
+
+ return $this;
+ }
+
+ /**
+ * The stop_name field contains the name of a stop or station.
+ *
+ * Generated from protobuf field <code>string stop_name = 3;</code>
+ * @return string
+ */
+ public function getStopName()
+ {
+ return $this->stop_name;
+ }
+
+ /**
+ * The stop_name field contains the name of a stop or station.
+ *
+ * Generated from protobuf field <code>string stop_name = 3;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setStopName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->stop_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The stop_desc field contains a description of a stop.
+ *
+ * Generated from protobuf field <code>string stop_desc = 4;</code>
+ * @return string
+ */
+ public function getStopDesc()
+ {
+ return $this->stop_desc;
+ }
+
+ /**
+ * The stop_desc field contains a description of a stop.
+ *
+ * Generated from protobuf field <code>string stop_desc = 4;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setStopDesc($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->stop_desc = $var;
+
+ return $this;
+ }
+
+ /**
+ * Degrees North, in the WGS-84 coordinate system.
+ *
+ * Generated from protobuf field <code>float latitude = 5;</code>
+ * @return float
+ */
+ public function getLatitude()
+ {
+ return $this->latitude;
+ }
+
+ /**
+ * Degrees North, in the WGS-84 coordinate system.
+ *
+ * Generated from protobuf field <code>float latitude = 5;</code>
+ * @param float $var
+ * @return $this
+ */
+ public function setLatitude($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->latitude = $var;
+
+ return $this;
+ }
+
+ /**
+ * Degrees East, in the WGS-84 coordinate system.
+ *
+ * Generated from protobuf field <code>float longitude = 6;</code>
+ * @return float
+ */
+ public function getLongitude()
+ {
+ return $this->longitude;
+ }
+
+ /**
+ * Degrees East, in the WGS-84 coordinate system.
+ *
+ * Generated from protobuf field <code>float longitude = 6;</code>
+ * @param float $var
+ * @return $this
+ */
+ public function setLongitude($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->longitude = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string zone_id = 7;</code>
+ * @return string
+ */
+ public function getZoneId()
+ {
+ return $this->zone_id;
+ }
+
+ /**
+ * Generated from protobuf field <code>string zone_id = 7;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setZoneId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->zone_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string stop_url = 8;</code>
+ * @return string
+ */
+ public function getStopUrl()
+ {
+ return $this->stop_url;
+ }
+
+ /**
+ * Generated from protobuf field <code>string stop_url = 8;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setStopUrl($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->stop_url = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Stop.LocationType location_type = 9;</code>
+ * @return int
+ */
+ public function getLocationType()
+ {
+ return $this->location_type;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Stop.LocationType location_type = 9;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setLocationType($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\Stop_LocationType::class);
+ $this->location_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string parent_station = 10;</code>
+ * @return string
+ */
+ public function getParentStation()
+ {
+ return $this->parent_station;
+ }
+
+ /**
+ * Generated from protobuf field <code>string parent_station = 10;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setParentStation($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent_station = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string agency_timezone = 11;</code>
+ * @return string
+ */
+ public function getAgencyTimezone()
+ {
+ return $this->agency_timezone;
+ }
+
+ /**
+ * Generated from protobuf field <code>string agency_timezone = 11;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setAgencyTimezone($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->agency_timezone = $var;
+
+ return $this;
+ }
+
+ /**
+ * The exact status of the vehicle with respect to the current stop.
+ * Ignored if current_stop_sequence is missing.
+ *
+ * Generated from protobuf field <code>.gtfs.Stop.WheelchairBoarding wheelchair_boarding = 12;</code>
+ * @return int
+ */
+ public function getWheelchairBoarding()
+ {
+ return $this->wheelchair_boarding;
+ }
+
+ /**
+ * The exact status of the vehicle with respect to the current stop.
+ * Ignored if current_stop_sequence is missing.
+ *
+ * Generated from protobuf field <code>.gtfs.Stop.WheelchairBoarding wheelchair_boarding = 12;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setWheelchairBoarding($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\Stop_WheelchairBoarding::class);
+ $this->wheelchair_boarding = $var;
+
+ return $this;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @return \Google\Protobuf\Any
+ */
+ public function getExtension()
+ {
+ return $this->extension;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @param \Google\Protobuf\Any $var
+ * @return $this
+ */
+ public function setExtension($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Any::class);
+ $this->extension = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/inc/Gtfs/Stop/LocationType.php b/inc/Gtfs/Stop/LocationType.php
new file mode 100644
index 0000000..204d537
--- /dev/null
+++ b/inc/Gtfs/Stop/LocationType.php
@@ -0,0 +1,76 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs\Stop;
+
+use UnexpectedValueException;
+
+/**
+ * Protobuf type <code>gtfs.Stop.LocationType</code>
+ */
+class LocationType
+{
+ /**
+ * Stop (or Platform). A location where passengers board or disembark from a transit vehicle. Is called a platform when defined within a parent_station.
+ *
+ * Generated from protobuf enum <code>STOP = 0;</code>
+ */
+ const STOP = 0;
+ /**
+ * Station. A physical structure or area that contains one or more platform.
+ *
+ * Generated from protobuf enum <code>STATION = 1;</code>
+ */
+ const STATION = 1;
+ /**
+ * Entrance/Exit. A location where passengers can enter or exit a station from the street. If an entrance/exit belongs to multiple stations, it can be linked by pathways to both, but the data provider must pick one of them as parent.
+ *
+ * Generated from protobuf enum <code>ENTRANCE = 2;</code>
+ */
+ const ENTRANCE = 2;
+ /**
+ * Generic Node. A location within a station, not matching any other location_type, which can be used to link together pathways define in pathways.txt.
+ *
+ * Generated from protobuf enum <code>GENERIC_NODE = 3;</code>
+ */
+ const GENERIC_NODE = 3;
+ /**
+ * Boarding Area. A specific location on a platform, where passengers can board and/or alight vehicles.
+ *
+ * Generated from protobuf enum <code>BOARDING_AREA = 4;</code>
+ */
+ const BOARDING_AREA = 4;
+
+ private static $valueToName = [
+ self::STOP => 'STOP',
+ self::STATION => 'STATION',
+ self::ENTRANCE => 'ENTRANCE',
+ self::GENERIC_NODE => 'GENERIC_NODE',
+ self::BOARDING_AREA => 'BOARDING_AREA',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(LocationType::class, \Gtfs\Stop_LocationType::class);
+
diff --git a/inc/Gtfs/Stop/WheelchairBoarding.php b/inc/Gtfs/Stop/WheelchairBoarding.php
new file mode 100644
index 0000000..460a6dc
--- /dev/null
+++ b/inc/Gtfs/Stop/WheelchairBoarding.php
@@ -0,0 +1,62 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs\Stop;
+
+use UnexpectedValueException;
+
+/**
+ * Protobuf type <code>gtfs.Stop.WheelchairBoarding</code>
+ */
+class WheelchairBoarding
+{
+ /**
+ * no accessibility information for the stop
+ *
+ * Generated from protobuf enum <code>UNKNOWN = 0;</code>
+ */
+ const UNKNOWN = 0;
+ /**
+ * some vehicles at this stop can be boarded by a rider in a wheelchair
+ *
+ * Generated from protobuf enum <code>ACCESSIBLE = 1;</code>
+ */
+ const ACCESSIBLE = 1;
+ /**
+ * wheelchair boarding is not possible at this stop
+ *
+ * Generated from protobuf enum <code>NOT_ACCESSIBLE = 2;</code>
+ */
+ const NOT_ACCESSIBLE = 2;
+
+ private static $valueToName = [
+ self::UNKNOWN => 'UNKNOWN',
+ self::ACCESSIBLE => 'ACCESSIBLE',
+ self::NOT_ACCESSIBLE => 'NOT_ACCESSIBLE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(WheelchairBoarding::class, \Gtfs\Stop_WheelchairBoarding::class);
+
diff --git a/inc/Gtfs/StopTime.php b/inc/Gtfs/StopTime.php
new file mode 100644
index 0000000..c1605c9
--- /dev/null
+++ b/inc/Gtfs/StopTime.php
@@ -0,0 +1,323 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+use Google\Protobuf\Internal\GPBType;
+use Google\Protobuf\Internal\RepeatedField;
+use Google\Protobuf\Internal\GPBUtil;
+
+/**
+ * Generated from protobuf message <code>gtfs.StopTime</code>
+ */
+class StopTime extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The trip_id field contains an ID that identifies a trip. The trip_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string trip_id = 1;</code>
+ */
+ protected $trip_id = '';
+ /**
+ * Generated from protobuf field <code>string arrival_time = 2;</code>
+ */
+ protected $arrival_time = '';
+ /**
+ * Generated from protobuf field <code>string departure_time = 3;</code>
+ */
+ protected $departure_time = '';
+ /**
+ * Generated from protobuf field <code>string stop_id = 4;</code>
+ */
+ protected $stop_id = '';
+ /**
+ * Generated from protobuf field <code>string stop_sequence = 5;</code>
+ */
+ protected $stop_sequence = '';
+ /**
+ * Generated from protobuf field <code>string stop_headsign = 6;</code>
+ */
+ protected $stop_headsign = '';
+ /**
+ * Generated from protobuf field <code>.gtfs.StopTime.AvailabilityType pickup_type = 7;</code>
+ */
+ protected $pickup_type = 0;
+ /**
+ * Generated from protobuf field <code>.gtfs.StopTime.AvailabilityType drop_off_type = 8;</code>
+ */
+ protected $drop_off_type = 0;
+ /**
+ * Generated from protobuf field <code>float shape_dist_traveled = 9;</code>
+ */
+ protected $shape_dist_traveled = 0.0;
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ */
+ protected $extension = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $trip_id
+ * The trip_id field contains an ID that identifies a trip. The trip_id is dataset unique.
+ * @type string $arrival_time
+ * @type string $departure_time
+ * @type string $stop_id
+ * @type string $stop_sequence
+ * @type string $stop_headsign
+ * @type int $pickup_type
+ * @type int $drop_off_type
+ * @type float $shape_dist_traveled
+ * @type \Google\Protobuf\Any $extension
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Proto\Gtfs::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The trip_id field contains an ID that identifies a trip. The trip_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string trip_id = 1;</code>
+ * @return string
+ */
+ public function getTripId()
+ {
+ return $this->trip_id;
+ }
+
+ /**
+ * The trip_id field contains an ID that identifies a trip. The trip_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string trip_id = 1;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setTripId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->trip_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string arrival_time = 2;</code>
+ * @return string
+ */
+ public function getArrivalTime()
+ {
+ return $this->arrival_time;
+ }
+
+ /**
+ * Generated from protobuf field <code>string arrival_time = 2;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setArrivalTime($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->arrival_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string departure_time = 3;</code>
+ * @return string
+ */
+ public function getDepartureTime()
+ {
+ return $this->departure_time;
+ }
+
+ /**
+ * Generated from protobuf field <code>string departure_time = 3;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setDepartureTime($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->departure_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string stop_id = 4;</code>
+ * @return string
+ */
+ public function getStopId()
+ {
+ return $this->stop_id;
+ }
+
+ /**
+ * Generated from protobuf field <code>string stop_id = 4;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setStopId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->stop_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string stop_sequence = 5;</code>
+ * @return string
+ */
+ public function getStopSequence()
+ {
+ return $this->stop_sequence;
+ }
+
+ /**
+ * Generated from protobuf field <code>string stop_sequence = 5;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setStopSequence($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->stop_sequence = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string stop_headsign = 6;</code>
+ * @return string
+ */
+ public function getStopHeadsign()
+ {
+ return $this->stop_headsign;
+ }
+
+ /**
+ * Generated from protobuf field <code>string stop_headsign = 6;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setStopHeadsign($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->stop_headsign = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.StopTime.AvailabilityType pickup_type = 7;</code>
+ * @return int
+ */
+ public function getPickupType()
+ {
+ return $this->pickup_type;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.StopTime.AvailabilityType pickup_type = 7;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setPickupType($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\StopTime_AvailabilityType::class);
+ $this->pickup_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.StopTime.AvailabilityType drop_off_type = 8;</code>
+ * @return int
+ */
+ public function getDropOffType()
+ {
+ return $this->drop_off_type;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.StopTime.AvailabilityType drop_off_type = 8;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setDropOffType($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\StopTime_AvailabilityType::class);
+ $this->drop_off_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>float shape_dist_traveled = 9;</code>
+ * @return float
+ */
+ public function getShapeDistTraveled()
+ {
+ return $this->shape_dist_traveled;
+ }
+
+ /**
+ * Generated from protobuf field <code>float shape_dist_traveled = 9;</code>
+ * @param float $var
+ * @return $this
+ */
+ public function setShapeDistTraveled($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->shape_dist_traveled = $var;
+
+ return $this;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @return \Google\Protobuf\Any
+ */
+ public function getExtension()
+ {
+ return $this->extension;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @param \Google\Protobuf\Any $var
+ * @return $this
+ */
+ public function setExtension($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Any::class);
+ $this->extension = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/inc/Gtfs/StopTime/AvailabilityType.php b/inc/Gtfs/StopTime/AvailabilityType.php
new file mode 100644
index 0000000..6f876cc
--- /dev/null
+++ b/inc/Gtfs/StopTime/AvailabilityType.php
@@ -0,0 +1,69 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs\StopTime;
+
+use UnexpectedValueException;
+
+/**
+ * Protobuf type <code>gtfs.StopTime.AvailabilityType</code>
+ */
+class AvailabilityType
+{
+ /**
+ * Tram, Streetcar, Light rail. Any light rail or street level system within a metropolitan area.
+ *
+ * Generated from protobuf enum <code>REGULAR = 0;</code>
+ */
+ const REGULAR = 0;
+ /**
+ * Subway, Metro. Any underground rail system within a metropolitan area.
+ *
+ * Generated from protobuf enum <code>NOT_AVAILABLE = 1;</code>
+ */
+ const NOT_AVAILABLE = 1;
+ /**
+ * Rail. Used for intercity or long-distance travel.
+ *
+ * Generated from protobuf enum <code>PHONE = 2;</code>
+ */
+ const PHONE = 2;
+ /**
+ * Bus. Used for short- and long-distance bus routes.
+ *
+ * Generated from protobuf enum <code>DRIVER = 3;</code>
+ */
+ const DRIVER = 3;
+
+ private static $valueToName = [
+ self::REGULAR => 'REGULAR',
+ self::NOT_AVAILABLE => 'NOT_AVAILABLE',
+ self::PHONE => 'PHONE',
+ self::DRIVER => 'DRIVER',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(AvailabilityType::class, \Gtfs\StopTime_AvailabilityType::class);
+
diff --git a/inc/Gtfs/StopTime_AvailabilityType.php b/inc/Gtfs/StopTime_AvailabilityType.php
new file mode 100644
index 0000000..73c70ed
--- /dev/null
+++ b/inc/Gtfs/StopTime_AvailabilityType.php
@@ -0,0 +1,16 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+if (false) {
+ /**
+ * This class is deprecated. Use Gtfs\StopTime\AvailabilityType instead.
+ * @deprecated
+ */
+ class StopTime_AvailabilityType {}
+}
+class_exists(StopTime\AvailabilityType::class);
+@trigger_error('Gtfs\StopTime_AvailabilityType is deprecated and will be removed in the next major release. Use Gtfs\StopTime\AvailabilityType instead', E_USER_DEPRECATED);
+
diff --git a/inc/Gtfs/Stop_LocationType.php b/inc/Gtfs/Stop_LocationType.php
new file mode 100644
index 0000000..18cfb9e
--- /dev/null
+++ b/inc/Gtfs/Stop_LocationType.php
@@ -0,0 +1,16 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+if (false) {
+ /**
+ * This class is deprecated. Use Gtfs\Stop\LocationType instead.
+ * @deprecated
+ */
+ class Stop_LocationType {}
+}
+class_exists(Stop\LocationType::class);
+@trigger_error('Gtfs\Stop_LocationType is deprecated and will be removed in the next major release. Use Gtfs\Stop\LocationType instead', E_USER_DEPRECATED);
+
diff --git a/inc/Gtfs/Stop_WheelchairBoarding.php b/inc/Gtfs/Stop_WheelchairBoarding.php
new file mode 100644
index 0000000..1fbb1a9
--- /dev/null
+++ b/inc/Gtfs/Stop_WheelchairBoarding.php
@@ -0,0 +1,16 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+if (false) {
+ /**
+ * This class is deprecated. Use Gtfs\Stop\WheelchairBoarding instead.
+ * @deprecated
+ */
+ class Stop_WheelchairBoarding {}
+}
+class_exists(Stop\WheelchairBoarding::class);
+@trigger_error('Gtfs\Stop_WheelchairBoarding is deprecated and will be removed in the next major release. Use Gtfs\Stop\WheelchairBoarding instead', E_USER_DEPRECATED);
+
diff --git a/inc/Gtfs/Transfer.php b/inc/Gtfs/Transfer.php
new file mode 100644
index 0000000..c3ee43b
--- /dev/null
+++ b/inc/Gtfs/Transfer.php
@@ -0,0 +1,181 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+use Google\Protobuf\Internal\GPBType;
+use Google\Protobuf\Internal\RepeatedField;
+use Google\Protobuf\Internal\GPBUtil;
+
+/**
+ * Generated from protobuf message <code>gtfs.Transfer</code>
+ */
+class Transfer extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Generated from protobuf field <code>string from_stop_id = 1;</code>
+ */
+ protected $from_stop_id = '';
+ /**
+ * Generated from protobuf field <code>string to_stop_id = 2;</code>
+ */
+ protected $to_stop_id = '';
+ /**
+ * Generated from protobuf field <code>.gtfs.Transfer.TransferType transfer_type = 3;</code>
+ */
+ protected $transfer_type = 0;
+ /**
+ * Generated from protobuf field <code>int32 min_transfer_time = 4;</code>
+ */
+ protected $min_transfer_time = 0;
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ */
+ protected $extension = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $from_stop_id
+ * @type string $to_stop_id
+ * @type int $transfer_type
+ * @type int $min_transfer_time
+ * @type \Google\Protobuf\Any $extension
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Proto\Gtfs::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Generated from protobuf field <code>string from_stop_id = 1;</code>
+ * @return string
+ */
+ public function getFromStopId()
+ {
+ return $this->from_stop_id;
+ }
+
+ /**
+ * Generated from protobuf field <code>string from_stop_id = 1;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setFromStopId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->from_stop_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>string to_stop_id = 2;</code>
+ * @return string
+ */
+ public function getToStopId()
+ {
+ return $this->to_stop_id;
+ }
+
+ /**
+ * Generated from protobuf field <code>string to_stop_id = 2;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setToStopId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->to_stop_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Transfer.TransferType transfer_type = 3;</code>
+ * @return int
+ */
+ public function getTransferType()
+ {
+ return $this->transfer_type;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Transfer.TransferType transfer_type = 3;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setTransferType($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\Transfer_TransferType::class);
+ $this->transfer_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>int32 min_transfer_time = 4;</code>
+ * @return int
+ */
+ public function getMinTransferTime()
+ {
+ return $this->min_transfer_time;
+ }
+
+ /**
+ * Generated from protobuf field <code>int32 min_transfer_time = 4;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setMinTransferTime($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->min_transfer_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @return \Google\Protobuf\Any
+ */
+ public function getExtension()
+ {
+ return $this->extension;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @param \Google\Protobuf\Any $var
+ * @return $this
+ */
+ public function setExtension($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Any::class);
+ $this->extension = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/inc/Gtfs/Transfer/TransferType.php b/inc/Gtfs/Transfer/TransferType.php
new file mode 100644
index 0000000..f78300f
--- /dev/null
+++ b/inc/Gtfs/Transfer/TransferType.php
@@ -0,0 +1,61 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs\Transfer;
+
+use UnexpectedValueException;
+
+/**
+ * Protobuf type <code>gtfs.Transfer.TransferType</code>
+ */
+class TransferType
+{
+ /**
+ * Generated from protobuf enum <code>RECOMMENDED = 0;</code>
+ */
+ const RECOMMENDED = 0;
+ /**
+ * Generated from protobuf enum <code>TIMED = 1;</code>
+ */
+ const TIMED = 1;
+ /**
+ * Generated from protobuf enum <code>MINIMUM = 2;</code>
+ */
+ const MINIMUM = 2;
+ /**
+ * Generated from protobuf enum <code>NOT_POSSIBLE = 3;</code>
+ */
+ const NOT_POSSIBLE = 3;
+
+ private static $valueToName = [
+ self::RECOMMENDED => 'RECOMMENDED',
+ self::TIMED => 'TIMED',
+ self::MINIMUM => 'MINIMUM',
+ self::NOT_POSSIBLE => 'NOT_POSSIBLE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(TransferType::class, \Gtfs\Transfer_TransferType::class);
+
diff --git a/inc/Gtfs/Transfer_TransferType.php b/inc/Gtfs/Transfer_TransferType.php
new file mode 100644
index 0000000..8efb526
--- /dev/null
+++ b/inc/Gtfs/Transfer_TransferType.php
@@ -0,0 +1,16 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+if (false) {
+ /**
+ * This class is deprecated. Use Gtfs\Transfer\TransferType instead.
+ * @deprecated
+ */
+ class Transfer_TransferType {}
+}
+class_exists(Transfer\TransferType::class);
+@trigger_error('Gtfs\Transfer_TransferType is deprecated and will be removed in the next major release. Use Gtfs\Transfer\TransferType instead', E_USER_DEPRECATED);
+
diff --git a/inc/Gtfs/Trip.php b/inc/Gtfs/Trip.php
new file mode 100644
index 0000000..0452c4f
--- /dev/null
+++ b/inc/Gtfs/Trip.php
@@ -0,0 +1,346 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+use Google\Protobuf\Internal\GPBType;
+use Google\Protobuf\Internal\RepeatedField;
+use Google\Protobuf\Internal\GPBUtil;
+
+/**
+ * Generated from protobuf message <code>gtfs.Trip</code>
+ */
+class Trip extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The route_id field contains an ID that uniquely identifies a route.
+ *
+ * Generated from protobuf field <code>string route_id = 1;</code>
+ */
+ protected $route_id = '';
+ /**
+ * The service_id contains an ID that uniquely identifies a set of dates when service is available for one or more routes.
+ *
+ * Generated from protobuf field <code>string service_id = 2;</code>
+ */
+ protected $service_id = '';
+ /**
+ * The trip_id field contains an ID that identifies a trip. The trip_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string trip_id = 3;</code>
+ */
+ protected $trip_id = '';
+ /**
+ * The trip_headsign field contains the text that appears on a sign that identifies the trip's destination to passengers.
+ *
+ * Generated from protobuf field <code>string trip_headsign = 4;</code>
+ */
+ protected $trip_headsign = '';
+ /**
+ * The trip_short_name field contains the text that appears in schedules and sign boards to identify the trip to passengers.
+ *
+ * Generated from protobuf field <code>string trip_short_name = 5;</code>
+ */
+ protected $trip_short_name = '';
+ /**
+ * Generated from protobuf field <code>.gtfs.Trip.Direction direction_id = 6;</code>
+ */
+ protected $direction_id = 0;
+ /**
+ * The block_id field identifies the block to which the trip belongs.
+ * A block consists of two or more sequential trips made using the same vehicle,
+ * where a passenger can transfer from one trip to the next just by staying in the vehicle.
+ *
+ * Generated from protobuf field <code>string block_id = 7;</code>
+ */
+ protected $block_id = '';
+ /**
+ * The shape_id field contains an ID that defines a shape for the trip.
+ *
+ * Generated from protobuf field <code>string shape_id = 8;</code>
+ */
+ protected $shape_id = '';
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ */
+ protected $extension = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $route_id
+ * The route_id field contains an ID that uniquely identifies a route.
+ * @type string $service_id
+ * The service_id contains an ID that uniquely identifies a set of dates when service is available for one or more routes.
+ * @type string $trip_id
+ * The trip_id field contains an ID that identifies a trip. The trip_id is dataset unique.
+ * @type string $trip_headsign
+ * The trip_headsign field contains the text that appears on a sign that identifies the trip's destination to passengers.
+ * @type string $trip_short_name
+ * The trip_short_name field contains the text that appears in schedules and sign boards to identify the trip to passengers.
+ * @type int $direction_id
+ * @type string $block_id
+ * The block_id field identifies the block to which the trip belongs.
+ * A block consists of two or more sequential trips made using the same vehicle,
+ * where a passenger can transfer from one trip to the next just by staying in the vehicle.
+ * @type string $shape_id
+ * The shape_id field contains an ID that defines a shape for the trip.
+ * @type \Google\Protobuf\Any $extension
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Proto\Gtfs::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The route_id field contains an ID that uniquely identifies a route.
+ *
+ * Generated from protobuf field <code>string route_id = 1;</code>
+ * @return string
+ */
+ public function getRouteId()
+ {
+ return $this->route_id;
+ }
+
+ /**
+ * The route_id field contains an ID that uniquely identifies a route.
+ *
+ * Generated from protobuf field <code>string route_id = 1;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setRouteId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->route_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The service_id contains an ID that uniquely identifies a set of dates when service is available for one or more routes.
+ *
+ * Generated from protobuf field <code>string service_id = 2;</code>
+ * @return string
+ */
+ public function getServiceId()
+ {
+ return $this->service_id;
+ }
+
+ /**
+ * The service_id contains an ID that uniquely identifies a set of dates when service is available for one or more routes.
+ *
+ * Generated from protobuf field <code>string service_id = 2;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The trip_id field contains an ID that identifies a trip. The trip_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string trip_id = 3;</code>
+ * @return string
+ */
+ public function getTripId()
+ {
+ return $this->trip_id;
+ }
+
+ /**
+ * The trip_id field contains an ID that identifies a trip. The trip_id is dataset unique.
+ *
+ * Generated from protobuf field <code>string trip_id = 3;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setTripId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->trip_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The trip_headsign field contains the text that appears on a sign that identifies the trip's destination to passengers.
+ *
+ * Generated from protobuf field <code>string trip_headsign = 4;</code>
+ * @return string
+ */
+ public function getTripHeadsign()
+ {
+ return $this->trip_headsign;
+ }
+
+ /**
+ * The trip_headsign field contains the text that appears on a sign that identifies the trip's destination to passengers.
+ *
+ * Generated from protobuf field <code>string trip_headsign = 4;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setTripHeadsign($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->trip_headsign = $var;
+
+ return $this;
+ }
+
+ /**
+ * The trip_short_name field contains the text that appears in schedules and sign boards to identify the trip to passengers.
+ *
+ * Generated from protobuf field <code>string trip_short_name = 5;</code>
+ * @return string
+ */
+ public function getTripShortName()
+ {
+ return $this->trip_short_name;
+ }
+
+ /**
+ * The trip_short_name field contains the text that appears in schedules and sign boards to identify the trip to passengers.
+ *
+ * Generated from protobuf field <code>string trip_short_name = 5;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setTripShortName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->trip_short_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Trip.Direction direction_id = 6;</code>
+ * @return int
+ */
+ public function getDirectionId()
+ {
+ return $this->direction_id;
+ }
+
+ /**
+ * Generated from protobuf field <code>.gtfs.Trip.Direction direction_id = 6;</code>
+ * @param int $var
+ * @return $this
+ */
+ public function setDirectionId($var)
+ {
+ GPBUtil::checkEnum($var, \Gtfs\Trip_Direction::class);
+ $this->direction_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The block_id field identifies the block to which the trip belongs.
+ * A block consists of two or more sequential trips made using the same vehicle,
+ * where a passenger can transfer from one trip to the next just by staying in the vehicle.
+ *
+ * Generated from protobuf field <code>string block_id = 7;</code>
+ * @return string
+ */
+ public function getBlockId()
+ {
+ return $this->block_id;
+ }
+
+ /**
+ * The block_id field identifies the block to which the trip belongs.
+ * A block consists of two or more sequential trips made using the same vehicle,
+ * where a passenger can transfer from one trip to the next just by staying in the vehicle.
+ *
+ * Generated from protobuf field <code>string block_id = 7;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setBlockId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->block_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The shape_id field contains an ID that defines a shape for the trip.
+ *
+ * Generated from protobuf field <code>string shape_id = 8;</code>
+ * @return string
+ */
+ public function getShapeId()
+ {
+ return $this->shape_id;
+ }
+
+ /**
+ * The shape_id field contains an ID that defines a shape for the trip.
+ *
+ * Generated from protobuf field <code>string shape_id = 8;</code>
+ * @param string $var
+ * @return $this
+ */
+ public function setShapeId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->shape_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @return \Google\Protobuf\Any
+ */
+ public function getExtension()
+ {
+ return $this->extension;
+ }
+
+ /**
+ * The extensions namespace allows 3rd-party developers to extend the
+ * GTFS specification in order to add and evaluate new features and
+ * modifications to the spec.
+ *
+ * Generated from protobuf field <code>.google.protobuf.Any extension = 2000;</code>
+ * @param \Google\Protobuf\Any $var
+ * @return $this
+ */
+ public function setExtension($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Any::class);
+ $this->extension = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/inc/Gtfs/Trip/Direction.php b/inc/Gtfs/Trip/Direction.php
new file mode 100644
index 0000000..d446b74
--- /dev/null
+++ b/inc/Gtfs/Trip/Direction.php
@@ -0,0 +1,53 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs\Trip;
+
+use UnexpectedValueException;
+
+/**
+ * The direction_id field contains a binary value that indicates the direction of travel for a trip.
+ *
+ * Protobuf type <code>gtfs.Trip.Direction</code>
+ */
+class Direction
+{
+ /**
+ * Generated from protobuf enum <code>OUTBOUND = 0;</code>
+ */
+ const OUTBOUND = 0;
+ /**
+ * Generated from protobuf enum <code>INBOUND = 1;</code>
+ */
+ const INBOUND = 1;
+
+ private static $valueToName = [
+ self::OUTBOUND => 'OUTBOUND',
+ self::INBOUND => 'INBOUND',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Direction::class, \Gtfs\Trip_Direction::class);
+
diff --git a/inc/Gtfs/Trip_Direction.php b/inc/Gtfs/Trip_Direction.php
new file mode 100644
index 0000000..b626b3c
--- /dev/null
+++ b/inc/Gtfs/Trip_Direction.php
@@ -0,0 +1,16 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs;
+
+if (false) {
+ /**
+ * This class is deprecated. Use Gtfs\Trip\Direction instead.
+ * @deprecated
+ */
+ class Trip_Direction {}
+}
+class_exists(Trip\Direction::class);
+@trigger_error('Gtfs\Trip_Direction is deprecated and will be removed in the next major release. Use Gtfs\Trip\Direction instead', E_USER_DEPRECATED);
+