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