Package org.apache.tomcat.websocket.pojo

## Class PojoMessageHandlerWholeBase<T>

- java.lang.Object
- - org.apache.tomcat.websocket.pojo.PojoMessageHandlerBase<T>
  - - org.apache.tomcat.websocket.pojo.PojoMessageHandlerWholeBase<T>

- Type Parameters:
    `T` - The type of message to handle
  All Implemented Interfaces:
    `MessageHandler`, `MessageHandler.Whole<T>`, `WrappedMessageHandler`
  Direct Known Subclasses:
    `PojoMessageHandlerWholeBinary`, `PojoMessageHandlerWholePong`, `PojoMessageHandlerWholeText`

      public abstract class PojoMessageHandlerWholeBase<T>
      extends PojoMessageHandlerBase<T>
      implements MessageHandler.Whole<T>

  Common implementation code for the POJO whole message handlers. All the real work is done in this class and in the superclass.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface jakarta.websocket.MessageHandler

      `MessageHandler.Partial<T>, MessageHandler.Whole<T>`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected List<Decoder>` | `decoders` |

    - ### Fields inherited from class org.apache.tomcat.websocket.pojo.PojoMessageHandlerBase

      `convert, indexPayload, indexSession, maxMessageSize, method, params, pojo, session`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PojoMessageHandlerWholeBase​(Object pojo, Method method, Session session, Object[] params, int indexPayload, boolean convert, int indexSession, long maxMessageSize)` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected Object` | `convert​(T message)` |
    `protected Decoder` | `createDecoderInstance​(Class<? extends Decoder> clazz)` |
    `protected abstract Object` | `decode​(T message)` |
    `protected void` | `onClose()` |
    `void` | `onMessage​(T message)` | Called when a whole message is available to be processed.

    - ### Methods inherited from class org.apache.tomcat.websocket.pojo.PojoMessageHandlerBase

      `getMaxMessageSize, getWrappedHandler, handlePojoMethodException, processResult`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### decoders

          protected final List<Decoder> decoders

  - ### Constructor Detail

    - #### PojoMessageHandlerWholeBase

          public PojoMessageHandlerWholeBase​(Object pojo,
                                             Method method,
                                             Session session,
                                             Object[] params,
                                             int indexPayload,
                                             boolean convert,
                                             int indexSession,
                                             long maxMessageSize)

  - ### Method Detail

    - #### createDecoderInstance

          protected Decoder createDecoderInstance​(Class<? extends Decoder> clazz)
                                           throws ReflectiveOperationException,
                                                  NamingException

      Throws:
        `ReflectiveOperationException`
        `NamingException`

    - #### onMessage

          public final void onMessage​(T message)

      Description copied from interface: `jakarta.websocket.MessageHandler.Whole`
      Called when a whole message is available to be processed.
      Specified by:
        `onMessage` in interface `MessageHandler.Whole<T>`
      Parameters:
        `message` - The message

    - #### onClose

          protected void onClose()

    - #### convert

          protected Object convert​(T message)

    - #### decode

          protected abstract Object decode​(T message)
                                    throws DecodeException

      Throws:
        `DecodeException`