Extensibility support (serialization part)
[openflowjava.git] / openflow-protocol-api / src / main / java / org / opendaylight / openflowjava / protocol / api / extensibility / SerializerRegistry.java
1 /*\r
2  * Copyright (c) 2013 Pantheon Technologies s.r.o. and others.  All rights reserved.\r
3  *\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
7  */\r
8 package org.opendaylight.openflowjava.protocol.api.extensibility;\r
9 \r
10 \r
11 /**\r
12  * Stores and handles serializers \r
13  * @author michal.polkorab\r
14  *\r
15  */\r
16 public interface SerializerRegistry {\r
17 \r
18     /**\r
19      * Serializer registry provisioning\r
20      */\r
21     public void init();\r
22 \r
23     /**\r
24      * @param msgTypeKey lookup key\r
25      * @return serializer or NullPointerException if no serializer was found\r
26      */\r
27     public <KEY_TYPE, SERIALIZER_TYPE extends OFGeneralSerializer> SERIALIZER_TYPE \r
28         getSerializer(MessageTypeKey<KEY_TYPE> msgTypeKey);\r
29 \r
30     /**\r
31      * Registers serializer under key\r
32      * @param msgTypeKey lookup key\r
33      * @param serializer serializer implementation\r
34      */\r
35     public <KEY_TYPE> void\r
36         registerSerializer(MessageTypeKey<KEY_TYPE> msgTypeKey, OFGeneralSerializer serializer);\r
37 }\r