Remove bundle extension (de)serializers
[openflowjava.git] / openflowjava-util / src / main / java / org / opendaylight / openflowjava / util / ExperimenterDeserializerKeyFactory.java
1 /*
2  * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.openflowjava.util;
10
11 import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterIdDeserializerKey;
12 import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterIdTypeDeserializerKey;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessage;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.experimenter.core.ExperimenterDataOfChoice;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandExperimenterCase;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.queue.property.header.QueueProperty;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeatureProperties;
18
19 /**
20  * @author michal.polkorab
21  */
22 public abstract class ExperimenterDeserializerKeyFactory {
23
24     private ExperimenterDeserializerKeyFactory() {
25         //not called
26     }
27
28     /**
29      * @param version openflow wire version
30      * @param experimenterId experimenter / vendor ID
31      * @return key instance
32      */
33     public static ExperimenterIdDeserializerKey createExperimenterErrorDeserializerKey(
34             short version, Long experimenterId) {
35         return new ExperimenterIdDeserializerKey(version, experimenterId, ErrorMessage.class);
36     }
37
38     /**
39      * @param version openflow wire version
40      * @param experimenterId experimenter / vendor ID
41      * @param type experimenter type according to vendor implementation
42      * @return key instance
43      */
44     public static ExperimenterIdTypeDeserializerKey createExperimenterMessageDeserializerKey(
45             short version, long experimenterId, long type) {
46         return new ExperimenterIdTypeDeserializerKey(version, experimenterId, type, ExperimenterDataOfChoice.class);
47     }
48
49     /**
50      * @param version        openflow wire version
51      * @param experimenterId experimenter / vendor ID
52      * @return key instance
53      */
54     public static ExperimenterIdDeserializerKey createVendorMessageDeserializerKey(
55             short version, long experimenterId) {
56         return new ExperimenterIdDeserializerKey(version, experimenterId, ExperimenterDataOfChoice.class);
57     }
58
59     /**
60      * @param version openflow wire version
61      * @param experimenterId experimenter / vendor ID
62      * @param type
63      * @return key instance
64      */
65     public static ExperimenterIdTypeDeserializerKey createMultipartReplyMessageDeserializerKey(
66             short version, long experimenterId, long type) {
67         return new ExperimenterIdTypeDeserializerKey(version, experimenterId, type, ExperimenterDataOfChoice.class);
68     }
69
70     /**
71      * @param version        openflow wire version
72      * @param experimenterId experimenter / vendor ID
73      * @return key instance
74      */
75     public static ExperimenterIdDeserializerKey createMultipartReplyVendorMessageDeserializerKey(
76             short version, long experimenterId) {
77         return new ExperimenterIdDeserializerKey(version, experimenterId, ExperimenterDataOfChoice.class);
78     }
79
80     /**
81      * @param version openflow wire version
82      * @param experimenterId experimenter / vendor ID
83      * @return key instance
84      */
85     public static ExperimenterIdDeserializerKey createMultipartReplyTFDeserializerKey(
86             short version, Long experimenterId) {
87         return new ExperimenterIdDeserializerKey(version, experimenterId, TableFeatureProperties.class);
88     }
89
90     /**
91      * @param version openflow wire version
92      * @param experimenterId experimenter / vendor ID
93      * @return key instance
94      */
95     public static ExperimenterIdDeserializerKey createQueuePropertyDeserializerKey(
96             short version, Long experimenterId) {
97         return new ExperimenterIdDeserializerKey(version, experimenterId, QueueProperty.class);
98     }
99
100     /**
101      * @param version openflow wire version
102      * @param experimenterId experimenter / vendor ID
103      * @return key instance
104      */
105     public static ExperimenterIdDeserializerKey createMeterBandDeserializerKey(
106             short version, Long experimenterId) {
107         return new ExperimenterIdDeserializerKey(version, experimenterId, MeterBandExperimenterCase.class);
108     }
109
110 }