issue #9 提供xml消息的Builder

This commit is contained in:
Daniel Qian 2014-08-28 13:03:30 +08:00
parent 604e416ad6
commit 7cfbc05acd
3 changed files with 98 additions and 0 deletions

View File

@ -0,0 +1,33 @@
package chanjarster.weixin.bean.outxmlbuilder;
import chanjarster.weixin.bean.WxXmlOutMessage;
public abstract class BaseBuilder<BuilderType, ValueType> {
protected String toUserName;
protected String fromUserName;
protected String msgtype;
public BuilderType touser(String touser) {
this.toUserName = touser;
return (BuilderType) this;
}
public BuilderType fromUser(String fromusername) {
this.fromUserName = fromusername;
return (BuilderType) this;
}
public abstract ValueType build();
public void setCommon(WxXmlOutMessage m) {
m.setToUserName(this.toUserName);
m.setFromUserName(this.fromUserName);
m.setMsgType(this.msgtype);
m.setCreateTime(System.currentTimeMillis() / 1000l);
}
}

View File

@ -0,0 +1,33 @@
package chanjarster.weixin.bean.outxmlbuilder;
import chanjarster.weixin.api.WxConsts;
import chanjarster.weixin.bean.WxXmlOutImageMessage;
/**
* 获得消息builder
* <pre>
* 用法: WxXmlMessage m = WxXmlMessage.IMAGE().media_id(...).touser(...).build();
* </pre>
* @author chanjarster
*
*/
public final class ImageBuilder extends BaseBuilder<ImageBuilder, WxXmlOutImageMessage> {
private String media_id;
public ImageBuilder() {
this.msgtype = WxConsts.XML_MSG_IMAGE;
}
public ImageBuilder media_id(String media_id) {
this.media_id = media_id;
return this;
}
public WxXmlOutImageMessage build() {
WxXmlOutImageMessage m = new WxXmlOutImageMessage();
setCommon(m);
m.setMediaId(this.media_id);
return m;
}
}

View File

@ -0,0 +1,32 @@
package chanjarster.weixin.bean.outxmlbuilder;
import chanjarster.weixin.api.WxConsts;
import chanjarster.weixin.bean.WxXmlOutTextMessage;
/**
* 文本消息builder
* <pre>
* 用法: WxXmlMessage m = WxXmlMessage.TEXT().touser(...).fromUser(...).content(...).build();
* </pre>
* @author chanjarster
*
*/
public final class TextBuilder extends BaseBuilder<TextBuilder, WxXmlOutTextMessage> {
private String content;
public TextBuilder() {
this.msgtype = WxConsts.XML_MSG_TEXT;
}
public TextBuilder content(String content) {
this.content = content;
return this;
}
public WxXmlOutTextMessage build() {
WxXmlOutTextMessage m = new WxXmlOutTextMessage();
setCommon(m);
m.setContent(this.content);
return m;
}
}