All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.twitter.finagle.serverset2.Parse.scala Maven / Gradle / Ivy

The newest version!
package com.twitter.finagle.serverset2

import com.fasterxml.jackson.databind.ObjectMapper
import com.twitter.util.NonFatal
import scala.collection.JavaConverters._

private[serverset2] object IntObj {
  def unapply(o: Object): Option[Int] = o match {
    case i: java.lang.Integer => Some(i)
    case _ => None
  }
}

private[serverset2] object DoubleObj {
  def unapply(o: Object): Option[Double] = o match {
    case d: java.lang.Double => Some(d)
    case _ => None
  }
}

private[serverset2] object StringObj {
  def unapply(o: Object): Option[String] = o match {
    case s: String => Some(s)
    case _ => None
  }
}

private[serverset2] object SeqObj {
  def unapply(o: Object): Option[Seq[Object]] = o match {
    case l: java.util.List[_] => Some(l.asScala.toSeq.asInstanceOf[Seq[Object]])
    case _=> None
  }
}

private[serverset2] object DictObj {
  def unapply(o: Object): Option[Object => Option[Object]] = o match {
    case m: java.util.Map[_, _] => 
      val mm = m.asInstanceOf[java.util.Map[Object, Object]]
      Some(key => Option(mm.get(key)))
    case _ => None
  }
}

private[serverset2] object JsonDict {
  def apply(json: String): (Object => Option[Object]) = {
    val m = new ObjectMapper
    val o = try m.readValue(json, classOf[java.util.Map[Object, Object]]) catch { 
      case NonFatal(_) => return Function.const(None)
    }

    key => Option(o.get(key))
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy