From ed51f11b6377ecb62c8dd42956965712bc2306ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathieu=20M=C3=A9a?= Date: Thu, 2 Jul 2026 20:06:49 -0400 Subject: [PATCH] `JSON` config > + `to_lower_upper_case_words_min_pct` --- .../mtransit/parser/DefaultAgencyTools.java | 29 +++++++++++++++++-- .../parser/config/gtfs/data/AgencyConfig.kt | 2 ++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/mtransit/parser/DefaultAgencyTools.java b/src/main/java/org/mtransit/parser/DefaultAgencyTools.java index 7140e65..8747108 100644 --- a/src/main/java/org/mtransit/parser/DefaultAgencyTools.java +++ b/src/main/java/org/mtransit/parser/DefaultAgencyTools.java @@ -677,7 +677,15 @@ public String cleanRouteLongName(@NotNull String routeLongName) { } routeLongName = Configs.getRouteConfig().cleanRouteLongName(getFirstLanguageNN(), routeLongName); if (defaultStringsCleanerEnabled()) { - return StringsCleaner.cleanRouteLongName(routeLongName, getSupportedLanguages(), getAgencyRouteType(), lowerUCStrings(), lowerUCWords(), getIgnoreUCWords()); + return StringsCleaner.cleanRouteLongName( + routeLongName, + getSupportedLanguages(), + getAgencyRouteType(), + lowerUCStrings(), + lowerUCWords(), + lowerUCWordsMinPct(), + getIgnoreUCWords() + ); } return org.mtransit.commons.CleanUtils.cleanLabel(getFirstLanguageNN(), routeLongName); } @@ -695,6 +703,14 @@ public boolean lowerUCWords() { return false; // OPT-IN feature } + @Nullable + private Float lowerUCWordsMinPct() { + if (Configs.getAgencyConfig() != null) { + return Configs.getAgencyConfig().getToLowerUpperCaseWordsMinPct(); + } + return null; + } + @Override public boolean lowerUCStrings() { if (Configs.getAgencyConfig() != null) { @@ -847,6 +863,7 @@ public String cleanTripHeadsign(@NotNull String tripHeadsign) { getAgencyRouteType(), lowerUCStrings(), lowerUCWords(), + lowerUCWordsMinPct(), getIgnoreUCWords(), Configs.getRouteConfig().getTripHeadsignRemoveVia() ); @@ -1265,7 +1282,15 @@ public boolean excludeCalendar(@NotNull GCalendar gCalendar) { public String cleanStopName(@NotNull String gStopName) { gStopName = Configs.getRouteConfig().cleanStopName(getFirstLanguageNN(), gStopName); if (defaultStringsCleanerEnabled()) { - return StringsCleaner.cleanStopName(gStopName, getSupportedLanguages(), getAgencyRouteType(), lowerUCStrings(), lowerUCWords(), getIgnoreUCWords()); + return StringsCleaner.cleanStopName( + gStopName, + getSupportedLanguages(), + getAgencyRouteType(), + lowerUCStrings(), + lowerUCWords(), + lowerUCWordsMinPct(), + getIgnoreUCWords() + ); } return org.mtransit.commons.CleanUtils.cleanLabel(getFirstLanguageNN(), gStopName); } diff --git a/src/main/java/org/mtransit/parser/config/gtfs/data/AgencyConfig.kt b/src/main/java/org/mtransit/parser/config/gtfs/data/AgencyConfig.kt index 0212c42..4281a6f 100644 --- a/src/main/java/org/mtransit/parser/config/gtfs/data/AgencyConfig.kt +++ b/src/main/java/org/mtransit/parser/config/gtfs/data/AgencyConfig.kt @@ -41,6 +41,8 @@ data class AgencyConfig( val toLowerUpperCaseStrings: Boolean = false, // OPT-IN feature @SerialName("to_lower_upper_case_words") val toLowerUpperCaseWords: Boolean = false, // OPT-IN feature + @SerialName("to_lower_upper_case_words_min_pct") + val toLowerUpperCaseWordsMinPct: Float? = null, // OPT-IN feature @SerialName("ignore_upper_case_words") val ignoreUpperCaseWords: List = emptyList(), // OPT-IN feature // COLOR