Default experimenters moved to separate bundle + unit tests
[openflowjava.git] / openflow-protocol-ext / src / main / java / org / opendaylight / openflowjava / protocol / ext / serialization / DefaultExperimenterSerializerInitializer.java
1 /*\r
2  * Copyright (c) 2014 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 \r
9 package org.opendaylight.openflowjava.protocol.ext.serialization;\r
10 \r
11 import org.opendaylight.openflowjava.protocol.api.extensibility.EnhancedMessageTypeKey;\r
12 import org.opendaylight.openflowjava.protocol.api.extensibility.MessageTypeKey;\r
13 import org.opendaylight.openflowjava.protocol.ext.util.ExtConstants;\r
14 import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProvider;\r
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Experimenter;\r
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;\r
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction;\r
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterInput;\r
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.meter.band.experimenter._case.MeterBandExperimenter;\r
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.experimenter._case.MultipartRequestExperimenter;\r
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeatureProperties;\r
22 \r
23 /**\r
24  * @author michal.polkorab\r
25  *\r
26  */\r
27 public class DefaultExperimenterSerializerInitializer {\r
28 \r
29     /**\r
30      * Registers message serializers into provided registry\r
31      * @param provider provider to be initialized with message serializers\r
32      */\r
33     public static void registerSerializers(SwitchConnectionProvider provider) {\r
34         // register OF v1.0 default experimenter serializers\r
35         short version = ExtConstants.OF10_VERSION_ID;\r
36         // - default vendor (experimenter) message serializer\r
37         provider.registerSerializer(new MessageTypeKey<>(version, ExperimenterInput.class),\r
38                 new OF10VendorInputMessageFactory());\r
39         // - default vendor (experimenter) action serializer\r
40         provider.registerSerializer(new EnhancedMessageTypeKey<>(version, Action.class,\r
41                 Experimenter.class), new OF10VendorActionSerializer());\r
42         // - default vendor stats (experimenter multipart) serializer\r
43         provider.registerSerializer(new MessageTypeKey<>(version, MultipartRequestExperimenter.class),\r
44                 new OF10StatsRequestVendorSerializer());\r
45 \r
46         // register OF v1.3 default experimenter serializers\r
47         version = ExtConstants.OF13_VERSION_ID;\r
48         // - default experimenter message serializer\r
49         provider.registerSerializer(new MessageTypeKey<>(version, ExperimenterInput.class),\r
50                 new OF13ExperimenterInputMessageFactory());\r
51         // - default experimenter action serializer\r
52         provider.registerSerializer(new EnhancedMessageTypeKey<>(version, Action.class,\r
53                 Experimenter.class), new OF13ExperimenterActionSerializer());\r
54         // - default vendor stats (experimenter multipart) serializer\r
55         provider.registerSerializer(new MessageTypeKey<>(version, MultipartRequestExperimenter.class),\r
56                 new OF13MultipartExperimenterSerializer());\r
57         // - default experimenter instruction serializer\r
58         provider.registerSerializer(new EnhancedMessageTypeKey<>(version, Instruction.class,\r
59                 org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common\r
60                 .instruction.rev130731.Experimenter.class), new OF13ExperimenterInstructionSerializer());\r
61         // - default experimenter message serializer\r
62         provider.registerSerializer(new MessageTypeKey<>(version, TableFeatureProperties.class),\r
63                 new OF13TableFeatExpSerializer());\r
64         // - default experimenter message serializer\r
65         provider.registerSerializer(new MessageTypeKey<>(version, MeterBandExperimenter.class),\r
66                 new OF13MeterBandExperimenterSerializer());\r
67     }\r
68 }\r