MaybeSerializedSignedTransaction
Keywords: net.corda.core.flows.MaybeSerializedSignedTransaction class
Date: 2023-09-18

net.corda.core.flows

## Class MaybeSerializedSignedTransaction

- net.corda.core.flows.MaybeSerializedSignedTransaction

- All Implemented Interfaces:
    NamedByHash

      public class MaybeSerializedSignedTransaction
      implements NamedByHash

  In the words of Matt working code is more important then pretty code. This class that contains code that may be serialized. If it were always serialized then the local disk fetch would need to serialize then de-serialize which wastes time. However over the wire we get batch fetch items serialized. This is because we need to get the exact length of the objects to pack them into the 10MB max message size buffer. We do not want to serialize them multiple times so it's a lot more efficient to send the byte stream.

- - ### Constructor Detail

    - #### MaybeSerializedSignedTransaction

          public MaybeSerializedSignedTransaction(@NotNull
                                                  SecureHash id,
                                                  @Nullable
                                                  SerializedBytes<net.corda.core.transactions.SignedTransaction> serialized,
                                                  @Nullable
                                                  SignedTransaction nonSerialised)

      In the words of Matt working code is more important then pretty code. This class that contains code that may be serialized. If it were always serialized then the local disk fetch would need to serialize then de-serialize which wastes time. However over the wire we get batch fetch items serialized. This is because we need to get the exact length of the objects to pack them into the 10MB max message size buffer. We do not want to serialize them multiple times so it's a lot more efficient to send the byte stream.

  - ### Method Detail

    - #### get

          @Nullable
          public SignedTransaction get()

    - #### isNull

          public boolean isNull()

    - #### serializedByteCount

          public int serializedByteCount()

    - #### payloadContentDescription

          @NotNull
          public java.lang.String payloadContentDescription()

    - #### getId

          @NotNull
          public SecureHash getId()

    - #### getSerialized

          @Nullable
          public SerializedBytes<net.corda.core.transactions.SignedTransaction> getSerialized()

    - #### getNonSerialised

          @Nullable
          public SignedTransaction getNonSerialised()