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;
10 import org.opendaylight.openflowjava.protocol.api.keys.MessageCodeKey;
14 * @author michal.polkorab
17 public interface DeserializerRegistry {
20 * Initializes deserializers
25 * @param key used for deserializer lookup
26 * @return deserializer found
28 <T extends OFGeneralDeserializer>
29 T getDeserializer(MessageCodeKey key);
32 * Registers deserializer.
33 * Throws IllegalStateException when there is
34 * a deserializer already registered under given key.
36 * If the deserializer implements {@link DeserializerRegistryInjector} interface,
37 * the deserializer is injected with DeserializerRegistry instance.
39 * @param key used for deserializer lookup
40 * @param deserializer deserializer instance
42 void registerDeserializer(MessageCodeKey key,
43 OFGeneralDeserializer deserializer);
46 * Unregisters deserializer
47 * @param key used for deserializer lookup
48 * @return true if deserializer was removed,
49 * false if no deserializer was found under specified key
51 boolean unregisterDeserializer(MessageCodeKey key);