package com.cyou.cpush.apns.notification; import java.util.HashMap; import java.util.Map; import com.cyou.cpush.apns.util.JSONUtil; import com.google.gson.JsonObject; public class Payload { private static final String DEFAULT_SOUND = "default"; private static final int DEFAULT_BADGE = 0; private String alert; private int badge; private String sound; private Map<String, Object> customData; public Payload(String alert) { this(DEFAULT_SOUND, DEFAULT_BADGE, alert); } public Payload(String sound, int badge, String alert) { this.sound = sound; this.badge = badge; this.alert = alert; } public String getSound() { return sound; } public void setSound(String sound) { this.sound = sound; } public int getBadge() { return badge; } public void setBadge(int badge) { this.badge = badge; } public String getAlert() { return alert; } public void setAlert(String alert) { this.alert = alert; } public void addCustomData(String key, String value) { addCustomDataObject(key, value); } public void addCustomData(String key, Number value) { addCustomDataObject(key, value); } public void addCustomDataObject(String key, Object value) { if (customData == null) { customData = new HashMap<String, Object>(); } if (key != null && value != null) { customData.put(key, value); } } public String toJson() { JsonObject j; if (customData == null) { j = new JsonObject(); } else { j = (JsonObject) JSONUtil.toJSON(customData); } JsonObject aps = new JsonObject(); aps.addProperty("alert", this.getAlert()); aps.addProperty("badge", this.getBadge()); aps.addProperty("sound", this.getSound()); j.add("aps", aps); return j.toString(); } }