Top Description Inners Fields Constructors Methods
org.springframework.messaging.rsocket

pack-priv final Class MetadataEncoder

extends Object
Class Inheritance
Imports
java.util.ArrayList, .Collections, .List, .Map, java.util.regex.Matcher, .Pattern, io.netty.buffer.ByteBuf, .ByteBufAllocator, .CompositeByteBuf, io.rsocket.metadata.WellKnownMimeType, reactor.core.publisher.Mono, org.springframework.core.ReactiveAdapter, .ResolvableType, org.springframework.core.codec.Encoder, org.springframework.core.io.buffer.DataBuffer, .DataBufferFactory, .NettyDataBufferFactory, org.springframework.lang.Nullable, org.springframework.util.Assert, .CollectionUtils, .MimeType, .ObjectUtils

Helps to collect metadata values and mime types, and encode them.
Author
Rossen Stoyanchev
Since
5.2

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class
MetadataEncoder.MetadataEntry

Holder for the metadata value and mime type.

Field Summary

Modifier and TypeField and Description
private final ByteBufAllocator
private boolean
private final boolean
private final List<MetadataEncoder.MetadataEntry>
private final MimeType
private static final Object
private String
private final RSocketStrategies
private static final Pattern
VARS_PATTERN

For route variable replacement.

Constructor Summary

AccessConstructor and Description
pack-priv
MetadataEncoder(MimeType metadataMimeType, RSocketStrategies strategies)

Method Summary

Modifier and TypeMethod and Description
private DataBuffer
private void
private DataBufferFactory
public Mono<DataBuffer>
encode()

Encode the collected metadata entries to a DataBuffer.

private DataBuffer
private <T> DataBuffer
private <T> DataBuffer
encodeEntry(Object value, MimeType mimeType)

private ByteBuf
private static String
expand(String route, Object... routeVars)

public MetadataEncoder
metadata(Object metadata, MimeType mimeType)

Add a metadata entry.

public MetadataEncoder
metadataAndOrRoute(Map<Object, MimeType> metadata, String route, Object[] vars)

Add route and/or metadata, both optional.

private Mono<List<MetadataEncoder.MetadataEntry>>
public MetadataEncoder
route(String route, Object... routeVars)

Set the route to a remote handler as described in RSocketRequester#route(String, Object...).

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

allocatorback to summary
private final ByteBufAllocator allocator
hasAsyncValuesback to summary
private boolean hasAsyncValues
isCompositeback to summary
private final boolean isComposite
metadataEntriesback to summary
private final List<MetadataEncoder.MetadataEntry> metadataEntries
metadataMimeTypeback to summary
private final MimeType metadataMimeType
NO_VALUEback to summary
private static final Object NO_VALUE
routeback to summary
private String route
Annotations
@Nullable
strategiesback to summary
private final RSocketStrategies strategies
VARS_PATTERNback to summary
private static final Pattern VARS_PATTERN

For route variable replacement.

Constructor Detail

MetadataEncoderback to summary
pack-priv MetadataEncoder(MimeType metadataMimeType, RSocketStrategies strategies)

Method Detail

asDataBufferback to summary
private DataBuffer asDataBuffer(ByteBuf byteBuf)
assertMetadataEntryCountback to summary
private void assertMetadataEntryCount()
bufferFactoryback to summary
private DataBufferFactory bufferFactory()
encodeback to summary
public Mono<DataBuffer> encode()

Encode the collected metadata entries to a DataBuffer.

See Also
PayloadUtils#createPayload(DataBuffer, DataBuffer)
encodeEntriesback to summary
private DataBuffer encodeEntries(List<MetadataEncoder.MetadataEntry> entries)
Annotations
@SuppressWarnings:deprecation
encodeEntryback to summary
private <T> DataBuffer encodeEntry(MetadataEncoder.MetadataEntry entry)
encodeEntryback to summary
private <T> DataBuffer encodeEntry(Object value, MimeType mimeType)
Annotations
@SuppressWarnings:unchecked
encodeRouteback to summary
private ByteBuf encodeRoute()
expandback to summary
private static String expand(String route, Object... routeVars)
metadataback to summary
public MetadataEncoder metadata(Object metadata, MimeType mimeType)

Add a metadata entry. If called more than once or in addition to route, composite metadata must be in use.

metadataAndOrRouteback to summary
public MetadataEncoder metadataAndOrRoute(Map<Object, MimeType> metadata, String route, Object[] vars)

Add route and/or metadata, both optional.

resolveAsyncMetadataback to summary
private Mono<List<MetadataEncoder.MetadataEntry>> resolveAsyncMetadata()
routeback to summary
public MetadataEncoder route(String route, Object... routeVars)

Set the route to a remote handler as described in RSocketRequester#route(String, Object...).

org.springframework.messaging.rsocket back to summary

private Class MetadataEncoder.MetadataEntry

extends Object
Class Inheritance
  • java.lang.Object
  • org.springframework.messaging.rsocket.MetadataEncoder.MetadataEntry

Holder for the metadata value and mime type.
Since
5.2.2

Field Summary

Modifier and TypeField and Description
private final MimeType
private final Object

Constructor Summary

AccessConstructor and Description
pack-priv
MetadataEntry(Object value, MimeType mimeType)

Method Summary

Modifier and TypeMethod and Description
public MimeType
public Object
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

mimeTypeback to summary
private final MimeType mimeType
valueback to summary
private final Object value

Constructor Detail

MetadataEntryback to summary
pack-priv MetadataEntry(Object value, MimeType mimeType)

Method Detail

mimeTypeback to summary
public MimeType mimeType()
valueback to summary
public Object value()