package cn.jmessage.api.common.model.friend; import cn.jiguang.common.utils.Preconditions; import cn.jmessage.api.common.model.IModel; import cn.jmessage.api.utils.StringUtils; import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import java.io.UnsupportedEncodingException; public class FriendNote implements IModel { private static final String NOTE_NAME = "note_name"; private static final String OTHERS = "others"; private static final String USERNAME = "username"; private String note_name; private String others; private String username; private Gson gson = new Gson(); private FriendNote(String note_name, String others, String username) { this.note_name = note_name; this.others = others; this.username = username; } public static Builder newBuilder() { return new Builder(); } public static class Builder { private String note_name; private String others; private String username; public Builder setNoteName(String noteName) { this.note_name = noteName; return this; } public Builder setOthers(String others) { this.others = others; return this; } public Builder setUsername(String username) { this.username = username; return this; } public FriendNote builder() { StringUtils.checkUsername(username); try { Preconditions.checkArgument(note_name.trim().getBytes("UTF-8").length <= 250, "length of note name should less than 250"); Preconditions.checkArgument(others.getBytes("UTF-8").length <= 250, "length of others should not larger than 250"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return new FriendNote(note_name, others, username); } } @Override public JsonElement toJSON() { JsonObject json = new JsonObject(); if (null != note_name) { json.addProperty(NOTE_NAME, note_name); } if (null != others) { json.addProperty(OTHERS, others); } if (null != username) { json.addProperty(USERNAME, username); } return json; } @Override public String toString() { return gson.toJson(toJSON()); } }