2 * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.openflowjava.protocol.api.extensibility;
12 * @author michal.polkorab
15 public interface DeserializerRegistry {
18 * Initializes deserializers
23 * @param key used for deserializer lookup
24 * @return deserializer found
26 <SERIALIZERTYPE extends OFGeneralDeserializer>
27 SERIALIZERTYPE getDeserializer(MessageCodeKey key);
30 * Registers deserializer.
31 * Throws IllegalStateException when there is
32 * a deserializer already registered under given key.
34 * If the deserializer implements {@link DeserializerRegistryInjector} interface,
35 * the deserializer is injected with DeserializerRegistry instance.
37 * @param key used for deserializer lookup
38 * @param deserializer deserializer instance
40 void registerDeserializer(MessageCodeKey key,
41 OFGeneralDeserializer deserializer);
44 * Unregisters deserializer
45 * @param key used for deserializer lookup
46 * @param deserializer deserializer instance
47 * @return true if deserializer was removed,
48 * false if no deserializer was found under specified key
50 boolean unregisterDeserializer(MessageCodeKey key);