|
|
|
@ -16,8 +16,9 @@ |
|
|
|
|
|
|
|
|
|
|
|
package org.springframework.messaging.simp; |
|
|
|
package org.springframework.messaging.simp; |
|
|
|
|
|
|
|
|
|
|
|
import java.util.Arrays; |
|
|
|
|
|
|
|
import java.util.Collection; |
|
|
|
import java.util.Collection; |
|
|
|
|
|
|
|
import java.util.Collections; |
|
|
|
|
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
|
|
|
import org.springframework.lang.Nullable; |
|
|
|
import org.springframework.lang.Nullable; |
|
|
|
import org.springframework.messaging.Message; |
|
|
|
import org.springframework.messaging.Message; |
|
|
|
@ -25,7 +26,8 @@ import org.springframework.messaging.handler.AbstractMessageCondition; |
|
|
|
import org.springframework.util.Assert; |
|
|
|
import org.springframework.util.Assert; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* A message condition that checks the message type. |
|
|
|
* {@code MessageCondition} that matches by the message type obtained via |
|
|
|
|
|
|
|
* {@link SimpMessageHeaderAccessor#getMessageType(Map)}. |
|
|
|
* |
|
|
|
* |
|
|
|
* @author Rossen Stoyanchev |
|
|
|
* @author Rossen Stoyanchev |
|
|
|
* @since 4.0 |
|
|
|
* @since 4.0 |
|
|
|
@ -58,7 +60,7 @@ public class SimpMessageTypeMessageCondition extends AbstractMessageCondition<Si |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
protected Collection<?> getContent() { |
|
|
|
protected Collection<?> getContent() { |
|
|
|
return Arrays.asList(this.messageType); |
|
|
|
return Collections.singletonList(this.messageType); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@ -80,15 +82,15 @@ public class SimpMessageTypeMessageCondition extends AbstractMessageCondition<Si |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public int compareTo(SimpMessageTypeMessageCondition other, Message<?> message) { |
|
|
|
public int compareTo(SimpMessageTypeMessageCondition other, Message<?> message) { |
|
|
|
Object actualMessageType = SimpMessageHeaderAccessor.getMessageType(message.getHeaders()); |
|
|
|
Object actual = SimpMessageHeaderAccessor.getMessageType(message.getHeaders()); |
|
|
|
if (actualMessageType != null) { |
|
|
|
if (actual != null) { |
|
|
|
if (actualMessageType.equals(this.getMessageType()) && actualMessageType.equals(other.getMessageType())) { |
|
|
|
if (actual.equals(this.messageType) && actual.equals(other.getMessageType())) { |
|
|
|
return 0; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (actualMessageType.equals(this.getMessageType())) { |
|
|
|
else if (actual.equals(this.messageType)) { |
|
|
|
return -1; |
|
|
|
return -1; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (actualMessageType.equals(other.getMessageType())) { |
|
|
|
else if (actual.equals(other.getMessageType())) { |
|
|
|
return 1; |
|
|
|
return 1; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|