e9e1c10ef5ddbb864da303fa8d89306ad6336711
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / util / MatchEntryDeserializerRegistryHelper.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.impl.util;\r
9 \r
10 import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;\r
11 import org.opendaylight.openflowjava.protocol.api.extensibility.OFGeneralDeserializer;\r
12 import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;\r
13 \r
14 /**\r
15  * @author michal.polkorab\r
16  *\r
17  */\r
18 public class MatchEntryDeserializerRegistryHelper {\r
19 \r
20     private short version;\r
21     private DeserializerRegistry registry;\r
22     private int oxmClass;\r
23 \r
24     /**\r
25      * @param version wire protocol version\r
26      * @param oxmClass oxm_class that will be used for match entry deserializer\r
27      *  registration\r
28      * @param deserializerRegistry registry to be filled with message deserializers\r
29      */\r
30     public MatchEntryDeserializerRegistryHelper(short version, int oxmClass,\r
31             DeserializerRegistry deserializerRegistry) {\r
32         this.version = version;\r
33         this.oxmClass = oxmClass;\r
34         this.registry = deserializerRegistry;\r
35     }\r
36 \r
37     /**\r
38      * Registers match entry deserializer under provided oxmfield ()\r
39      * @param oxmField oxm_field value/code\r
40      * @param deserializer deserializer instance\r
41      */\r
42     public void register(int oxmField, OFGeneralDeserializer deserializer) {\r
43         MatchEntryDeserializerKey key = new MatchEntryDeserializerKey(version, oxmClass, oxmField);\r
44         key.setExperimenterId(null);\r
45         registry.registerDeserializer(key, deserializer);\r
46     }\r
47 }