5d1fc635a73cd6503575ea71081bca2d1c5d493b
[openflowjava.git] / util / src / main / java / org / opendaylight / openflowjava / util / ExperimenterSerializerKeyFactory.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.util;\r
10 \r
11 import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterIdSerializerKey;\r
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterInput;\r
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandExperimenterCase;\r
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestExperimenterCase;\r
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeatureProperties;\r
16 \r
17 /**\r
18  * @author michal.polkorab\r
19  *\r
20  */\r
21 public abstract class ExperimenterSerializerKeyFactory {\r
22 \r
23     /**\r
24      * @param msgVersion openflow wire version\r
25      * @param experimenterId experimenter / vendor ID\r
26      * @return key instance\r
27      */\r
28     public static ExperimenterIdSerializerKey<ExperimenterInput> createExperimenterMessageSerializerKey(\r
29             short msgVersion, Long experimenterId) {\r
30         return new ExperimenterIdSerializerKey<>(msgVersion, experimenterId, ExperimenterInput.class);\r
31     }\r
32 \r
33     /**\r
34      * @param msgVersion openflow wire version\r
35      * @param experimenterId experimenter / vendor ID\r
36      * @return key instance\r
37      */\r
38     public static ExperimenterIdSerializerKey<MultipartRequestExperimenterCase> createMultipartRequestSerializerKey(\r
39             short msgVersion, Long experimenterId) {\r
40         return new ExperimenterIdSerializerKey<>(msgVersion, experimenterId, MultipartRequestExperimenterCase.class);\r
41     }\r
42 \r
43     /**\r
44      * @param msgVersion openflow wire version\r
45      * @param experimenterId experimenter / vendor ID\r
46      * @return key instance\r
47      */\r
48     public static ExperimenterIdSerializerKey<TableFeatureProperties> createMultipartRequestTFSerializerKey(\r
49             short msgVersion, Long experimenterId) {\r
50         return new ExperimenterIdSerializerKey<>(msgVersion, experimenterId, TableFeatureProperties.class);\r
51     }\r
52 \r
53     /**\r
54      * @param msgVersion openflow wire version\r
55      * @param experimenterId experimenter / vendor ID\r
56      * @return key instance\r
57      */\r
58     public static ExperimenterIdSerializerKey<MeterBandExperimenterCase> createMeterBandSerializerKey(\r
59             short msgVersion, Long experimenterId) {\r
60         return new ExperimenterIdSerializerKey<>(msgVersion, experimenterId, MeterBandExperimenterCase.class);\r
61     }\r
62 }