From b35b50bef19e6ad27fe7f56a7bff06779f113507 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Wed, 1 Nov 2017 09:21:21 -0400 Subject: [PATCH] Polish --- .../handler/AbstractMessageCondition.java | 36 ++++++++++--------- .../simp/SimpMessageTypeMessageCondition.java | 18 +++++----- 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/AbstractMessageCondition.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/AbstractMessageCondition.java index 85f7d1f2a9a..091f57e984e 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/AbstractMessageCondition.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/AbstractMessageCondition.java @@ -22,13 +22,30 @@ import java.util.Iterator; import org.springframework.lang.Nullable; /** - * A base class for {@link MessageCondition} types providing implementations of - * {@link #equals(Object)}, {@link #hashCode()}, and {@link #toString()}. + * Base class for {@code MessageCondition's} that pre-declares abstract methods + * {@link #getContent()} and {@link #getToStringInfix()} in order to provide + * implementations of {@link #equals(Object)}, {@link #hashCode()}, and + * {@link #toString()}. * * @author Rossen Stoyanchev * @since 4.0 */ -public abstract class AbstractMessageCondition> implements MessageCondition { +public abstract class AbstractMessageCondition> + implements MessageCondition { + + + /** + * Return the collection of objects the message condition is composed of + * (e.g. destination patterns), never {@code null}. + */ + protected abstract Collection getContent(); + + /** + * The notation to use when printing discrete items of content. + * For example " || " for URL patterns or " && " for param expressions. + */ + protected abstract String getToStringInfix(); + @Override public boolean equals(@Nullable Object obj) { @@ -61,17 +78,4 @@ public abstract class AbstractMessageCondition getContent(); - - /** - * The notation to use when printing discrete items of content. - * For example " || " for URL patterns or " && " for param expressions. - */ - protected abstract String getToStringInfix(); - } diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/SimpMessageTypeMessageCondition.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/SimpMessageTypeMessageCondition.java index f1c261d8ca5..ebc58d00d39 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/SimpMessageTypeMessageCondition.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/SimpMessageTypeMessageCondition.java @@ -16,8 +16,9 @@ package org.springframework.messaging.simp; -import java.util.Arrays; import java.util.Collection; +import java.util.Collections; +import java.util.Map; import org.springframework.lang.Nullable; import org.springframework.messaging.Message; @@ -25,7 +26,8 @@ import org.springframework.messaging.handler.AbstractMessageCondition; 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 * @since 4.0 @@ -58,7 +60,7 @@ public class SimpMessageTypeMessageCondition extends AbstractMessageCondition getContent() { - return Arrays.asList(this.messageType); + return Collections.singletonList(this.messageType); } @Override @@ -80,15 +82,15 @@ public class SimpMessageTypeMessageCondition extends AbstractMessageCondition message) { - Object actualMessageType = SimpMessageHeaderAccessor.getMessageType(message.getHeaders()); - if (actualMessageType != null) { - if (actualMessageType.equals(this.getMessageType()) && actualMessageType.equals(other.getMessageType())) { + Object actual = SimpMessageHeaderAccessor.getMessageType(message.getHeaders()); + if (actual != null) { + if (actual.equals(this.messageType) && actual.equals(other.getMessageType())) { return 0; } - else if (actualMessageType.equals(this.getMessageType())) { + else if (actual.equals(this.messageType)) { return -1; } - else if (actualMessageType.equals(other.getMessageType())) { + else if (actual.equals(other.getMessageType())) { return 1; } }