Class Marshaller<A,​B>


  • public class Marshaller<A,​B>
    extends java.lang.Object
    • Constructor Detail

      • Marshaller

        public Marshaller()
    • Method Detail

      • fromScala

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

        public static <T> scala.Option<T> toOption​(java.util.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,
                                                                                       java.lang.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)
      • optionMarshaller

        public static <A> Marshaller<java.util.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)
      • 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,
                                                                             java.util.function.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,
                                                                        java.util.function.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​(java.util.function.Function<A,​B> f)
        Helper for creating a synchronous Marshaller to non-negotiable content from the given function.
        Parameters:
        f - (undocumented)
        Returns:
        (undocumented)
      • asScalaCastOutput

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

        public <C> Marshaller<A,​C> map​(java.util.function.Function<B,​C> f)
      • compose

        public <C> Marshaller<C,​B> compose​(java.util.function.Function<C,​A> f)