mirror of
https://github.com/twitter/the-algorithm.git
synced 2024-06-01 08:48:46 +02:00
ef4c5eb65e
Please note we have force-pushed a new initial commit in order to remove some publicly-available Twitter user information. Note that this process may be required in the future.
32 lines
901 B
Scala
32 lines
901 B
Scala
package com.twitter.timelineranker.model
|
|
|
|
import com.twitter.common.text.language.LocaleUtil
|
|
import com.twitter.timelineranker.{thriftscala => thrift}
|
|
|
|
object Language {
|
|
|
|
def fromThrift(lang: thrift.Language): Language = {
|
|
require(lang.language.isDefined, "language can't be None")
|
|
require(lang.scope.isDefined, "scope can't be None")
|
|
Language(lang.language.get, LanguageScope.fromThrift(lang.scope.get))
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Represents a language and the scope that it relates to.
|
|
*/
|
|
case class Language(language: String, scope: LanguageScope.Value) {
|
|
|
|
throwIfInvalid()
|
|
|
|
def toThrift: thrift.Language = {
|
|
val scopeOption = Some(LanguageScope.toThrift(scope))
|
|
thrift.Language(Some(language), scopeOption)
|
|
}
|
|
|
|
def throwIfInvalid(): Unit = {
|
|
val result = LocaleUtil.getLocaleOf(language)
|
|
require(result != LocaleUtil.UNKNOWN, s"Language ${language} is unsupported")
|
|
}
|
|
}
|