Permalink
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
the-algorithm/visibilitylib/src/main/scala/com/twitter/visibility/models/SpaceSafetyLabelType.scala
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cannot retrieve latest commit at this time.
95 lines (80 sloc)
4.32 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package com.twitter.visibility.models | |
| import com.twitter.visibility.safety_label_store.{thriftscala => s} | |
| import com.twitter.visibility.util.NamingUtils | |
| sealed trait SpaceSafetyLabelType extends SafetyLabelType { | |
| lazy val name: String = NamingUtils.getFriendlyName(this) | |
| } | |
| object SpaceSafetyLabelType extends SafetyLabelType { | |
| val List: List[SpaceSafetyLabelType] = s.SpaceSafetyLabelType.list.map(fromThrift) | |
| val ActiveLabels: List[SpaceSafetyLabelType] = List.filter { labelType => | |
| labelType != Unknown && labelType != Deprecated | |
| } | |
| private lazy val nameToValueMap: Map[String, SpaceSafetyLabelType] = | |
| List.map(l => l.name.toLowerCase -> l).toMap | |
| def fromName(name: String): Option[SpaceSafetyLabelType] = nameToValueMap.get(name.toLowerCase) | |
| private val UnknownThriftSafetyLabelType = | |
| s.SpaceSafetyLabelType.EnumUnknownSpaceSafetyLabelType(UnknownEnumValue) | |
| private lazy val thriftToModelMap: Map[s.SpaceSafetyLabelType, SpaceSafetyLabelType] = Map( | |
| s.SpaceSafetyLabelType.DoNotAmplify -> DoNotAmplify, | |
| s.SpaceSafetyLabelType.CoordinatedHarmfulActivityHighRecall -> CoordinatedHarmfulActivityHighRecall, | |
| s.SpaceSafetyLabelType.UntrustedUrl -> UntrustedUrl, | |
| s.SpaceSafetyLabelType.MisleadingHighRecall -> MisleadingHighRecall, | |
| s.SpaceSafetyLabelType.NsfwHighPrecision -> NsfwHighPrecision, | |
| s.SpaceSafetyLabelType.NsfwHighRecall -> NsfwHighRecall, | |
| s.SpaceSafetyLabelType.CivicIntegrityMisinfo -> CivicIntegrityMisinfo, | |
| s.SpaceSafetyLabelType.MedicalMisinfo -> MedicalMisinfo, | |
| s.SpaceSafetyLabelType.GenericMisinfo -> GenericMisinfo, | |
| s.SpaceSafetyLabelType.DmcaWithheld -> DmcaWithheld, | |
| s.SpaceSafetyLabelType.HatefulHighRecall -> HatefulHighRecall, | |
| s.SpaceSafetyLabelType.ViolenceHighRecall -> ViolenceHighRecall, | |
| s.SpaceSafetyLabelType.HighToxicityModelScore -> HighToxicityModelScore, | |
| s.SpaceSafetyLabelType.UkraineCrisisTopic -> UkraineCrisisTopic, | |
| s.SpaceSafetyLabelType.DoNotPublicPublish -> DoNotPublicPublish, | |
| s.SpaceSafetyLabelType.Reserved16 -> Deprecated, | |
| s.SpaceSafetyLabelType.Reserved17 -> Deprecated, | |
| s.SpaceSafetyLabelType.Reserved18 -> Deprecated, | |
| s.SpaceSafetyLabelType.Reserved19 -> Deprecated, | |
| s.SpaceSafetyLabelType.Reserved20 -> Deprecated, | |
| s.SpaceSafetyLabelType.Reserved21 -> Deprecated, | |
| s.SpaceSafetyLabelType.Reserved22 -> Deprecated, | |
| s.SpaceSafetyLabelType.Reserved23 -> Deprecated, | |
| s.SpaceSafetyLabelType.Reserved24 -> Deprecated, | |
| s.SpaceSafetyLabelType.Reserved25 -> Deprecated, | |
| ) | |
| private lazy val modelToThriftMap: Map[SpaceSafetyLabelType, s.SpaceSafetyLabelType] = | |
| (for ((k, v) <- thriftToModelMap) yield (v, k)) ++ Map( | |
| Deprecated -> s.SpaceSafetyLabelType.EnumUnknownSpaceSafetyLabelType(DeprecatedEnumValue), | |
| ) | |
| case object DoNotAmplify extends SpaceSafetyLabelType | |
| case object CoordinatedHarmfulActivityHighRecall extends SpaceSafetyLabelType | |
| case object UntrustedUrl extends SpaceSafetyLabelType | |
| case object MisleadingHighRecall extends SpaceSafetyLabelType | |
| case object NsfwHighPrecision extends SpaceSafetyLabelType | |
| case object NsfwHighRecall extends SpaceSafetyLabelType | |
| case object CivicIntegrityMisinfo extends SpaceSafetyLabelType | |
| case object MedicalMisinfo extends SpaceSafetyLabelType | |
| case object GenericMisinfo extends SpaceSafetyLabelType | |
| case object DmcaWithheld extends SpaceSafetyLabelType | |
| case object HatefulHighRecall extends SpaceSafetyLabelType | |
| case object ViolenceHighRecall extends SpaceSafetyLabelType | |
| case object HighToxicityModelScore extends SpaceSafetyLabelType | |
| case object UkraineCrisisTopic extends SpaceSafetyLabelType | |
| case object DoNotPublicPublish extends SpaceSafetyLabelType | |
| case object Deprecated extends SpaceSafetyLabelType | |
| case object Unknown extends SpaceSafetyLabelType | |
| def fromThrift(safetyLabelType: s.SpaceSafetyLabelType): SpaceSafetyLabelType = | |
| thriftToModelMap.get(safetyLabelType) match { | |
| case Some(spaceSafetyLabelType) => spaceSafetyLabelType | |
| case _ => | |
| safetyLabelType match { | |
| case s.SpaceSafetyLabelType.EnumUnknownSpaceSafetyLabelType(DeprecatedEnumValue) => | |
| Deprecated | |
| case _ => | |
| Unknown | |
| } | |
| } | |
| def toThrift(safetyLabelType: SpaceSafetyLabelType): s.SpaceSafetyLabelType = { | |
| modelToThriftMap | |
| .get(safetyLabelType).getOrElse(UnknownThriftSafetyLabelType) | |
| } | |
| } |