
io.fintrospect.parameters.Header.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fintrospect_2.10 Show documentation
Show all versions of fintrospect_2.10 Show documentation
Library that adds self-documentation to Finagle server endpoint services
package io.fintrospect.parameters
import com.twitter.finagle.http.Message
import io.fintrospect.parameters.types._
/**
* Parameters which are bound to request/response headers
*/
object Header {
trait Mandatory[T] extends MandatoryParameter[Message, T, RequestBinding] {
self: ExtParameter[Message, T, RequestBinding] =>
}
trait MandatorySeq[T] extends MandatoryParameter[Message, Seq[T], RequestBinding] {
self: ExtParameter[Message, Seq[T], RequestBinding] =>
}
trait Optional[T] extends OptionalParameter[Message, T, RequestBinding] {
self: ExtParameter[Message, T, RequestBinding] =>
}
trait OptionalSeq[T] extends OptionalParameter[Message, Seq[T], RequestBinding] {
self: ExtParameter[Message, Seq[T], RequestBinding] =>
}
val required = new Parameters[HeaderParameter, Mandatory] with MultiParameters[MultiHeaderParameter, MandatorySeq] {
override def apply[T](spec: ParameterSpec[T]) = new SingleHeaderParameter(spec) with Mandatory[T]
override val multi = new Parameters[MultiHeaderParameter, MandatorySeq] {
override def apply[T](spec: ParameterSpec[T]) = new MultiHeaderParameter(spec) with MandatorySeq[T]
}
}
val optional = new Parameters[HeaderParameter, Optional] with MultiParameters[MultiHeaderParameter, OptionalSeq] {
override def apply[T](spec: ParameterSpec[T]) = new SingleHeaderParameter(spec) with Optional[T]
override val multi = new Parameters[MultiHeaderParameter, OptionalSeq] {
override def apply[T](spec: ParameterSpec[T]) = new MultiHeaderParameter(spec) with OptionalSeq[T]
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy