PojoMethodMapping (Apache Tomcat 11.0.24 API Documentation)
Description: declaration: package: org.apache.tomcat.websocket.pojo, class: PojoMethodMapping

# Class PojoMethodMapping

java.lang.Object
org.apache.tomcat.websocket.pojo.PojoMethodMapping

public class PojoMethodMapping extends Object
For a POJO class annotated with `ServerEndpoint`, an instance of this class creates and caches the method handler, method information and parameter information for the onXXX calls.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PojoMethodMapping(Class<?> clazzPojo, List<Class<? extends Decoder>> decoderClazzes, String wsPath, InstanceManager instanceManager)`
  Create a method mapping for the given POJO

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Set<MessageHandler>`
  `getMessageHandlers(Object pojo, Map<String,String> pathParameters, Session session, EndpointConfig config)`
  Create the message handlers for the given POJO instance.
  `Method`
  `getOnClose()`
  Return the method annotated with `OnClose`.
  `Object[]`
  `getOnCloseArgs(Map<String,String> pathParameters, Session session, CloseReason closeReason)`
  Build the arguments for the onClose method.
  `Method`
  `getOnError()`
  Return the method annotated with `OnError`.
  `Object[]`
  `getOnErrorArgs(Map<String,String> pathParameters, Session session, Throwable throwable)`
  Build the arguments for the onError method.
  `Method`
  `getOnOpen()`
  Return the method annotated with `OnOpen`.
  `Object[]`
  `getOnOpenArgs(Map<String,String> pathParameters, Session session, EndpointConfig config)`
  Build the arguments for the onOpen method.
  `String`
  `getWsPath()`
  Return the WebSocket path for this endpoint.
  `boolean`
  `hasMessageHandlers()`
  Check if there are any message handlers defined.

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### PojoMethodMapping

    public PojoMethodMapping(Class<?> clazzPojo, List<Class<? extends Decoder>> decoderClazzes, String wsPath, InstanceManager instanceManager) throws DeploymentException
    Create a method mapping for the given POJO
    Parameters:
      `clazzPojo` - POJO implementation class
      `decoderClazzes` - Set of potential decoder classes
      `wsPath` - Path at which the endpoint will be deployed
      `instanceManager` - Instance manager to use to create Decoder instances
    Throws:
      `DeploymentException` - If the mapping cannot be completed

- ## Method Details

  - ### getWsPath

    public String getWsPath()
    Return the WebSocket path for this endpoint.
    Returns:
      WebSocket path

  - ### getOnOpen

    public Method getOnOpen()
    Return the method annotated with `OnOpen`.
    Returns:
      OnOpen method or `null` if not defined

  - ### getOnOpenArgs

    public Object[] getOnOpenArgs(Map<String,String> pathParameters, Session session, EndpointConfig config) throws DecodeException
    Build the arguments for the onOpen method.
    Parameters:
      `pathParameters` - Path parameters
      `session` - WebSocket session
      `config` - Endpoint configuration
    Returns:
      Arguments for the onOpen method
    Throws:
      `DecodeException` - If a path parameter cannot be decoded

  - ### getOnClose

    public Method getOnClose()
    Return the method annotated with `OnClose`.
    Returns:
      OnClose method or `null` if not defined

  - ### getOnCloseArgs

    public Object[] getOnCloseArgs(Map<String,String> pathParameters, Session session, CloseReason closeReason) throws DecodeException
    Build the arguments for the onClose method.
    Parameters:
      `pathParameters` - Path parameters
      `session` - WebSocket session
      `closeReason` - Reason for the close
    Returns:
      Arguments for the onClose method
    Throws:
      `DecodeException` - If a path parameter cannot be decoded

  - ### getOnError

    public Method getOnError()
    Return the method annotated with `OnError`.
    Returns:
      OnError method or `null` if not defined

  - ### getOnErrorArgs

    public Object[] getOnErrorArgs(Map<String,String> pathParameters, Session session, Throwable throwable) throws DecodeException
    Build the arguments for the onError method.
    Parameters:
      `pathParameters` - Path parameters
      `session` - WebSocket session
      `throwable` - Throwable that triggered the error
    Returns:
      Arguments for the onError method
    Throws:
      `DecodeException` - If a path parameter cannot be decoded

  - ### hasMessageHandlers

    public boolean hasMessageHandlers()
    Check if there are any message handlers defined.
    Returns:
      `true` if there are message handlers

  - ### getMessageHandlers

    public Set<MessageHandler> getMessageHandlers(Object pojo, Map<String,String> pathParameters, Session session, EndpointConfig config)
    Create the message handlers for the given POJO instance.
    Parameters:
      `pojo` - POJO instance
      `pathParameters` - Path parameters
      `session` - WebSocket session
      `config` - Endpoint configuration
    Returns:
      Set of message handlers