package de.tud.kom.socom.components.statistics; import java.util.LinkedList; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.json.JSONString; import de.tud.kom.socom.util.JSONUtils; import de.tud.kom.socom.util.LoggerFactory; public class GameStatistic implements JSONString { private String gamename; private long gameid; private long instanceCount, usersPlaying, usersCurrentlyPlaying, contentCount; private List<GameStatistic.ShortGameInstanceStatistic> instances; public GameStatistic(String gamename, long gameid, long instanceCount, long userPlaying, long usersCurrentlyPlaying, long contentCount) { super(); this.gamename = gamename; this.gameid = gameid; this.instanceCount = instanceCount; this.usersPlaying = userPlaying; this.usersCurrentlyPlaying = usersCurrentlyPlaying; this.contentCount = contentCount; instances = new LinkedList<GameStatistic.ShortGameInstanceStatistic>(); } public String getGamename() { return gamename; } public long getGameid() { return gameid; } public long getInstanceCount() { return instanceCount; } public void setInstanceCount(long instanceCount) { this.instanceCount = instanceCount; } public long getUserPlaying() { return usersPlaying; } public long getUsersCurrentlyPlaying() { return usersCurrentlyPlaying; } public long getContentCount() { return contentCount; } public List<ShortGameInstanceStatistic> getInstances() { return instances; } public void addGameInstanceStatistic(ShortGameInstanceStatistic instance) { instances.add(instance); } @Override public String toJSONString() { try { JSONObject json = new JSONObject(); json.put("name", gamename); json.put("id", gameid); json.put("instanceCount", instanceCount); json.put("usersPlaying", usersPlaying); json.put("usersCurrentlyPlaying", usersCurrentlyPlaying); json.put("contentCount", contentCount); json.put("instances", new JSONArray(getInstances())); return JSONUtils.JSONToString(json); } catch (JSONException e) { LoggerFactory.getLogger().Error(e); } return null; } public class ShortGameInstanceStatistic implements JSONString { private String instanceName, version; private long usersCurrentlyPlaying, id; public ShortGameInstanceStatistic(String instanceDescription, long id, String version, long usersCurrentlyPlaying) { this.instanceName = instanceDescription; this.id = id; this.version = version; this.usersCurrentlyPlaying = usersCurrentlyPlaying; } public String getInstancenName() { return instanceName; } public long getExternalid() { return id; } public String getVersion() { return version; } public long getUsersCurrentlyPlaying() { return usersCurrentlyPlaying; } @Override public String toJSONString() { try { JSONObject json = new JSONObject(); json.put("description", instanceName); json.put("version", version); json.put("id", id); json.put("usersCurrentlyPlaying", usersCurrentlyPlaying); return JSONUtils.JSONToString(json); } catch (JSONException e) { LoggerFactory.getLogger().Error(e); } return null; } } }