def apply()

in finagle-toggle/src/main/scala/com/twitter/finagle/toggle/StandardToggleMap.scala [82:143]


  def apply(
    libraryName: String,
    statsReceiver: StatsReceiver,
    duplicateHandling: JsonToggleMap.DuplicateHandling = JsonToggleMap.FailParsingOnDuplicateId
  ): ToggleMap.Mutable =
    apply(
      libraryName,
      statsReceiver,
      ToggleMap.newMutable(s"Mutable($libraryName)"),
      ServerInfo(),
      libs,
      duplicateHandling = duplicateHandling
    )

  /** exposed for testing */
  private[toggle] def apply(
    libraryName: String,
    statsReceiver: StatsReceiver,
    mutable: ToggleMap.Mutable,
    serverInfo: ServerInfo,
    registry: ConcurrentMap[String, ToggleMap.Mutable],
    duplicateHandling: JsonToggleMap.DuplicateHandling
  ): ToggleMap.Mutable = {
    Toggle.validateId(libraryName)

    val svcsJson =
      loadJsonConfig(
        s"$libraryName-service",
        serverInfo,
        JsonToggleMap.DescriptionIgnored,
        JsonToggleMap.FailParsingOnDuplicateId)
    val libsJson = loadJsonConfig(
      libraryName,
      serverInfo,
      JsonToggleMap.DescriptionRequired,
      JsonToggleMap.FailParsingOnDuplicateId)

    val stacked = ToggleMap.of(
      mutable,
      ToggleMap.flags,
      svcsJson,
      ServiceLoadedToggleMap(libraryName),
      libsJson
    )
    val observed = ToggleMap.observed(
      stacked,
      statsReceiver
        .scope("toggles")
        .hierarchicalScope(libraryName)
        .label("library", libraryName)
    )
    val toggleMap = new ToggleMap.Mutable with ToggleMap.Proxy {
      def underlying: ToggleMap = observed
      def put(id: String, fraction: Double): Unit = mutable.put(id, fraction)
      def remove(id: String): Unit = mutable.remove(id)
    }
    val prev = registry.putIfAbsent(libraryName, toggleMap)
    if (prev == null)
      toggleMap
    else
      prev
  }