Class JSONMethodCodec

  • All Implemented Interfaces:
    MethodCodec

    public final class JSONMethodCodec
    extends Object
    implements MethodCodec
    A MethodCodec using UTF-8 encoded JSON method calls and result envelopes.

    This codec is guaranteed to be compatible with the corresponding JSONMethodCodec on the Dart side. These parts of the Flutter SDK are evolved synchronously.

    Values supported as methods arguments and result payloads are those supported by JSONMessageCodec.

    • Method Detail

      • decodeMethodCall

        @NonNull
        public MethodCall decodeMethodCall​(@NonNull
                                           ByteBuffer message)
        Description copied from interface: MethodCodec
        Decodes a message call from binary.
        Specified by:
        decodeMethodCall in interface MethodCodec
        Parameters:
        message - the binary encoding of the method call as a ByteBuffer.
        Returns:
        a MethodCall representation of the bytes between the given buffer's current position and its limit.
      • encodeSuccessEnvelope

        @NonNull
        public ByteBuffer encodeSuccessEnvelope​(@Nullable
                                                Object result)
        Description copied from interface: MethodCodec
        Encodes a successful result into a binary envelope message.
        Specified by:
        encodeSuccessEnvelope in interface MethodCodec
        Parameters:
        result - The result value, possibly null.
        Returns:
        a ByteBuffer containing the encoding between position 0 and the current position.
      • encodeErrorEnvelope

        @NonNull
        public ByteBuffer encodeErrorEnvelope​(@NonNull
                                              String errorCode,
                                              @Nullable
                                              String errorMessage,
                                              @Nullable
                                              Object errorDetails)
        Description copied from interface: MethodCodec
        Encodes an error result into a binary envelope message.
        Specified by:
        encodeErrorEnvelope in interface MethodCodec
        Parameters:
        errorCode - An error code String.
        errorMessage - An error message String, possibly null.
        errorDetails - Error details, possibly null. Consider supporting Throwable in your codec. This is the most common value passed to this field.
        Returns:
        a ByteBuffer containing the encoding between position 0 and the current position.
      • encodeErrorEnvelopeWithStacktrace

        @NonNull
        public ByteBuffer encodeErrorEnvelopeWithStacktrace​(@NonNull
                                                            String errorCode,
                                                            @Nullable
                                                            String errorMessage,
                                                            @Nullable
                                                            Object errorDetails,
                                                            @Nullable
                                                            String errorStacktrace)
        Description copied from interface: MethodCodec
        Encodes an error result into a binary envelope message with the native stacktrace.
        Specified by:
        encodeErrorEnvelopeWithStacktrace in interface MethodCodec
        Parameters:
        errorCode - An error code String.
        errorMessage - An error message String, possibly null.
        errorDetails - Error details, possibly null. Consider supporting Throwable in your codec. This is the most common value passed to this field.
        errorStacktrace - Platform stacktrace for the error. possibly null.
        Returns:
        a ByteBuffer containing the encoding between position 0 and the current position.
      • decodeEnvelope

        @NonNull
        public Object decodeEnvelope​(@NonNull
                                     ByteBuffer envelope)
        Description copied from interface: MethodCodec
        Decodes a result envelope from binary.
        Specified by:
        decodeEnvelope in interface MethodCodec
        Parameters:
        envelope - the binary encoding of a result envelope as a ByteBuffer.
        Returns:
        the enveloped result Object.