Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/main/java/org/mtransit/commons/FeatureFlags.kt
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,8 @@ object FeatureFlags {
// const val F_AVOID_DATA_CHANGED = false
const val F_AVOID_DATA_CHANGED = true // WIP

const val F_EXPORT_SERVICE_ID_INTS = false
// const val F_EXPORT_SERVICE_ID_INTS = true // WIP

// @formatter:on
}
49 changes: 42 additions & 7 deletions src/main/java/org/mtransit/commons/GTFSCommons.kt
Original file line number Diff line number Diff line change
Expand Up @@ -198,32 +198,67 @@ object GTFSCommons {

// endregion Direction Stops

// region Service IDs

const val T_SERVICE_IDS = "service_ids"
const val T_SERVICE_IDS_K_ID_INT = "service_id_int"
const val T_SERVICE_IDS_K_ID = "service_id"

@JvmStatic
val T_SERVICE_IDS_SQL_CREATE = SQLCreateBuilder.getNew(T_SERVICE_IDS).apply {
appendColumn(T_SERVICE_IDS_K_ID_INT, SQLUtils.INT) // TODO INT_PK_AUTO?
appendColumn(T_SERVICE_IDS_K_ID, SQLUtils.TXT, unique = true)
}.build()

@JvmStatic
val T_SERVICE_IDS_SQL_INSERT = SQLInsertBuilder.getNew(T_SERVICE_IDS).apply {
appendColumn(T_SERVICE_IDS_K_ID_INT)
appendColumn(T_SERVICE_IDS_K_ID)
}.build()

@JvmStatic
val T_SERVICE_IDS_SQL_DROP = SQLUtils.getSQLDropIfExistsQuery(T_SERVICE_IDS)

// endregion Service IDs

// region Service Dates

const val T_SERVICE_DATES = "service_dates"
const val T_SERVICE_DATES_K_SERVICE_ID = "service_id"
const val T_SERVICE_DATES_K_SERVICE_ID_INT = "service_id_int"
const val T_SERVICE_DATES_K_DATE = "date"
const val T_SERVICE_DATES_K_EXCEPTION_TYPE = "exception_type"

// https://gtfs.org/documentation/schedule/reference/#calendar_datestxt
const val EXCEPTION_TYPE_DEFAULT = 0 // default schedule // added by MT
const val EXCEPTION_TYPE_ADDED = 1
const val EXCEPTION_TYPE_REMOVED = 2

@JvmStatic
val T_SERVICE_DATES_SQL_CREATE = SQLCreateBuilder.getNew(T_SERVICE_DATES).apply {
appendColumn(T_SERVICE_DATES_K_SERVICE_ID, SQLUtils.TXT)
if (FeatureFlags.F_EXPORT_SERVICE_ID_INTS) {
appendColumn(T_SERVICE_DATES_K_SERVICE_ID_INT, SQLUtils.INT)
} else {
appendColumn(T_SERVICE_DATES_K_SERVICE_ID, SQLUtils.TXT)
}
appendColumn(T_SERVICE_DATES_K_DATE, SQLUtils.INT)
appendColumn(T_SERVICE_DATES_K_EXCEPTION_TYPE, SQLUtils.INT)
if (FeatureFlags.F_EXPORT_SERVICE_ID_INTS) {
appendForeignKey(T_SERVICE_DATES_K_SERVICE_ID_INT, T_SERVICE_IDS, T_SERVICE_IDS_K_ID_INT)
}
}.build()

@JvmStatic
val T_SERVICE_DATES_SQL_INSERT = SQLInsertBuilder.getNew(T_SERVICE_DATES).apply {
appendColumn(T_SERVICE_DATES_K_SERVICE_ID)
if (FeatureFlags.F_EXPORT_SERVICE_ID_INTS) {
appendColumn(T_SERVICE_DATES_K_SERVICE_ID_INT)
} else {
appendColumn(T_SERVICE_DATES_K_SERVICE_ID)
}
appendColumn(T_SERVICE_DATES_K_DATE)
appendColumn(T_SERVICE_DATES_K_EXCEPTION_TYPE)
}.build()

// https://gtfs.org/documentation/schedule/reference/#calendar_datestxt
const val EXCEPTION_TYPE_DEFAULT = 0 // default schedule // added by MT
const val EXCEPTION_TYPE_ADDED = 1
const val EXCEPTION_TYPE_REMOVED = 2

@JvmStatic
val T_SERVICE_DATES_SQL_DROP = SQLUtils.getSQLDropIfExistsQuery(T_SERVICE_DATES)

Expand Down
6 changes: 5 additions & 1 deletion src/main/java/org/mtransit/commons/sql/SQLCreateBuilder.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,15 @@ class SQLCreateBuilder private constructor(table: String) {

private var nbColumn = 0

fun appendColumn(name: String, type: String): SQLCreateBuilder {
@JvmOverloads
fun appendColumn(name: String, type: String, unique: Boolean = false): SQLCreateBuilder {
if (nbColumn > 0) {
sqlCreateSb.append(SQLUtils.COLUMN_SEPARATOR)
}
sqlCreateSb.append(name).append(type)
if (unique) {
sqlCreateSb.append(SQLUtils.UNIQUE)
}
nbColumn++
return this
}
Expand Down
1 change: 1 addition & 0 deletions src/main/java/org/mtransit/commons/sql/SQLUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ object SQLUtils {
const val INT_PK_AUTO = "$INT_PK AUTOINCREMENT"
const val TXT = " text"
const val REAL = " real"
const val UNIQUE = " unique"

const val STRING_DELIMITER = "'"
const val STRING_DELIMITER_ESCAPED = '\''
Expand Down