Extensibility support (serialization part)
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / serialization / MessageFactoryInitializer.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.serialization;\r
9 \r
10 import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;\r
11 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.BarrierInputMessageFactory;\r
12 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.EchoInputMessageFactory;\r
13 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.EchoReplyInputMessageFactory;\r
14 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.FlowModInputMessageFactory;\r
15 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.GetAsyncRequestMessageFactory;\r
16 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.GetConfigInputMessageFactory;\r
17 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.GetFeaturesInputMessageFactory;\r
18 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.GetQueueConfigInputMessageFactory;\r
19 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.GroupModInputMessageFactory;\r
20 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.HelloInputMessageFactory;\r
21 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.MeterModInputMessageFactory;\r
22 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.MultipartRequestInputFactory;\r
23 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10BarrierInputMessageFactory;\r
24 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10FlowModInputMessageFactory;\r
25 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10HelloInputMessageFactory;\r
26 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10PacketOutInputMessageFactory;\r
27 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10PortModInputMessageFactory;\r
28 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10QueueGetConfigInputMessageFactory;\r
29 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10StatsRequestInputFactory;\r
30 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.PacketOutInputMessageFactory;\r
31 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.PortModInputMessageFactory;\r
32 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.RoleRequestInputMessageFactory;\r
33 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.SetAsyncInputMessageFactory;\r
34 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.SetConfigMessageFactory;\r
35 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.TableModInputMessageFactory;\r
36 import org.opendaylight.openflowjava.protocol.impl.util.CommonMessageRegistryHelper;\r
37 import org.opendaylight.openflowjava.protocol.impl.util.EncodeConstants;\r
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierInput;\r
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoInput;\r
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoReplyInput;\r
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowModInput;\r
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetAsyncInput;\r
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetConfigInput;\r
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesInput;\r
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetQueueConfigInput;\r
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GroupModInput;\r
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInput;\r
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MeterModInput;\r
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;\r
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInput;\r
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortModInput;\r
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequestInput;\r
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetAsyncInput;\r
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetConfigInput;\r
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.TableModInput;\r
56 \r
57 /**\r
58  * @author michal.polkorab\r
59  *\r
60  */\r
61 public class MessageFactoryInitializer {\r
62 \r
63     /**\r
64      * Registers message serializers into provided registry\r
65      * @param serializerRegistry registry to be initialized with message serializers\r
66      */\r
67     public static void registerMessageSerializers(SerializerRegistry serializerRegistry) {\r
68         // register OF v1.0 message serializers\r
69         short version = EncodeConstants.OF10_VERSION_ID;\r
70         CommonMessageRegistryHelper registryHelper = new CommonMessageRegistryHelper(version, serializerRegistry);\r
71         registryHelper.registerSerializer(BarrierInput.class, new OF10BarrierInputMessageFactory());\r
72         registryHelper.registerSerializer(EchoInput.class, new EchoInputMessageFactory());\r
73         registryHelper.registerSerializer(EchoReplyInput.class, new EchoReplyInputMessageFactory());\r
74         registryHelper.registerSerializer(FlowModInput.class, new OF10FlowModInputMessageFactory());\r
75         registryHelper.registerSerializer(GetConfigInput.class, new GetConfigInputMessageFactory());\r
76         registryHelper.registerSerializer(GetFeaturesInput.class, new GetFeaturesInputMessageFactory());\r
77         registryHelper.registerSerializer(GetQueueConfigInput.class, new OF10QueueGetConfigInputMessageFactory());\r
78         registryHelper.registerSerializer(HelloInput.class, new OF10HelloInputMessageFactory());\r
79         registryHelper.registerSerializer(MultipartRequestInput.class, new OF10StatsRequestInputFactory());\r
80         registryHelper.registerSerializer(PacketOutInput.class, new OF10PacketOutInputMessageFactory());\r
81         registryHelper.registerSerializer(PortModInput.class, new OF10PortModInputMessageFactory());\r
82         registryHelper.registerSerializer(SetConfigInput.class, new SetConfigMessageFactory());\r
83         // register OF v1.0 message serializers\r
84         version = EncodeConstants.OF13_VERSION_ID;\r
85         registryHelper = new CommonMessageRegistryHelper(version, serializerRegistry);\r
86         registryHelper.registerSerializer(BarrierInput.class, new BarrierInputMessageFactory());\r
87         registryHelper.registerSerializer(EchoInput.class, new EchoInputMessageFactory());\r
88         registryHelper.registerSerializer(EchoReplyInput.class, new EchoReplyInputMessageFactory());\r
89         registryHelper.registerSerializer(FlowModInput.class, new FlowModInputMessageFactory());\r
90         registryHelper.registerSerializer(GetAsyncInput.class, new GetAsyncRequestMessageFactory());\r
91         registryHelper.registerSerializer(GetConfigInput.class, new GetConfigInputMessageFactory());\r
92         registryHelper.registerSerializer(GetFeaturesInput.class, new GetFeaturesInputMessageFactory());\r
93         registryHelper.registerSerializer(GetQueueConfigInput.class, new GetQueueConfigInputMessageFactory());\r
94         registryHelper.registerSerializer(GroupModInput.class, new GroupModInputMessageFactory());\r
95         registryHelper.registerSerializer(HelloInput.class, new HelloInputMessageFactory());\r
96         registryHelper.registerSerializer(MeterModInput.class, new MeterModInputMessageFactory());\r
97         registryHelper.registerSerializer(MultipartRequestInput.class, new MultipartRequestInputFactory());\r
98         registryHelper.registerSerializer(PacketOutInput.class, new PacketOutInputMessageFactory());\r
99         registryHelper.registerSerializer(PortModInput.class, new PortModInputMessageFactory());\r
100         registryHelper.registerSerializer(RoleRequestInput.class, new RoleRequestInputMessageFactory());\r
101         registryHelper.registerSerializer(SetAsyncInput.class, new SetAsyncInputMessageFactory());\r
102         registryHelper.registerSerializer( SetConfigInput.class, new SetConfigMessageFactory());\r
103         registryHelper.registerSerializer(TableModInput.class, new TableModInputMessageFactory());\r
104     }\r
105 }\r