fa110c097234f0bd96533007ad8ee4594e1da7f3
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / deserialization / TypeToClassMapInitializer.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.deserialization;\r
9 \r
10 import java.util.Map;\r
11 \r
12 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;\r
13 import org.opendaylight.openflowjava.protocol.impl.util.TypeToClassInitHelper;\r
14 import org.opendaylight.openflowjava.protocol.impl.util.TypeToClassKey;\r
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutput;\r
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoOutput;\r
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessage;\r
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessage;\r
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessage;\r
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemovedMessage;\r
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetAsyncOutput;\r
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetConfigOutput;\r
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutput;\r
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetQueueConfigOutput;\r
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage;\r
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage;\r
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage;\r
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessage;\r
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequestOutput;\r
30 \r
31 /**\r
32  * @author michal.polkorab\r
33  *\r
34  */\r
35 public final class TypeToClassMapInitializer {\r
36 \r
37     private TypeToClassMapInitializer() {\r
38         throw new UnsupportedOperationException("Utility class shouldn't be instantiated");\r
39     }\r
40 \r
41     /**\r
42      * Initializes type to class map\r
43      * @param messageClassMap\r
44      */\r
45     public static void initializeTypeToClassMap(Map<TypeToClassKey, Class<?>> messageClassMap) {\r
46         // init OF v1.0 mapping\r
47         TypeToClassInitHelper helper = \r
48                 new TypeToClassInitHelper(EncodeConstants.OF10_VERSION_ID, messageClassMap);\r
49         helper.registerTypeToClass((short) 0, HelloMessage.class);\r
50         helper.registerTypeToClass((short) 1, ErrorMessage.class);\r
51         helper.registerTypeToClass((short) 2, EchoRequestMessage.class);\r
52         helper.registerTypeToClass((short) 3, EchoOutput.class);\r
53         helper.registerTypeToClass((short) 4, ExperimenterMessage.class);\r
54         helper.registerTypeToClass((short) 6, GetFeaturesOutput.class);\r
55         helper.registerTypeToClass((short) 8, GetConfigOutput.class);\r
56         helper.registerTypeToClass((short) 10, PacketInMessage.class);\r
57         helper.registerTypeToClass((short) 11, FlowRemovedMessage.class);\r
58         helper.registerTypeToClass((short) 12, PortStatusMessage.class);\r
59         helper.registerTypeToClass((short) 17, MultipartReplyMessage.class);\r
60         helper.registerTypeToClass((short) 19, BarrierOutput.class);\r
61         helper.registerTypeToClass((short) 21, GetQueueConfigOutput.class);\r
62         // init OF v1.0 mapping\r
63         helper = new TypeToClassInitHelper(EncodeConstants.OF13_VERSION_ID, messageClassMap);\r
64         helper.registerTypeToClass((short) 0, HelloMessage.class);\r
65         helper.registerTypeToClass((short) 1, ErrorMessage.class);\r
66         helper.registerTypeToClass((short) 2, EchoRequestMessage.class);\r
67         helper.registerTypeToClass((short) 3, EchoOutput.class);\r
68         helper.registerTypeToClass((short) 4, ExperimenterMessage.class);\r
69         helper.registerTypeToClass((short) 6, GetFeaturesOutput.class);\r
70         helper.registerTypeToClass((short) 8, GetConfigOutput.class);\r
71         helper.registerTypeToClass((short) 10, PacketInMessage.class);\r
72         helper.registerTypeToClass((short) 11, FlowRemovedMessage.class);\r
73         helper.registerTypeToClass((short) 12, PortStatusMessage.class);\r
74         helper.registerTypeToClass((short) 19, MultipartReplyMessage.class);\r
75         helper.registerTypeToClass((short) 21, BarrierOutput.class);\r
76         helper.registerTypeToClass((short) 23, GetQueueConfigOutput.class);\r
77         helper.registerTypeToClass((short) 25, RoleRequestOutput.class);\r
78         helper.registerTypeToClass((short) 27, GetAsyncOutput.class);\r
79     }\r
80 }\r