2 * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.
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
9 package org.opendaylight.openflowjava.util;
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.approved.extensions.rev160802.bundle.properties.bundle.property.bundle.property.entry.bundle.experimenter.property.BundleExperimenterPropertyData;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessage;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.experimenter.core.ExperimenterDataOfChoice;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandExperimenterCase;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.queue.property.header.QueueProperty;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeatureProperties;
21 * @author michal.polkorab
23 public abstract class ExperimenterDeserializerKeyFactory {
25 private ExperimenterDeserializerKeyFactory() {
30 * @param version openflow wire version
31 * @param experimenterId experimenter / vendor ID
32 * @return key instance
34 public static ExperimenterIdDeserializerKey createExperimenterErrorDeserializerKey(
35 short version, Long experimenterId) {
36 return new ExperimenterIdDeserializerKey(version, experimenterId, ErrorMessage.class);
40 * @param version openflow wire version
41 * @param experimenterId experimenter / vendor ID
42 * @param type experimenter type according to vendor implementation
43 * @return key instance
45 public static ExperimenterIdTypeDeserializerKey createExperimenterMessageDeserializerKey(
46 short version, long experimenterId, long type) {
47 return new ExperimenterIdTypeDeserializerKey(version, experimenterId, type, ExperimenterDataOfChoice.class);
51 * @param version openflow wire version
52 * @param experimenterId experimenter / vendor ID
53 * @return key instance
55 public static ExperimenterIdDeserializerKey createVendorMessageDeserializerKey(
56 short version, long experimenterId) {
57 return new ExperimenterIdDeserializerKey(version, experimenterId, ExperimenterDataOfChoice.class);
61 * @param version openflow wire version
62 * @param experimenterId experimenter / vendor ID
64 * @return key instance
66 public static ExperimenterIdTypeDeserializerKey createMultipartReplyMessageDeserializerKey(
67 short version, long experimenterId, long type) {
68 return new ExperimenterIdTypeDeserializerKey(version, experimenterId, type, ExperimenterDataOfChoice.class);
72 * @param version openflow wire version
73 * @param experimenterId experimenter / vendor ID
74 * @return key instance
76 public static ExperimenterIdDeserializerKey createMultipartReplyVendorMessageDeserializerKey(
77 short version, long experimenterId) {
78 return new ExperimenterIdDeserializerKey(version, experimenterId, ExperimenterDataOfChoice.class);
82 * @param version openflow wire version
83 * @param experimenterId experimenter / vendor ID
84 * @return key instance
86 public static ExperimenterIdDeserializerKey createMultipartReplyTFDeserializerKey(
87 short version, Long experimenterId) {
88 return new ExperimenterIdDeserializerKey(version, experimenterId, TableFeatureProperties.class);
92 * @param version openflow wire version
93 * @param experimenterId experimenter / vendor ID
94 * @return key instance
96 public static ExperimenterIdDeserializerKey createQueuePropertyDeserializerKey(
97 short version, Long experimenterId) {
98 return new ExperimenterIdDeserializerKey(version, experimenterId, QueueProperty.class);
102 * @param version openflow wire version
103 * @param experimenterId experimenter / vendor ID
104 * @return key instance
106 public static ExperimenterIdDeserializerKey createMeterBandDeserializerKey(
107 short version, Long experimenterId) {
108 return new ExperimenterIdDeserializerKey(version, experimenterId, MeterBandExperimenterCase.class);
112 * @param version openflow wire version
113 * @param experimenterId experimenter ID
114 * @param type experimenter type according to vendor implementation
115 * @return key instance
117 public static ExperimenterIdTypeDeserializerKey createBundlePropertyDeserializerKey(
118 short version, long experimenterId, long type) {
119 return new ExperimenterIdTypeDeserializerKey(version, experimenterId, type, BundleExperimenterPropertyData.class);