Skip to content

Commit cc6c9ce

Browse files
committed
Fix misuse of Language.UNKNOWN in public api (#24)
1 parent bc5201e commit cc6c9ce

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

src/main/kotlin/com/github/pemistahl/lingua/api/LanguageDetectorBuilder.kt

+12-6
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,10 @@ class LanguageDetectorBuilder private constructor(
9696
*/
9797
@JvmStatic
9898
fun fromLanguages(vararg languages: Language): LanguageDetectorBuilder {
99-
require(languages.size >= 2) { MISSING_LANGUAGE_MESSAGE }
100-
return LanguageDetectorBuilder(listOf(*languages))
99+
val languagesToLoad = languages.toMutableSet()
100+
languagesToLoad.remove(Language.UNKNOWN)
101+
require(languagesToLoad.size >= 2) { MISSING_LANGUAGE_MESSAGE }
102+
return LanguageDetectorBuilder(languagesToLoad.toList())
101103
}
102104

103105
/**
@@ -109,8 +111,10 @@ class LanguageDetectorBuilder private constructor(
109111
*/
110112
@JvmStatic
111113
fun fromIsoCodes639_1(vararg isoCodes: IsoCode639_1): LanguageDetectorBuilder {
112-
require(isoCodes.size >= 2) { MISSING_LANGUAGE_MESSAGE }
113-
val languages = isoCodes.map { Language.getByIsoCode639_1(it) }
114+
val isoCodesToLoad = isoCodes.toMutableSet()
115+
isoCodesToLoad.remove(IsoCode639_1.UNKNOWN)
116+
require(isoCodesToLoad.size >= 2) { MISSING_LANGUAGE_MESSAGE }
117+
val languages = isoCodesToLoad.map { Language.getByIsoCode639_1(it) }
114118
return LanguageDetectorBuilder(languages)
115119
}
116120

@@ -123,8 +127,10 @@ class LanguageDetectorBuilder private constructor(
123127
*/
124128
@JvmStatic
125129
fun fromIsoCodes639_3(vararg isoCodes: IsoCode639_3): LanguageDetectorBuilder {
126-
require(isoCodes.size >= 2) { MISSING_LANGUAGE_MESSAGE }
127-
val languages = isoCodes.map { Language.getByIsoCode639_3(it) }
130+
val isoCodesToLoad = isoCodes.toMutableSet()
131+
isoCodesToLoad.remove(IsoCode639_3.UNKNOWN)
132+
require(isoCodesToLoad.size >= 2) { MISSING_LANGUAGE_MESSAGE }
133+
val languages = isoCodesToLoad.map { Language.getByIsoCode639_3(it) }
128134
return LanguageDetectorBuilder(languages)
129135
}
130136

0 commit comments

Comments
 (0)