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 <T> type of particular deserializer
26 * @param key used for deserializer lookup
27 * @return deserializer found
29 <T extends OFGeneralDeserializer>
30 T getDeserializer(MessageCodeKey key);
33 * Registers deserializer.
34 * Throws IllegalStateException when there is
35 * a deserializer already registered under given key.
37 * If the deserializer implements {@link DeserializerRegistryInjector} interface,
38 * the deserializer is injected with DeserializerRegistry instance.
40 * @param key used for deserializer lookup
41 * @param deserializer deserializer instance
43 void registerDeserializer(MessageCodeKey key,
44 OFGeneralDeserializer deserializer);
47 * Unregisters deserializer
48 * @param key used for deserializer lookup
49 * @return true if deserializer was removed,
50 * false if no deserializer was found under specified key
52 boolean unregisterDeserializer(MessageCodeKey key);