Class DefaultMetadataExtractor
java.lang.Object
org.springframework.messaging.rsocket.DefaultMetadataExtractor
- All Implemented Interfaces:
 MetadataExtractor, MetadataExtractorRegistry
public class DefaultMetadataExtractor
extends Object
implements MetadataExtractor, MetadataExtractorRegistry
Default 
MetadataExtractor implementation that relies on
Decoders to deserialize the content of metadata entries.
By default only "message/x.rsocket.routing.v0" is extracted and
saved under MetadataExtractor.ROUTE_KEY. Use metadataToExtract
methods to specify other metadata mime types of interest to extract.
- Since:
 - 5.2
 - Author:
 - Rossen Stoyanchev
 
- 
Field Summary
Fields inherited from interface MetadataExtractor
ROUTE_KEY - 
Constructor Summary
ConstructorsConstructorDescriptionDefaultMetadataExtractor(List<org.springframework.core.codec.Decoder<?>> decoders) Constructor with list of decoders for de-serializing metadata entries.DefaultMetadataExtractor(org.springframework.core.codec.Decoder<?>... decoders) Constructor with decoders for de-serializing metadata entries. - 
Method Summary
Modifier and TypeMethodDescriptionextract(io.rsocket.Payload payload, org.springframework.util.MimeType metadataMimeType) Extract a map of values from the givenPayloadmetadata.List<? extends org.springframework.core.codec.Decoder<?>> Return a read-only list with the configured decoders.<T> voidmetadataToExtract(org.springframework.util.MimeType mimeType, Class<T> targetType, BiConsumer<T, Map<String, Object>> mapper) Variant ofMetadataExtractorRegistry.metadataToExtract(MimeType, Class, String)that allows custom logic to be used to map the decoded value to any number of values in the output map.<T> voidmetadataToExtract(org.springframework.util.MimeType mimeType, org.springframework.core.ParameterizedTypeReference<T> type, BiConsumer<T, Map<String, Object>> mapper) Variant ofMetadataExtractorRegistry.metadataToExtract(MimeType, Class, BiConsumer)that acceptsParameterizedTypeReferenceinstead ofClassfor specifying a target type with generic parameters.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface MetadataExtractorRegistry
metadataToExtract, metadataToExtract 
- 
Constructor Details
- 
DefaultMetadataExtractor
public DefaultMetadataExtractor(org.springframework.core.codec.Decoder<?>... decoders) Constructor with decoders for de-serializing metadata entries. - 
DefaultMetadataExtractor
Constructor with list of decoders for de-serializing metadata entries. 
 - 
 - 
Method Details
- 
getDecoders
Return a read-only list with the configured decoders. - 
metadataToExtract
public <T> void metadataToExtract(org.springframework.util.MimeType mimeType, Class<T> targetType, BiConsumer<T, Map<String, Object>> mapper) Description copied from interface:MetadataExtractorRegistryVariant ofMetadataExtractorRegistry.metadataToExtract(MimeType, Class, String)that allows custom logic to be used to map the decoded value to any number of values in the output map.- Specified by:
 metadataToExtractin interfaceMetadataExtractorRegistry- Type Parameters:
 T- the target value type- Parameters:
 mimeType- the mime type of metadata entries to extracttargetType- the target value type to decode tomapper- custom logic to add the decoded value to the output map
 - 
metadataToExtract
public <T> void metadataToExtract(org.springframework.util.MimeType mimeType, org.springframework.core.ParameterizedTypeReference<T> type, BiConsumer<T, Map<String, Object>> mapper) Description copied from interface:MetadataExtractorRegistryVariant ofMetadataExtractorRegistry.metadataToExtract(MimeType, Class, BiConsumer)that acceptsParameterizedTypeReferenceinstead ofClassfor specifying a target type with generic parameters.- Specified by:
 metadataToExtractin interfaceMetadataExtractorRegistry- Type Parameters:
 T- the target value type- Parameters:
 mimeType- the mime type of metadata entries to extracttype- the target value type to decode tomapper- custom logic to add the decoded value to the output map
 - 
extract
public Map<String,Object> extract(io.rsocket.Payload payload, org.springframework.util.MimeType metadataMimeType) Description copied from interface:MetadataExtractorExtract a map of values from the givenPayloadmetadata. The Payload "route", if present, should be saved underMetadataExtractor.ROUTE_KEY.- Specified by:
 extractin interfaceMetadataExtractor- Parameters:
 payload- the payload whose metadata should be readmetadataMimeType- the metadata MimeType for the connection.- Returns:
 - name values pairs extracted from the metadata
 
 
 -