summaryrefslogtreecommitdiffstats
blob: 32ad38c50f852a3bbedaf67d782f769c2e18cefd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*
 * Copyright (c) 2010, Isode Limited, London, England.
 * All rights reserved.
 */
/*
 * Copyright (c) 2010, Remko Tronçon.
 * All rights reserved.
 */
package com.isode.stroke.parser;

import com.isode.stroke.elements.Message;

public class MessageParser extends GenericStanzaParser<Message> {

    public MessageParser(PayloadParserFactoryCollection factories) {
        super(factories, new Message());
    }

    @Override
    void handleStanzaAttributes(AttributeMap attributes) {
        String type = attributes.getAttribute("type");
        if ("chat".equals(type)) {
            getStanzaGeneric().setType(Message.Type.Chat);
        } else if ("error".equals(type)) {
            getStanzaGeneric().setType(Message.Type.Error);
        } else if ("groupchat".equals(type)) {
            getStanzaGeneric().setType(Message.Type.Groupchat);
        } else if ("headline".equals(type)) {
            getStanzaGeneric().setType(Message.Type.Headline);
        } else {
            getStanzaGeneric().setType(Message.Type.Normal);
        }
    }
}