-
Notifications
You must be signed in to change notification settings - Fork 12
/
MessageArgumentResolver.java
30 lines (26 loc) · 1.14 KB
/
MessageArgumentResolver.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.jashmore.sqs.argument.message;
import com.jashmore.sqs.QueueProperties;
import com.jashmore.sqs.argument.ArgumentResolutionException;
import com.jashmore.sqs.argument.ArgumentResolver;
import com.jashmore.sqs.argument.MethodParameter;
import software.amazon.awssdk.services.sqs.model.Message;
/**
* {@link ArgumentResolver} that can be used to get the entire message that is being processed.
*
* <p>This can be useful if the current {@link ArgumentResolver}s do not provide the functionality required and a custom one does not want to be built. Another
* use case could be when the entire message is needed to forward to another queue.
*/
public class MessageArgumentResolver implements ArgumentResolver<Message> {
@Override
public boolean canResolveParameter(final MethodParameter methodParameter) {
return methodParameter.getParameter().getType() == Message.class;
}
@Override
public Message resolveArgumentForParameter(
final QueueProperties queueProperties,
final MethodParameter methodParameter,
final Message message
) throws ArgumentResolutionException {
return message;
}
}