package com.github.sd4324530.fastweixin.company.message.resp;
import com.github.sd4324530.fastweixin.company.message.QYArticle;
import com.github.sd4324530.fastweixin.message.Article;
import com.github.sd4324530.fastweixin.message.RespType;
import com.github.sd4324530.fastweixin.message.util.MessageBuilder;
import java.util.ArrayList;
import java.util.List;
/**
* 微信企业号被动响应事件新闻消息
* ====================================================================
* 上海聚攒软件开发有限公司
* --------------------------------------------------------------------
* @author Nottyjay
* @version 1.0.beta
* @since 1.3.6
* ====================================================================
*/
public class QYNewsRespMsg extends QYBaseRespMsg {
private static final int WX_MAX_SIZE = 10;
private int maxSize = WX_MAX_SIZE;
private List<QYArticle> articles;
public QYNewsRespMsg() {
articles = new ArrayList<QYArticle>(maxSize);
}
public QYNewsRespMsg(int maxSize) {
setMaxSize(maxSize);
articles = new ArrayList<QYArticle>(maxSize);
}
public QYNewsRespMsg(List<QYArticle> articles) {
this.articles = articles;
}
public int getMaxSize() {
return maxSize;
}
public void setMaxSize(int maxSize) {
if (maxSize < WX_MAX_SIZE && maxSize >= 1) {
this.maxSize = maxSize;
}
if (articles != null && articles.size() > this.maxSize) {
articles = articles.subList(0, this.maxSize);
}
}
public List<QYArticle> getArticles() {
return articles;
}
public void setArticles(List<QYArticle> articles) {
if (articles.size() > this.maxSize) {
this.articles = articles.subList(0, this.maxSize);
} else {
this.articles = articles;
}
}
public void add(String title) {
add(title, null, null, null);
}
public void add(String title, String url) {
add(title, null, null, url);
}
public void add(String title, String picUrl, String url) {
add(title, null, picUrl, url);
}
public void add(String title, String description, String picUrl, String url) {
add(new QYArticle(title, description, picUrl, url));
}
public void add(QYArticle article){
if (this.articles.size() < maxSize) {
this.articles.add(article);
}
}
@Override
public String toXml() {
MessageBuilder mb = new MessageBuilder(super.toXml());
mb.addData("MsgType", RespType.NEWS);
mb.addTag("ArticleCount", String.valueOf(articles.size()));
mb.append("<Articles>\n");
for (Article article : articles) {
mb.append(article.toXml());
}
mb.append("</Articles>\n");
mb.surroundWith("xml");
return mb.toString();
}
}