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