rename MessageKey to WeixinMessageKey

This commit is contained in:
jinyu 2015-08-03 18:04:36 +08:00
parent 36d66c6835
commit 64dc0bdc66
5 changed files with 40 additions and 40 deletions

View File

@ -37,10 +37,10 @@ import com.foxinmy.weixin4j.type.MessageType;
*/ */
public class DefaultMessageMatcher implements WeixinMessageMatcher { public class DefaultMessageMatcher implements WeixinMessageMatcher {
private final Map<MessageKey, Class<? extends WeixinMessage>> messageClassMap; private final Map<WeixinMessageKey, Class<? extends WeixinMessage>> messageClassMap;
public DefaultMessageMatcher() { public DefaultMessageMatcher() {
messageClassMap = new HashMap<MessageKey, Class<? extends WeixinMessage>>(); messageClassMap = new HashMap<WeixinMessageKey, Class<? extends WeixinMessage>>();
initMessageClass(); initMessageClass();
} }
@ -65,19 +65,19 @@ public class DefaultMessageMatcher implements WeixinMessageMatcher {
private void initGeneralMessageClass() { private void initGeneralMessageClass() {
for (AccountType accountType : AccountType.values()) { for (AccountType accountType : AccountType.values()) {
messageClassMap.put(new MessageKey(MessageType.text.name(), null, messageClassMap.put(new WeixinMessageKey(MessageType.text.name(), null,
accountType), TextMessage.class); accountType), TextMessage.class);
messageClassMap.put(new MessageKey(MessageType.image.name(), null, messageClassMap.put(new WeixinMessageKey(MessageType.image.name(), null,
accountType), ImageMessage.class); accountType), ImageMessage.class);
messageClassMap.put(new MessageKey(MessageType.voice.name(), null, messageClassMap.put(new WeixinMessageKey(MessageType.voice.name(), null,
accountType), VoiceMessage.class); accountType), VoiceMessage.class);
messageClassMap.put(new MessageKey(MessageType.video.name(), null, messageClassMap.put(new WeixinMessageKey(MessageType.video.name(), null,
accountType), VideoMessage.class); accountType), VideoMessage.class);
messageClassMap.put(new MessageKey(MessageType.shortvideo.name(), messageClassMap.put(new WeixinMessageKey(MessageType.shortvideo.name(),
null, accountType), VideoMessage.class); null, accountType), VideoMessage.class);
messageClassMap.put(new MessageKey(MessageType.location.name(), messageClassMap.put(new WeixinMessageKey(MessageType.location.name(),
null, accountType), LocationMessage.class); null, accountType), LocationMessage.class);
messageClassMap.put(new MessageKey(MessageType.link.name(), null, messageClassMap.put(new WeixinMessageKey(MessageType.link.name(), null,
accountType), LinkMessage.class); accountType), LinkMessage.class);
} }
} }
@ -87,39 +87,39 @@ public class DefaultMessageMatcher implements WeixinMessageMatcher {
EventType[] eventTypes = new EventType[] { EventType.subscribe, EventType[] eventTypes = new EventType[] { EventType.subscribe,
EventType.unsubscribe }; EventType.unsubscribe };
for (EventType eventType : eventTypes) { for (EventType eventType : eventTypes) {
messageClassMap.put(new MessageKey(messageType, eventType.name(), messageClassMap.put(new WeixinMessageKey(messageType, eventType.name(),
AccountType.MP), AccountType.MP),
com.foxinmy.weixin4j.mp.event.ScribeEventMessage.class); com.foxinmy.weixin4j.mp.event.ScribeEventMessage.class);
} }
for (EventType eventType : eventTypes) { for (EventType eventType : eventTypes) {
messageClassMap.put(new MessageKey(messageType, eventType.name(), messageClassMap.put(new WeixinMessageKey(messageType, eventType.name(),
AccountType.QY), AccountType.QY),
com.foxinmy.weixin4j.qy.event.ScribeEventMessage.class); com.foxinmy.weixin4j.qy.event.ScribeEventMessage.class);
} }
for (AccountType accountType : AccountType.values()) { for (AccountType accountType : AccountType.values()) {
messageClassMap.put( messageClassMap.put(
new MessageKey(messageType, EventType.location.name(), new WeixinMessageKey(messageType, EventType.location.name(),
accountType), LocationEventMessage.class); accountType), LocationEventMessage.class);
messageClassMap.put(new MessageKey(messageType, messageClassMap.put(new WeixinMessageKey(messageType,
EventType.location_select.name(), accountType), EventType.location_select.name(), accountType),
MenuLocationEventMessage.class); MenuLocationEventMessage.class);
for (EventType eventType : new EventType[] { EventType.click, for (EventType eventType : new EventType[] { EventType.click,
EventType.view }) { EventType.view }) {
messageClassMap.put( messageClassMap.put(
new MessageKey(messageType, eventType.name(), new WeixinMessageKey(messageType, eventType.name(),
accountType), MenuEventMessage.class); accountType), MenuEventMessage.class);
} }
for (EventType eventType : new EventType[] { for (EventType eventType : new EventType[] {
EventType.scancode_push, EventType.scancode_waitmsg }) { EventType.scancode_push, EventType.scancode_waitmsg }) {
messageClassMap.put( messageClassMap.put(
new MessageKey(messageType, eventType.name(), new WeixinMessageKey(messageType, eventType.name(),
accountType), MenuScanEventMessage.class); accountType), MenuScanEventMessage.class);
} }
for (EventType eventType : new EventType[] { for (EventType eventType : new EventType[] {
EventType.pic_sysphoto, EventType.pic_photo_or_album, EventType.pic_sysphoto, EventType.pic_photo_or_album,
EventType.pic_weixin }) { EventType.pic_weixin }) {
messageClassMap.put( messageClassMap.put(
new MessageKey(messageType, eventType.name(), new WeixinMessageKey(messageType, eventType.name(),
accountType), MenuPhotoEventMessage.class); accountType), MenuPhotoEventMessage.class);
} }
} }
@ -128,22 +128,22 @@ public class DefaultMessageMatcher implements WeixinMessageMatcher {
private void initMpEventMessageClass() { private void initMpEventMessageClass() {
String messageType = MessageType.event.name(); String messageType = MessageType.event.name();
AccountType accountType = AccountType.MP; AccountType accountType = AccountType.MP;
messageClassMap.put(new MessageKey(messageType, EventType.scan.name(), messageClassMap.put(new WeixinMessageKey(messageType, EventType.scan.name(),
accountType), accountType),
com.foxinmy.weixin4j.mp.event.ScanEventMessage.class); com.foxinmy.weixin4j.mp.event.ScanEventMessage.class);
messageClassMap.put(new MessageKey(messageType, messageClassMap.put(new WeixinMessageKey(messageType,
EventType.masssendjobfinish.name(), accountType), EventType.masssendjobfinish.name(), accountType),
MassEventMessage.class); MassEventMessage.class);
messageClassMap.put(new MessageKey(messageType, messageClassMap.put(new WeixinMessageKey(messageType,
EventType.templatesendjobfinish.name(), accountType), EventType.templatesendjobfinish.name(), accountType),
TemplatesendjobfinishMessage.class); TemplatesendjobfinishMessage.class);
messageClassMap.put(new MessageKey(messageType, messageClassMap.put(new WeixinMessageKey(messageType,
EventType.kf_create_session.name(), accountType), EventType.kf_create_session.name(), accountType),
KfCreateEventMessage.class); KfCreateEventMessage.class);
messageClassMap.put(new MessageKey(messageType, messageClassMap.put(new WeixinMessageKey(messageType,
EventType.kf_close_session.name(), accountType), EventType.kf_close_session.name(), accountType),
KfCloseEventMessage.class); KfCloseEventMessage.class);
messageClassMap.put(new MessageKey(messageType, messageClassMap.put(new WeixinMessageKey(messageType,
EventType.kf_switch_session.name(), accountType), EventType.kf_switch_session.name(), accountType),
KfSwitchEventMessage.class); KfSwitchEventMessage.class);
} }
@ -151,21 +151,21 @@ public class DefaultMessageMatcher implements WeixinMessageMatcher {
private void initQyEventMessageClass() { private void initQyEventMessageClass() {
String messageType = MessageType.event.name(); String messageType = MessageType.event.name();
AccountType accountType = AccountType.QY; AccountType accountType = AccountType.QY;
messageClassMap.put(new MessageKey(messageType, messageClassMap.put(new WeixinMessageKey(messageType,
EventType.batch_job_result.name(), accountType), EventType.batch_job_result.name(), accountType),
BatchjobresultMessage.class); BatchjobresultMessage.class);
messageClassMap.put( messageClassMap.put(
new MessageKey(messageType, EventType.enter_agent.name(), new WeixinMessageKey(messageType, EventType.enter_agent.name(),
accountType), EnterAgentEventMessage.class); accountType), EnterAgentEventMessage.class);
} }
@Override @Override
public Class<? extends WeixinMessage> match(MessageKey messageKey) { public Class<? extends WeixinMessage> match(WeixinMessageKey messageKey) {
return messageClassMap.get(messageKey); return messageClassMap.get(messageKey);
} }
@Override @Override
public void regist(MessageKey messageKey, public void regist(WeixinMessageKey messageKey,
Class<? extends WeixinMessage> messageClass) { Class<? extends WeixinMessage> messageClass) {
Class<?> clazz = messageClassMap.get(messageKey); Class<?> clazz = messageClassMap.get(messageKey);
if (clazz != null) { if (clazz != null) {

View File

@ -119,7 +119,7 @@ public class WeixinMessageDispatcher {
public void doDispatch(final ChannelHandlerContext context, public void doDispatch(final ChannelHandlerContext context,
final WeixinRequest request, final CruxMessageHandler cruxMessage) final WeixinRequest request, final CruxMessageHandler cruxMessage)
throws WeixinException { throws WeixinException {
MessageKey messageKey = defineMessageKey(cruxMessage.getMsgType(), WeixinMessageKey messageKey = defineMessageKey(cruxMessage.getMsgType(),
cruxMessage.getEventType(), cruxMessage.getAccountType()); cruxMessage.getEventType(), cruxMessage.getAccountType());
Class<? extends WeixinMessage> targetClass = messageMatcher Class<? extends WeixinMessage> targetClass = messageMatcher
.match(messageKey); .match(messageKey);
@ -159,9 +159,9 @@ public class WeixinMessageDispatcher {
* 账号类型 * 账号类型
* @return * @return
*/ */
protected MessageKey defineMessageKey(String messageType, String eventType, protected WeixinMessageKey defineMessageKey(String messageType, String eventType,
AccountType accountType) { AccountType accountType) {
return new MessageKey(messageType, eventType, accountType); return new WeixinMessageKey(messageType, eventType, accountType);
} }
/** /**
@ -213,7 +213,7 @@ public class WeixinMessageDispatcher {
*/ */
protected MessageHandlerExecutor getHandlerExecutor( protected MessageHandlerExecutor getHandlerExecutor(
ChannelHandlerContext context, WeixinRequest request, ChannelHandlerContext context, WeixinRequest request,
MessageKey messageKey, Object message, Set<String> nodeNames) WeixinMessageKey messageKey, Object message, Set<String> nodeNames)
throws WeixinException { throws WeixinException {
WeixinMessageHandler messageHandler = null; WeixinMessageHandler messageHandler = null;
WeixinMessageHandler[] messageHandlers = getMessageHandlers(); WeixinMessageHandler[] messageHandlers = getMessageHandlers();
@ -447,7 +447,7 @@ public class WeixinMessageDispatcher {
this.beanFactory = beanFactory; this.beanFactory = beanFactory;
} }
public void registMessageClass(MessageKey messageKey, public void registMessageClass(WeixinMessageKey messageKey,
Class<? extends WeixinMessage> messageClass) { Class<? extends WeixinMessage> messageClass) {
messageMatcher.regist(messageKey, messageClass); messageMatcher.regist(messageKey, messageClass);
} }

View File

@ -8,13 +8,13 @@ import com.foxinmy.weixin4j.util.StringUtil;
/** /**
* 微信消息key * 微信消息key
* *
* @className MessageKey * @className WeixinMessageKey
* @author jy * @author jy
* @date 2015年6月9日 * @date 2015年6月9日
* @since JDK 1.7 * @since JDK 1.7
* @see * @see
*/ */
public class MessageKey implements Serializable { public class WeixinMessageKey implements Serializable {
private static final long serialVersionUID = -691330687850400289L; private static final long serialVersionUID = -691330687850400289L;
@ -22,7 +22,7 @@ public class MessageKey implements Serializable {
private String eventType; private String eventType;
private AccountType accountType; private AccountType accountType;
public MessageKey(String messageType, String eventType, public WeixinMessageKey(String messageType, String eventType,
AccountType accountType) { AccountType accountType) {
this.messageType = messageType; this.messageType = messageType;
this.eventType = eventType; this.eventType = eventType;
@ -64,7 +64,7 @@ public class MessageKey implements Serializable {
return false; return false;
if (getClass() != obj.getClass()) if (getClass() != obj.getClass())
return false; return false;
MessageKey other = (MessageKey) obj; WeixinMessageKey other = (WeixinMessageKey) obj;
if (accountType != other.accountType) if (accountType != other.accountType)
return false; return false;
if (eventType == null) { if (eventType == null) {
@ -82,7 +82,7 @@ public class MessageKey implements Serializable {
@Override @Override
public String toString() { public String toString() {
return "MessageKey [messageType=" + messageType + ", eventType=" return "WeixinMessageKey [messageType=" + messageType + ", eventType="
+ eventType + ", accountType=" + accountType + "]"; + eventType + ", accountType=" + accountType + "]";
} }
} }

View File

@ -19,7 +19,7 @@ public interface WeixinMessageMatcher {
* 消息key * 消息key
* @return 消息类型 * @return 消息类型
*/ */
public Class<? extends WeixinMessage> match(MessageKey messageKey); public Class<? extends WeixinMessage> match(WeixinMessageKey messageKey);
/** /**
* 注册消息类型程序没有及时更新而微信又产生了新的消息类型 * 注册消息类型程序没有及时更新而微信又产生了新的消息类型
@ -29,6 +29,6 @@ public interface WeixinMessageMatcher {
* @param messageClass * @param messageClass
* 消息类型 * 消息类型
*/ */
public void regist(MessageKey messageKey, public void regist(WeixinMessageKey messageKey,
Class<? extends WeixinMessage> messageClass); Class<? extends WeixinMessage> messageClass);
} }

View File

@ -18,7 +18,7 @@ import java.util.Map;
import com.foxinmy.weixin4j.dispatcher.BeanFactory; import com.foxinmy.weixin4j.dispatcher.BeanFactory;
import com.foxinmy.weixin4j.dispatcher.DefaultMessageMatcher; import com.foxinmy.weixin4j.dispatcher.DefaultMessageMatcher;
import com.foxinmy.weixin4j.dispatcher.MessageKey; import com.foxinmy.weixin4j.dispatcher.WeixinMessageKey;
import com.foxinmy.weixin4j.dispatcher.WeixinMessageDispatcher; import com.foxinmy.weixin4j.dispatcher.WeixinMessageDispatcher;
import com.foxinmy.weixin4j.dispatcher.WeixinMessageMatcher; import com.foxinmy.weixin4j.dispatcher.WeixinMessageMatcher;
import com.foxinmy.weixin4j.exception.WeixinException; import com.foxinmy.weixin4j.exception.WeixinException;
@ -310,7 +310,7 @@ public final class WeixinServerBootstrap {
* 消息类 * 消息类
* @return * @return
*/ */
public WeixinServerBootstrap registMessageClass(MessageKey messageKey, public WeixinServerBootstrap registMessageClass(WeixinMessageKey messageKey,
Class<? extends WeixinMessage> messageClass) { Class<? extends WeixinMessage> messageClass) {
messageDispatcher.registMessageClass(messageKey, messageClass); messageDispatcher.registMessageClass(messageKey, messageClass);
return this; return this;