blob: 9bcd7e2727abfeb4014cde98e107e72f24ce6c21 (
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
|
/*
* Copyright (c) 2010, Isode Limited, London, England.
* All rights reserved.
*/
/*
* Copyright (c) 2010, Remko Tronçon.
* All rights reserved.
*/
package com.isode.stroke.serializer;
import com.isode.stroke.elements.Element;
import com.isode.stroke.elements.Stanza;
import com.isode.stroke.serializer.xml.XMLElement;
public abstract class GenericStanzaSerializer<T extends Stanza> extends StanzaSerializer {
private final Class stanzaClass_;
GenericStanzaSerializer(Class stanzaClass, String tag, PayloadSerializerCollection payloadSerializers) {
super(tag, payloadSerializers);
stanzaClass_ = stanzaClass;
}
public boolean canSerialize(Element element) {
return stanzaClass_.isAssignableFrom(element.getClass());
}
public void setStanzaSpecificAttributes(Element stanza, XMLElement element) {
setStanzaSpecificAttributesGeneric((T)stanza, element);
}
abstract void setStanzaSpecificAttributesGeneric(T stanza, XMLElement element);
}
|