View Javadoc
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  }