def filter()

in tormenta-core/src/main/scala/com/twitter/tormenta/scheme/Scheme.scala [62:86]


  def filter(fn: T => Boolean): Scheme[T] =
    Scheme(self.decode(_).filter(fn))
      .withHandler(self.handle(_).filter(fn))

  def map[R](fn: T => R): Scheme[R] =
    Scheme(self.decode(_).map(fn))
      .withHandler(self.handle(_).map(fn))

  def flatMap[R](fn: T => TraversableOnce[R]): Scheme[R] =
    Scheme(self.decode(_).flatMap(fn))
      .withHandler(self.handle(_).flatMap(fn))

  private def cast(t: Any): JList[AnyRef] = new Values(t.asInstanceOf[AnyRef])
  private def toJava(items: TraversableOnce[Any]) =
    if (!items.isEmpty)
      items.map(cast).toIterable.asJava
    else
      null

  override def deserialize(bytes: ByteBuffer) =
    try {
      toJava(decode(bytes))
    } catch {
      case t: Throwable => toJava(handle(t))
    }