Top Description Inners Fields Constructors Methods
org.glassfish.tyrus.core

public Class MessageHandlerManager

extends Object
Class Inheritance
Imports
java.io.InputStream, .Reader, .Serializable, java.nio.ByteBuffer, java.util.ArrayList, .Arrays, .Collections, .Comparator, .HashMap, .HashSet, .Iterator, .List, .Map, .Set, jakarta.websocket.Decoder, .MessageHandler, .PongMessage, org.glassfish.tyrus.core.coder.CoderWrapper, org.glassfish.tyrus.core.l10n.LocalizationMessages

Manages registered MessageHandlers and checks whether the new ones may be registered.
Authors
Stepan Kopriva, Pavel Bucek
See Also
MessageHandler, jakarta.websocket.OnMessage

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class

Field Summary

Modifier and TypeField and Description
private boolean
private boolean
private final List<Class<? extends Decoder>>
private boolean
private Set<MessageHandler>
private static final List<Class<?>>
private static final Class<?>
private static final Class<?>
private boolean
private boolean
private final Map<Class<?>, MessageHandler>
private boolean
private boolean
private static final List<Class<?>>
private static final List<Class<?>>

Constructor Summary

AccessConstructor and Description
public
MessageHandlerManager()

Construct manager with no decoders.

pack-priv
MessageHandlerManager(List<Class<? extends Decoder>>
registered Decoders.
decoders
)

Construct manager.

Method Summary

Modifier and TypeMethod and Description
public void
addMessageHandler(MessageHandler
MessageHandler to be added to the manager.
handler
)

Add MessageHandler to the manager.

public <
type of message to be handled.
T
>
void
addMessageHandler(Class<T>
type handled by MessageHandler.
clazz
,
MessageHandler.Whole<T>
MessageHandler to be added.
handler
)

Add MessageHandler.Whole to the manager.

public <
type of message to be handled.
T
>
void
addMessageHandler(Class<T>
type handled by MessageHandler.
clazz
,
MessageHandler.Partial<T>
MessageHandler to be added.
handler
)

Add MessageHandler.Partial to the manager.

private boolean
checkBinaryDecoders(Class<?> requiredType)

private boolean
checkTextDecoders(Class<?> requiredType)

public static MessageHandlerManager

Returns:

constructed message handler manager.
fromDecoderClasses
(List<Class<? extends Decoder>>
registered Decoders.
decoderClasses
)

Construct manager.

pack-priv static MessageHandlerManager
fromDecoderInstances(List<Decoder>
registered Decoders.
decoders
)

Construct manager.

private static Class<?>
public Set<MessageHandler>

Returns:

unmodifiable Set of registered MessageHandlers.
getMessageHandlers
()

Get all successfully registered MessageHandlers.

public List<Map.Entry<Class<?>, MessageHandler>>
pack-priv Map<Class<?>, MessageHandler>
private boolean
isBinaryDecoder(Class<? extends Decoder> decoderClass)

public boolean
pack-priv boolean
pack-priv boolean
pack-priv boolean
public boolean
private boolean
isTextDecoder(Class<? extends Decoder> decoderClass)

pack-priv boolean
pack-priv boolean
private <T> void
public void
removeMessageHandler(MessageHandler
handler which will be removed.
handler
)

Remove MessageHandler from the manager.

private void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

binaryHandlerPresentback to summary
private boolean binaryHandlerPresent
binaryWholeHandlerPresentback to summary
private boolean binaryWholeHandlerPresent
decodersback to summary
private final List<Class<? extends Decoder>> decoders
inputStreamHandlerPresentback to summary
private boolean inputStreamHandlerPresent
messageHandlerCacheback to summary
private Set<MessageHandler> messageHandlerCache
PARTIAL_BINARY_HANDLER_TYPESback to summary
private static final List<Class<?>> PARTIAL_BINARY_HANDLER_TYPES
PARTIAL_TEXT_HANDLER_TYPEback to summary
private static final Class<?> PARTIAL_TEXT_HANDLER_TYPE
PONG_HANDLER_TYPEback to summary
private static final Class<?> PONG_HANDLER_TYPE
pongHandlerPresentback to summary
private boolean pongHandlerPresent
readerHandlerPresentback to summary
private boolean readerHandlerPresent
registeredHandlersback to summary
private final Map<Class<?>, MessageHandler> registeredHandlers
textHandlerPresentback to summary
private boolean textHandlerPresent
textWholeHandlerPresentback to summary
private boolean textWholeHandlerPresent
WHOLE_BINARY_HANDLER_TYPESback to summary
private static final List<Class<?>> WHOLE_BINARY_HANDLER_TYPES
WHOLE_TEXT_HANDLER_TYPESback to summary
private static final List<Class<?>> WHOLE_TEXT_HANDLER_TYPES

Constructor Detail

MessageHandlerManagerback to summary
public MessageHandlerManager()

Construct manager with no decoders.

MessageHandlerManagerback to summary
pack-priv MessageHandlerManager(List<Class<? extends Decoder>> decoders)

Construct manager.

Parameters
decoders:List<Class<? extends Decoder>>

registered Decoders.

Method Detail

addMessageHandlerback to summary
public void addMessageHandler(MessageHandler handler) throws IllegalStateException

Add MessageHandler to the manager.

Parameters
handler:MessageHandler

MessageHandler to be added to the manager.

addMessageHandlerback to summary
public <T> void addMessageHandler(Class<T> clazz, MessageHandler.Whole<T> handler) throws IllegalStateException

Add MessageHandler.Whole to the manager.

Parameters
<T>
type of message to be handled.
clazz:Class<T>

type handled by MessageHandler.

handler:MessageHandler.Whole<T>

MessageHandler to be added.

Exceptions
IllegalStateException:
when the message handler cannot be added.
addMessageHandlerback to summary
public <T> void addMessageHandler(Class<T> clazz, MessageHandler.Partial<T> handler) throws IllegalStateException

Add MessageHandler.Partial to the manager.

Parameters
<T>
type of message to be handled.
clazz:Class<T>

type handled by MessageHandler.

handler:MessageHandler.Partial<T>

MessageHandler to be added.

Exceptions
IllegalStateException:
when the message handler cannot be added.
checkBinaryDecodersback to summary
private boolean checkBinaryDecoders(Class<?> requiredType)
checkTextDecodersback to summary
private boolean checkTextDecoders(Class<?> requiredType)
fromDecoderClassesback to summary
public static MessageHandlerManager fromDecoderClasses(List<Class<? extends Decoder>> decoderClasses)

Construct manager.

Parameters
decoderClasses:List<Class<? extends Decoder>>

registered Decoders.

Returns:MessageHandlerManager

constructed message handler manager.

fromDecoderInstancesback to summary
pack-priv static MessageHandlerManager fromDecoderInstances(List<Decoder> decoders)

Construct manager.

Parameters
decoders:List<Decoder>

registered Decoders.

getHandlerTypeback to summary
private static Class<?> getHandlerType(MessageHandler handler)
getMessageHandlersback to summary
public Set<MessageHandler> getMessageHandlers()

Get all successfully registered MessageHandlers.

Returns:Set<MessageHandler>

unmodifiable Set of registered MessageHandlers.

getOrderedWholeMessageHandlersback to summary
public List<Map.Entry<Class<?>, MessageHandler>> getOrderedWholeMessageHandlers()
getRegisteredHandlersback to summary
pack-priv Map<Class<?>, MessageHandler> getRegisteredHandlers()
isBinaryDecoderback to summary
private boolean isBinaryDecoder(Class<? extends Decoder> decoderClass)
isInputStreamHandlerPresentback to summary
public boolean isInputStreamHandlerPresent()
isPartialBinaryHandlerPresentback to summary
pack-priv boolean isPartialBinaryHandlerPresent()
isPartialTextHandlerPresentback to summary
pack-priv boolean isPartialTextHandlerPresent()
isPongHandlerPresentback to summary
pack-priv boolean isPongHandlerPresent()
isReaderHandlerPresentback to summary
public boolean isReaderHandlerPresent()
isTextDecoderback to summary
private boolean isTextDecoder(Class<? extends Decoder> decoderClass)
isWholeBinaryHandlerPresentback to summary
pack-priv boolean isWholeBinaryHandlerPresent()
isWholeTextHandlerPresentback to summary
pack-priv boolean isWholeTextHandlerPresent()
registerMessageHandlerback to summary
private <T> void registerMessageHandler(Class<T> clazz, MessageHandler handler)
removeMessageHandlerback to summary
public void removeMessageHandler(MessageHandler handler)

Remove MessageHandler from the manager.

Parameters
handler:MessageHandler

handler which will be removed.

throwExceptionback to summary
private void throwException(String text) throws IllegalStateException
org.glassfish.tyrus.core back to summary

private Class MessageHandlerManager.MessageHandlerComparator

extends Object
implements Comparator<Map.Entry<Class<?>, MessageHandler>>, Serializable
Class Inheritance
  • java.lang.Object
  • org.glassfish.tyrus.core.MessageHandlerManager.MessageHandlerComparator
All Implemented Interfaces
java.io.Serializable, java.util.Comparator

Field Summary

Modifier and TypeField and Description
private static final long

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public int
compare(Map.Entry<Class<?>, MessageHandler>
the first object to be compared.
o1
,
Map.Entry<Class<?>, MessageHandler>
the second object to be compared.
o2
)

Implements java.util.Comparator.compare.

Compares its two arguments for order.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

serialVersionUIDback to summary
private static final long serialVersionUID

Constructor Detail

MessageHandlerComparatorback to summary
private MessageHandlerComparator()

Method Detail

compareback to summary
public int compare(Map.Entry<Class<?>, MessageHandler> o1, Map.Entry<Class<?>, MessageHandler> o2)

Implements java.util.Comparator.compare.

Doc from java.util.Comparator.compare.

Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

The implementor must ensure that signum(compare(x, y)) == -signum(compare(y, x)) for all x and y. (This implies that compare(x, y) must throw an exception if and only if compare(y, x) throws an exception.)

The implementor must also ensure that the relation is transitive: ((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0.

Finally, the implementor must ensure that compare(x, y)==0 implies that signum(compare(x, z))==signum(compare(y, z)) for all z.

Parameters
o1:Map.Entry<Class<?>, MessageHandler>

the first object to be compared.

o2:Map.Entry<Class<?>, MessageHandler>

the second object to be compared.

Returns:int

a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

Annotations
@Override