From 587ef667f1aa24f5ad51a051cbfa9c9445e1a20a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathieu=20M=C3=A9a?= Date: Wed, 4 Mar 2026 11:51:49 -0500 Subject: [PATCH 1/2] Add "last trip stop" - https://github.com/mtransitapps/parser/pull/47 --- src/main/java/org/mtransit/commons/FeatureFlags.kt | 3 +++ src/main/java/org/mtransit/commons/sql/SQLExt.kt | 8 ++------ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/mtransit/commons/FeatureFlags.kt b/src/main/java/org/mtransit/commons/FeatureFlags.kt index 336870f..3cb4d66 100644 --- a/src/main/java/org/mtransit/commons/FeatureFlags.kt +++ b/src/main/java/org/mtransit/commons/FeatureFlags.kt @@ -65,5 +65,8 @@ object FeatureFlags { // const val F_USE_TRIP_IS_FOR_SERVICE_UPDATES = false const val F_USE_TRIP_IS_FOR_SERVICE_UPDATES = true // WIP + const val F_EXPORT_DIRECTION_STOP_LAST = false + // const val F_EXPORT_DIRECTION_STOP_LAST = true // WIP + // @formatter:on } diff --git a/src/main/java/org/mtransit/commons/sql/SQLExt.kt b/src/main/java/org/mtransit/commons/sql/SQLExt.kt index 28b6a18..aa97221 100644 --- a/src/main/java/org/mtransit/commons/sql/SQLExt.kt +++ b/src/main/java/org/mtransit/commons/sql/SQLExt.kt @@ -5,13 +5,9 @@ import java.sql.ResultSet import java.sql.SQLException import java.sql.Statement -fun Boolean.toSQL(): Int { - return SQLUtils.toSQLBoolean(this) -} +fun Boolean.toSQL(): Int = SQLUtils.toSQLBoolean(this) -fun Int.fromSQL(): Boolean { - return SQLUtils.fromSQLBoolean(this) -} +fun Int.fromSQL(): Boolean = SQLUtils.fromSQLBoolean(this) fun ResultSet.getStringOrNull(columnLabel: String) = this.getString(columnLabel).takeIf { it != SQL_NULL }?.takeIf { it.isNotBlank() } From e40d0e956781d29a86c2a4ae43f01083a3a8c61b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathieu=20M=C3=A9a?= Date: Wed, 4 Mar 2026 14:18:43 -0500 Subject: [PATCH 2/2] wip --- src/main/java/org/mtransit/commons/GTFSCommons.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/org/mtransit/commons/GTFSCommons.kt b/src/main/java/org/mtransit/commons/GTFSCommons.kt index d7f5d5d..17b9480 100644 --- a/src/main/java/org/mtransit/commons/GTFSCommons.kt +++ b/src/main/java/org/mtransit/commons/GTFSCommons.kt @@ -213,6 +213,7 @@ object GTFSCommons { const val T_DIRECTION_STOPS_K_STOP_ID = "stop_id" const val T_DIRECTION_STOPS_K_STOP_SEQUENCE = "stop_sequence" const val T_DIRECTION_STOPS_K_NO_PICKUP = "decent_only" + const val T_DIRECTION_STOPS_K_ALWAYS_LAST_TRIP_STOP = "last_stop" @JvmStatic val T_DIRECTION_STOPS_SQL_CREATE = SQLCreateBuilder.getNew(T_DIRECTION_STOPS).apply { @@ -221,6 +222,9 @@ object GTFSCommons { appendColumn(T_DIRECTION_STOPS_K_STOP_ID, SQLUtils.INT) appendColumn(T_DIRECTION_STOPS_K_STOP_SEQUENCE, SQLUtils.INT) appendColumn(T_DIRECTION_STOPS_K_NO_PICKUP, SQLUtils.INT) + if (FeatureFlags.F_EXPORT_DIRECTION_STOP_LAST) { + appendColumn(T_DIRECTION_STOPS_K_ALWAYS_LAST_TRIP_STOP, SQLUtils.INT) // as BOOLEAN + } appendForeignKey(T_DIRECTION_STOPS_K_DIRECTION_ID, T_DIRECTION, T_DIRECTION_K_ID) appendForeignKey(T_DIRECTION_STOPS_K_STOP_ID, T_STOP, T_STOP_K_ID) }.build() @@ -231,6 +235,9 @@ object GTFSCommons { appendColumn(T_DIRECTION_STOPS_K_STOP_ID) appendColumn(T_DIRECTION_STOPS_K_STOP_SEQUENCE) appendColumn(T_DIRECTION_STOPS_K_NO_PICKUP) + if (FeatureFlags.F_EXPORT_DIRECTION_STOP_LAST) { + appendColumn(T_DIRECTION_STOPS_K_ALWAYS_LAST_TRIP_STOP) + } }.build() @JvmStatic