summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/isode/stroke/serializer/payloadserializers/StatusShowSerializer.java')
-rw-r--r--src/com/isode/stroke/serializer/payloadserializers/StatusShowSerializer.java35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/com/isode/stroke/serializer/payloadserializers/StatusShowSerializer.java b/src/com/isode/stroke/serializer/payloadserializers/StatusShowSerializer.java
new file mode 100644
index 0000000..e7cb587
--- /dev/null
+++ b/src/com/isode/stroke/serializer/payloadserializers/StatusShowSerializer.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2010-2015, Isode Limited, London, England.
+ * All rights reserved.
+ */
+package com.isode.stroke.serializer.payloadserializers;
+
+import com.isode.stroke.elements.StatusShow;
+import com.isode.stroke.serializer.GenericPayloadSerializer;
+
+public class StatusShowSerializer extends GenericPayloadSerializer<StatusShow> {
+
+ public StatusShowSerializer() {
+ super(StatusShow.class);
+ }
+
+ protected String serializePayload(StatusShow statusShow) {
+ if (statusShow.getType () == StatusShow.Type.Online || statusShow.getType() == StatusShow.Type.None) {
+ return "";
+ }
+ else {
+ String result = "<show>";
+ switch (statusShow.getType()) {
+ case Away: result += "away"; break;
+ case XA: result += "xa"; break;
+ case FFC: result += "chat"; break;
+ case DND: result += "dnd"; break;
+ case Online: assert(false); break;
+ case None: assert(false); break;
+ }
+ result += "</show>";
+ return result;
+ }
+ }
+
+}