Class Marshaller<A,B>

java.lang.Object
akka.http.javadsl.marshalling.Marshaller<A,B>

public class Marshaller<A,B> extends Object
  • Constructor Details

    • Marshaller

      public Marshaller()
  • Method Details

    • fromScala

      public static <A, B> Marshaller<A,B> fromScala(Marshaller<A,B> scalaMarshaller)
    • toOption

      public static <T> scala.Option<T> toOption(Optional<T> opt)
    • downcast

      public static <A, B1, B2 extends B1> Marshaller<A,B1> downcast(Marshaller<A,B2> m)
      Safe downcasting of the output type of the marshaller to a superclass.

      Marshaller is covariant in B, i.e. if B2 is a subclass of B1, then Marshaller[X,B2] is OK to use where Marshaller[X,B1] is expected.

      Parameters:
      m - (undocumented)
      Returns:
      (undocumented)
    • downcast

      public static <A, B1, B2 extends B1> Marshaller<A,B1> downcast(Marshaller<A,B2> m, Class<B1> target)
      Safe downcasting of the output type of the marshaller to a superclass.

      Marshaller is covariant in B, i.e. if B2 is a subclass of B1, then Marshaller[X,B2] is OK to use where Marshaller[X,B1] is expected.

      Parameters:
      m - (undocumented)
      target - (undocumented)
      Returns:
      (undocumented)
    • stringToEntity

      public static Marshaller<String,RequestEntity> stringToEntity()
    • byteArrayToEntity

      public static Marshaller<byte[],RequestEntity> byteArrayToEntity()
    • charArrayToEntity

      public static Marshaller<char[],RequestEntity> charArrayToEntity()
    • byteStringToEntity

      public static Marshaller<akka.util.ByteString,RequestEntity> byteStringToEntity()
    • formDataToEntity

      public static Marshaller<FormData,RequestEntity> formDataToEntity()
    • byteStringMarshaller

      public static Marshaller<akka.util.ByteString,RequestEntity> byteStringMarshaller(ContentType t)
    • optionMarshaller

      public static <A> Marshaller<Optional<A>,RequestEntity> optionMarshaller(Marshaller<A,RequestEntity> m)
      Marshals an Optional[A] to a RequestEntity an empty optional will yield an empty entity.
      Parameters:
      m - (undocumented)
      Returns:
      (undocumented)
    • wrapEntity

      public static <A, C> Marshaller<C,RequestEntity> wrapEntity(BiFunction<scala.concurrent.ExecutionContext,C,A> f, Marshaller<A,RequestEntity> m, MediaType mediaType)
    • wrapEntity

      public static <A, C, E extends RequestEntity> Marshaller<C,RequestEntity> wrapEntity(Function<C,A> f, Marshaller<A,E> m, MediaType mediaType)
    • entityToOKResponse

      public static <A> Marshaller<A,HttpResponse> entityToOKResponse(Marshaller<A,? extends RequestEntity> m)
    • entityToResponse

      public static <A, R extends RequestEntity> Marshaller<A,HttpResponse> entityToResponse(StatusCode status, Marshaller<A,R> m)
    • entityToResponse

      public static <A> Marshaller<A,HttpResponse> entityToResponse(StatusCode status, Iterable<HttpHeader> headers, Marshaller<A,? extends RequestEntity> m)
    • entityToOKResponse

      public static <A> Marshaller<A,HttpResponse> entityToOKResponse(Iterable<HttpHeader> headers, Marshaller<A,? extends RequestEntity> m)
    • oneOf

      public static <A, B> Marshaller<A,B> oneOf(scala.collection.immutable.Seq<Marshaller<A,B>> ms)
      Helper for creating a "super-marshaller" from a number of "sub-marshallers". Content-negotiation determines, which "sub-marshaller" eventually gets to do the job.

      Please note that all passed in marshallers will actually be invoked in order to get the Marshalling object out of them, and later decide which of the marshallings should be returned. This is by-design, however in ticket as discussed in ticket https://github.com/akka/akka-http/issues/243 it MAY be changed in later versions of Akka HTTP.

      Parameters:
      ms - (undocumented)
      Returns:
      (undocumented)
    • oneOf

      public static <A, B> Marshaller<A,B> oneOf(Marshaller<A,B> m1, Marshaller<A,B> m2)
      Helper for creating a "super-marshaller" from a number of "sub-marshallers". Content-negotiation determines, which "sub-marshaller" eventually gets to do the job.

      Please note that all marshallers will actually be invoked in order to get the Marshalling object out of them, and later decide which of the marshallings should be returned. This is by-design, however in ticket as discussed in ticket https://github.com/akka/akka-http/issues/243 it MAY be changed in later versions of Akka HTTP.

      Parameters:
      m1 - (undocumented)
      m2 - (undocumented)
      Returns:
      (undocumented)
    • oneOf

      public static <A, B> Marshaller<A,B> oneOf(Marshaller<A,B> m1, Marshaller<A,B> m2, Marshaller<A,B> m3)
      Helper for creating a "super-marshaller" from a number of "sub-marshallers". Content-negotiation determines, which "sub-marshaller" eventually gets to do the job.

      Please note that all marshallers will actually be invoked in order to get the Marshalling object out of them, and later decide which of the marshallings should be returned. This is by-design, however in ticket as discussed in ticket https://github.com/akka/akka-http/issues/243 it MAY be changed in later versions of Akka HTTP.

      Parameters:
      m1 - (undocumented)
      m2 - (undocumented)
      m3 - (undocumented)
      Returns:
      (undocumented)
    • oneOf

      public static <A, B> Marshaller<A,B> oneOf(Marshaller<A,B> m1, Marshaller<A,B> m2, Marshaller<A,B> m3, Marshaller<A,B> m4)
      Helper for creating a "super-marshaller" from a number of "sub-marshallers". Content-negotiation determines, which "sub-marshaller" eventually gets to do the job.

      Please note that all marshallers will actually be invoked in order to get the Marshalling object out of them, and later decide which of the marshallings should be returned. This is by-design, however in ticket as discussed in ticket https://github.com/akka/akka-http/issues/243 it MAY be changed in later versions of Akka HTTP.

      Parameters:
      m1 - (undocumented)
      m2 - (undocumented)
      m3 - (undocumented)
      m4 - (undocumented)
      Returns:
      (undocumented)
    • oneOf

      public static <A, B> Marshaller<A,B> oneOf(Marshaller<A,B> m1, Marshaller<A,B> m2, Marshaller<A,B> m3, Marshaller<A,B> m4, Marshaller<A,B> m5)
      Helper for creating a "super-marshaller" from a number of "sub-marshallers". Content-negotiation determines, which "sub-marshaller" eventually gets to do the job.

      Please note that all marshallers will actually be invoked in order to get the Marshalling object out of them, and later decide which of the marshallings should be returned. This is by-design, however in ticket as discussed in ticket https://github.com/akka/akka-http/issues/243 it MAY be changed in later versions of Akka HTTP.

      Parameters:
      m1 - (undocumented)
      m2 - (undocumented)
      m3 - (undocumented)
      m4 - (undocumented)
      m5 - (undocumented)
      Returns:
      (undocumented)
    • withFixedContentType

      public static <A, B> Marshaller<A,B> withFixedContentType(ContentType contentType, Function<A,B> f)
      Helper for creating a synchronous Marshaller to content with a fixed charset from the given function.
      Parameters:
      contentType - (undocumented)
      f - (undocumented)
      Returns:
      (undocumented)
    • withOpenCharset

      public static <A, B> Marshaller<A,B> withOpenCharset(MediaType.WithOpenCharset mediaType, BiFunction<A,HttpCharset,B> f)
      Helper for creating a synchronous Marshaller to content with a negotiable charset from the given function.
      Parameters:
      mediaType - (undocumented)
      f - (undocumented)
      Returns:
      (undocumented)
    • opaque

      public static <A, B> Marshaller<A,B> opaque(Function<A,B> f)
      Helper for creating a synchronous Marshaller to non-negotiable content from the given function.
      Parameters:
      f - (undocumented)
      Returns:
      (undocumented)
    • asScalaToResponseMarshaller

      public static <T> Marshaller<T,HttpResponse> asScalaToResponseMarshaller(Marshaller<T,HttpResponse> m)
    • asScalaEntityMarshaller

      public static <T> Marshaller<T,RequestEntity> asScalaEntityMarshaller(Marshaller<T,RequestEntity> m)
    • asScala

      public Marshaller<A,B> asScala()
    • asScalaCastOutput

      public <C> Marshaller<A,C> asScalaCastOutput()
      INTERNAL API: involves unsafe cast (however is very fast)
    • map

      public <C> Marshaller<A,C> map(Function<B,C> f)
    • compose

      public <C> Marshaller<C,B> compose(Function<C,A> f)