in server/src/main/scala/com/twitter/server/handler/TunableHandler.scala [132:156]
private[this] def toTunableMapView(id: String, tunableMap: TunableMap): TunableMapView = {
val currentsMap: Map[String, TunableMap.Entry[_]] = tunableMap.entries.map {
case entry @ TunableMap.Entry(key, _, _) => key.id -> entry
}.toMap
val componentsMap = mutable.Map.empty[String, mutable.ArrayBuffer[Component]]
for {
map <- TunableMap.components(tunableMap)
entry <- map.entries
} yield {
val components: mutable.ArrayBuffer[Component] =
componentsMap.getOrElse(entry.key.id, mutable.ArrayBuffer.empty[Component])
componentsMap.put(entry.key.id, components += Component(entry.source, entry.value.toString))
}
val tunables = componentsMap.map {
case (id, components) =>
val md = currentsMap(id)
TunableView(id, md.value.toString, components.toSeq)
}.toSeq
TunableMapView(id, tunables)
}