package com.takefive.plugins.jira.wechat.api.template;
import java.util.ArrayList;
import org.apache.commons.lang.StringUtils;
import org.json.JSONException;
import org.json.JSONObject;
public abstract class Message implements JsonSerializable {
public static final String DELIMITER = "|";
protected ArrayList<String> toUser;
protected ArrayList<String> toParty;
protected ArrayList<String> toTag;
protected String msgType;
protected int agentId;
protected int safe;
public Message() {
toUser = new ArrayList<String>();
toParty = new ArrayList<String>();
toTag = new ArrayList<String>();
}
public void addRecipient(String userId) {
if (!toUser.contains(userId))
toUser.add(userId);
}
public void deleteRecipient(String userId) {
toUser.remove(userId);
}
public void addParty(String partyId) {
if (!toParty.contains(partyId))
toParty.add(partyId);
}
public void deleteParty(String partyId) {
toParty.remove(partyId);
}
public void addTag(String tagId) {
if (!toTag.contains(tagId))
toTag.add(tagId);
}
public void deleteTag(String tagId) {
toTag.remove(tagId);
}
public String getMsgType() {
return msgType;
}
public int getAgentId() {
return agentId;
}
public int getSafe() {
return safe;
}
public void setMsgType(String type) {
msgType = type;
}
public void setAgentId(int id) {
agentId = id;
}
public void setSafe(boolean isSafe) {
if (isSafe)
safe = 1;
else
safe = 0;
}
public JSONObject toJsonObject() {
String toUserStr = StringUtils.join(toUser, DELIMITER);
String toPartyStr = StringUtils.join(toParty, DELIMITER);
String toTagStr = StringUtils.join(toTag, DELIMITER);
try {
JSONObject retval = new JSONObject().put("touser", toUserStr)
.put("toparty", toPartyStr)
.put("totag", toTagStr)
.put("msgtype", msgType)
.put("agentid", agentId)
.put("safe", safe);
return retval;
} catch (JSONException e) {
// Should not happen
e.printStackTrace();
return null;
}
}
public String toJson() {
return toJsonObject().toString();
}
}