diff options
Diffstat (limited to 'src/com/isode/stroke/serializer/PayloadSerializerCollection.java')
-rw-r--r-- | src/com/isode/stroke/serializer/PayloadSerializerCollection.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/com/isode/stroke/serializer/PayloadSerializerCollection.java b/src/com/isode/stroke/serializer/PayloadSerializerCollection.java new file mode 100644 index 0000000..49ffe41 --- /dev/null +++ b/src/com/isode/stroke/serializer/PayloadSerializerCollection.java @@ -0,0 +1,34 @@ +/* + * 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.Payload; +import java.util.Vector; + +public class PayloadSerializerCollection { + + private final Vector<PayloadSerializer> serializers_ = new Vector<PayloadSerializer>(); + + public void addSerializer(PayloadSerializer serializer) { + synchronized (serializers_) { + serializers_.add(serializer); + } + } + + public PayloadSerializer getPayloadSerializer(Payload payload) { + synchronized (serializers_) { + for (PayloadSerializer serializer : serializers_) { + if (serializer.canSerialize(payload)) { + return serializer; + } + } + } + return null; + } +} |