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