Added openflow-codec and openflowj_netty from openflowplugin
[openflowjava.git] / third-party / openflow-codec / src / main / java / org / openflow / codec / protocol / OXMClass.java
1 package org.openflow.codec.protocol;
2
3 import java.util.HashMap;
4 import java.util.Map;
5
6 /**
7  * Enum to define OXM class type
8  *
9  * @author AnilGujele
10  *
11  */
12 public enum OXMClass {
13
14     NXM_0(0x0000), NXM_1(0x0001), OPENFLOW_BASIC(0x8000), EXPERIMENTER(0xFFFF);
15
16     private static Map<Integer, OXMClass> valueMap;
17
18     private int value;
19
20     /**
21      * constructor
22      *
23      * @param value
24      */
25     OXMClass(int value) {
26         this.value = value;
27         addMapping(value, this);
28     }
29
30     /**
31      * add mapping for OXMClass
32      *
33      * @param value
34      * @param type
35      */
36     private static void addMapping(int value, OXMClass type) {
37         if (null == valueMap) {
38             valueMap = new HashMap<Integer, OXMClass>();
39         }
40         valueMap.put(value, type);
41     }
42
43     /**
44      * @return the value
45      */
46     public int getValue() {
47         return value;
48     }
49
50     /**
51      * get OXMClass for the specific value
52      *
53      * @param value
54      * @return
55      */
56     public static OXMClass getOXMClass(int value) {
57         return valueMap.get((int) value);
58     }
59
60 }