diff options
Diffstat (limited to 'src/com/isode/stroke/serializer/payloadserializers/StatusShowSerializer.java')
-rw-r--r-- | src/com/isode/stroke/serializer/payloadserializers/StatusShowSerializer.java | 35 |
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; + } + } + +} |