View Javadoc
1   package com.foxinmy.weixin4j.response;
2   
3   import java.util.ArrayList;
4   import java.util.List;
5   
6   /**
7    * 回复图文消息
8    * 
9    * @className NewsResponse
10   * @author jinyu(foxinmy@gmail.com)
11   * @date 2015年5月5日
12   * @since JDK 1.6
13   * @see
14   */
15  public class NewsResponse implements WeixinResponse {
16  
17  	/**
18  	 * 图文集合
19  	 */
20  	private List<Article> articleList;
21  
22  	public NewsResponse(List<Article> articleList) {
23  		this.articleList = articleList;
24  	}
25  
26  	public NewsResponse(Article article) {
27  		this.articleList = new ArrayList<Article>();
28  		this.articleList.add(article);
29  	}
30  
31  	public void pushArticle(Article article) {
32  		articleList.add(article);
33  	}
34  
35  	public void pushFirstArticle(Article article) {
36  		articleList.add(0, article);
37  	}
38  
39  	public void pushLastArticle(Article article) {
40  		articleList.add(articleList.size(), article);
41  	}
42  
43  	public Article removeLastArticle() {
44  		return articleList.remove(articleList.size() - 1);
45  	}
46  
47  	public Article removeFirstArticle() {
48  		return articleList.remove(0);
49  	}
50  
51  	public List<Article> getArticleList() {
52  		return articleList;
53  	}
54  
55  	@Override
56  	public String toContent() {
57  		StringBuilder content = new StringBuilder();
58  		content.append(String.format("<ArticleCount>%d</ArticleCount>",
59  				articleList.size()));
60  		content.append("<Articles>");
61  		for (Article article : articleList) {
62  			content.append("<item>");
63  			content.append(String.format("<Title><![CDATA[%s]]></Title>",
64  					article.getTitle() != null ? article.getTitle() : ""));
65  			content.append(String.format(
66  					"<Description><![CDATA[%s]]></Description>",
67  					article.getDesc() != null ? article.getDesc() : ""));
68  			content.append(String.format("<Url><![CDATA[%s]]></Url>",
69  					article.getUrl() != null ? article.getUrl() : ""));
70  			content.append(String.format("<PicUrl><![CDATA[%s]]></PicUrl>",
71  					article.getPicUrl() != null ? article.getPicUrl() : ""));
72  			content.append("</item>");
73  		}
74  		content.append("</Articles>");
75  		return content.toString();
76  	}
77  
78  	@Override
79  	public String getMsgType() {
80  		return "news";
81  	}
82  
83  	/**
84  	 * 图文消息对象
85  	 * 
86  	 * @className Article
87  	 * @author jinyu(foxinmy@gmail.com)
88  	 * @date 2015年5月5日
89  	 * @since JDK 1.6
90  	 * @see
91  	 */
92  	public static class Article {
93  		/**
94  		 * 图文消息标题
95  		 */
96  		private String title;
97  		/**
98  		 * 图文消息描述
99  		 */
100 		private String desc;
101 		/**
102 		 * 点击图文消息跳转链接
103 		 */
104 		private String url;
105 		/**
106 		 * 图片链接,支持JPG、PNG格式,较好的效果为大图360*200,小图200*200
107 		 */
108 		private String picUrl;
109 
110 		public String getTitle() {
111 			return title;
112 		}
113 
114 		public void setTitle(String title) {
115 			this.title = title;
116 		}
117 
118 		public String getDesc() {
119 			return desc;
120 		}
121 
122 		public void setDesc(String desc) {
123 			this.desc = desc;
124 		}
125 
126 		public String getUrl() {
127 			return url;
128 		}
129 
130 		public void setUrl(String url) {
131 			this.url = url;
132 		}
133 
134 		public String getPicUrl() {
135 			return picUrl;
136 		}
137 
138 		public void setPicUrl(String picUrl) {
139 			this.picUrl = picUrl;
140 		}
141 
142 		public Article() {
143 
144 		}
145 
146 		public Article(String title, String desc, String url, String picUrl) {
147 			this.title = title;
148 			this.desc = desc;
149 			this.url = url;
150 			this.picUrl = picUrl;
151 		}
152 
153 		@Override
154 		public String toString() {
155 			return "Article [title=" + title + ", desc=" + desc + ", url="
156 					+ url + ", picUrl=" + picUrl + "]";
157 		}
158 	}
159 }