/** * A variation of {@link #getAccessor(org.springframework.messaging.Message, Class)} * with a {@code MessageHeaders} instance instead of a {@code Message}. * <p>This is for cases when a full message may not have been created yet. * @param messageHeaders the message headers to get an accessor for * @param requiredType the required accessor type (or {@code null} for any) * @return an accessor instance of the specified type, or {@code null} if none * @since 4.1 */ @SuppressWarnings("unchecked") @Nullable public static <T extends MessageHeaderAccessor> T getAccessor( MessageHeaders messageHeaders, @Nullable Class<T> requiredType) { if (messageHeaders instanceof MutableMessageHeaders) { MutableMessageHeaders mutableHeaders = (MutableMessageHeaders) messageHeaders; MessageHeaderAccessor headerAccessor = mutableHeaders.getAccessor(); if (requiredType == null || requiredType.isInstance(headerAccessor)) { return (T) headerAccessor; } } return null; }
/** * Return a mutable {@code MessageHeaderAccessor} for the given message attempting * to match the type of accessor used to create the message headers, or otherwise * wrapping the message with a {@code MessageHeaderAccessor} instance. * <p>This is for cases where a header needs to be updated in generic code * while preserving the accessor type for downstream processing. * @return an accessor of the required type (never {@code null}) * @since 4.1 */ public static MessageHeaderAccessor getMutableAccessor(Message<?> message) { if (message.getHeaders() instanceof MutableMessageHeaders) { MutableMessageHeaders mutableHeaders = (MutableMessageHeaders) message.getHeaders(); MessageHeaderAccessor accessor = mutableHeaders.getAccessor(); return (accessor.isMutable() ? accessor : accessor.createAccessor(message)); } return new MessageHeaderAccessor(message); }
/** * A variation of {@link #getAccessor(org.springframework.messaging.Message, Class)} * with a {@code MessageHeaders} instance instead of a {@code Message}. * <p>This is for cases when a full message may not have been created yet. * @param messageHeaders the message headers to get an accessor for * @param requiredType the required accessor type (or {@code null} for any) * @return an accessor instance of the specified type, or {@code null} if none * @since 4.1 */ @SuppressWarnings("unchecked") @Nullable public static <T extends MessageHeaderAccessor> T getAccessor( MessageHeaders messageHeaders, @Nullable Class<T> requiredType) { if (messageHeaders instanceof MutableMessageHeaders) { MutableMessageHeaders mutableHeaders = (MutableMessageHeaders) messageHeaders; MessageHeaderAccessor headerAccessor = mutableHeaders.getAccessor(); if (requiredType == null || requiredType.isInstance(headerAccessor)) { return (T) headerAccessor; } } return null; }
/** * A variation of {@link #getAccessor(org.springframework.messaging.Message, Class)} * with a {@code MessageHeaders} instance instead of a {@code Message}. * <p>This is for cases when a full message may not have been created yet. * @param messageHeaders the message headers to get an accessor for * @param requiredType the required accessor type (or {@code null} for any) * @return an accessor instance of the specified type, or {@code null} if none * @since 4.1 */ @SuppressWarnings("unchecked") @Nullable public static <T extends MessageHeaderAccessor> T getAccessor( MessageHeaders messageHeaders, @Nullable Class<T> requiredType) { if (messageHeaders instanceof MutableMessageHeaders) { MutableMessageHeaders mutableHeaders = (MutableMessageHeaders) messageHeaders; MessageHeaderAccessor headerAccessor = mutableHeaders.getAccessor(); if (requiredType == null || requiredType.isInstance(headerAccessor)) { return (T) headerAccessor; } } return null; }
/** * A variation of {@link #getAccessor(org.springframework.messaging.Message, Class)} * with a {@code MessageHeaders} instance instead of a {@code Message}. * <p>This is for cases when a full message may not have been created yet. * @param messageHeaders the message headers to get an accessor for * @param requiredType the required accessor type (or {@code null} for any) * @return an accessor instance of the specified type, or {@code null} if none * @since 4.1 */ @SuppressWarnings("unchecked") @Nullable public static <T extends MessageHeaderAccessor> T getAccessor( MessageHeaders messageHeaders, @Nullable Class<T> requiredType) { if (messageHeaders instanceof MutableMessageHeaders) { MutableMessageHeaders mutableHeaders = (MutableMessageHeaders) messageHeaders; MessageHeaderAccessor headerAccessor = mutableHeaders.getAccessor(); if (requiredType == null || requiredType.isInstance(headerAccessor)) { return (T) headerAccessor; } } return null; }
/** * Return a mutable {@code MessageHeaderAccessor} for the given message attempting * to match the type of accessor used to create the message headers, or otherwise * wrapping the message with a {@code MessageHeaderAccessor} instance. * <p>This is for cases where a header needs to be updated in generic code * while preserving the accessor type for downstream processing. * @return an accessor of the required type (never {@code null}) * @since 4.1 */ public static MessageHeaderAccessor getMutableAccessor(Message<?> message) { if (message.getHeaders() instanceof MutableMessageHeaders) { MutableMessageHeaders mutableHeaders = (MutableMessageHeaders) message.getHeaders(); MessageHeaderAccessor accessor = mutableHeaders.getAccessor(); return (accessor.isMutable() ? accessor : accessor.createAccessor(message)); } return new MessageHeaderAccessor(message); }
/** * Return a mutable {@code MessageHeaderAccessor} for the given message attempting * to match the type of accessor used to create the message headers, or otherwise * wrapping the message with a {@code MessageHeaderAccessor} instance. * <p>This is for cases where a header needs to be updated in generic code * while preserving the accessor type for downstream processing. * @return an accessor of the required type (never {@code null}) * @since 4.1 */ public static MessageHeaderAccessor getMutableAccessor(Message<?> message) { if (message.getHeaders() instanceof MutableMessageHeaders) { MutableMessageHeaders mutableHeaders = (MutableMessageHeaders) message.getHeaders(); MessageHeaderAccessor accessor = mutableHeaders.getAccessor(); return (accessor.isMutable() ? accessor : accessor.createAccessor(message)); } return new MessageHeaderAccessor(message); }
/** * Return a mutable {@code MessageHeaderAccessor} for the given message attempting * to match the type of accessor used to create the message headers, or otherwise * wrapping the message with a {@code MessageHeaderAccessor} instance. * <p>This is for cases where a header needs to be updated in generic code * while preserving the accessor type for downstream processing. * @return an accessor of the required type (never {@code null}) * @since 4.1 */ public static MessageHeaderAccessor getMutableAccessor(Message<?> message) { if (message.getHeaders() instanceof MutableMessageHeaders) { MutableMessageHeaders mutableHeaders = (MutableMessageHeaders) message.getHeaders(); MessageHeaderAccessor accessor = mutableHeaders.getAccessor(); return (accessor.isMutable() ? accessor : accessor.createAccessor(message)); } return new MessageHeaderAccessor(message); }