import org.opendaylight.openflowjava.protocol.api.keys.MessageCodeKey;
/**
+ * Helper class for deserializer registration.
* @author michal.polkorab
- *
*/
public class SimpleDeserializerRegistryHelper {
* @param version wire protocol version
* @param deserializerRegistry registry to be filled with message deserializers
*/
- public SimpleDeserializerRegistryHelper(short version, DeserializerRegistry deserializerRegistry) {
+ public SimpleDeserializerRegistryHelper(final short version, final DeserializerRegistry deserializerRegistry) {
this.version = version;
this.registry = deserializerRegistry;
}
/**
+ * Register deserializer in registry. If deserializer supports more protocol versions assign actual one.
* @param code code / value to distinguish between deserializers
- * @param experimenterID TODO
- * @param deserializedObjectClass class of object that will be deserialized
- * by given deserializer
+ * @param deserializedObjectClass class of object that will be deserialized by given deserializer
* @param deserializer deserializer instance
*/
- public void registerDeserializer(int code,
- Long experimenterID, Class<?> deserializedObjectClass, OFGeneralDeserializer deserializer) {
- registry.registerDeserializer(new MessageCodeKey(version, code,
- deserializedObjectClass), deserializer);
+ public void registerDeserializer(final int code, final Class<?> deserializedObjectClass,
+ final OFGeneralDeserializer deserializer) {
+ registry.registerDeserializer(new MessageCodeKey(version, code, deserializedObjectClass), deserializer);
+
+ if (deserializer instanceof VersionAssignableFactory) {
+ ((VersionAssignableFactory) deserializer).assignVersion(version);
+ }
}
+
}