1 package com.zone.weixin4j.handler;
2
3 import com.zone.weixin4j.exception.WeixinException;
4 import com.zone.weixin4j.request.WeixinMessage;
5 import com.zone.weixin4j.request.WeixinRequest;
6 import com.zone.weixin4j.response.WeixinResponse;
7
8 import java.util.Set;
9
10 /**
11 * 微信消息处理器
12 *
13 * @className WeixinMessageHandler
14 * @author jinyu(foxinmy@gmail.com)
15 * @date 2015年5月7日
16 * @since JDK 1.6
17 * @see MessageHandlerAdapter
18 * @see MultipleMessageHandlerAdapter
19 */
20 public interface WeixinMessageHandler {
21
22 /**
23 * 能否处理请求
24 *
25 * @param request
26 * 微信请求
27 * @param message
28 * 微信消息
29 * @param nodeNames
30 * 节点名称集合
31 * @return true则执行doHandle
32 */
33 public boolean canHandle(WeixinRequest request, WeixinMessage message,
34 Set<String> nodeNames) throws WeixinException;
35
36 /**
37 * 处理请求
38 *
39 * @param request
40 * 微信请求
41 * @param message
42 * 微信消息
43 * @param nodeNames
44 * 节点名称集合
45 * @return 回复内容
46 */
47 public WeixinResponse doHandle(WeixinRequest request, WeixinMessage message,
48 Set<String> nodeNames) throws WeixinException;
49
50 /**
51 * 用于匹配到多个MessageHandler时权重降序排列,数字越大优先级越高
52 *
53 * @return 权重
54 */
55 public int weight();
56 }