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.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;
20 * @author michal.polkorab
22 public abstract class ExperimenterDeserializerKeyFactory {
24 private ExperimenterDeserializerKeyFactory() {
29 * @param version openflow wire version
30 * @param experimenterId experimenter / vendor ID
31 * @return key instance
33 public static ExperimenterIdDeserializerKey createExperimenterErrorDeserializerKey(
34 short version, Long experimenterId) {
35 return new ExperimenterIdDeserializerKey(version, experimenterId, ErrorMessage.class);
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
44 public static ExperimenterIdTypeDeserializerKey createExperimenterMessageDeserializerKey(
45 short version, long experimenterId, long type) {
46 return new ExperimenterIdTypeDeserializerKey(version, experimenterId, type, ExperimenterDataOfChoice.class);
50 * @param version openflow wire version
51 * @param experimenterId experimenter / vendor ID
52 * @return key instance
54 public static ExperimenterIdDeserializerKey createVendorMessageDeserializerKey(
55 short version, long experimenterId) {
56 return new ExperimenterIdDeserializerKey(version, experimenterId, ExperimenterDataOfChoice.class);
60 * @param version openflow wire version
61 * @param experimenterId experimenter / vendor ID
63 * @return key instance
65 public static ExperimenterIdTypeDeserializerKey createMultipartReplyMessageDeserializerKey(
66 short version, long experimenterId, long type) {
67 return new ExperimenterIdTypeDeserializerKey(version, experimenterId, type, ExperimenterDataOfChoice.class);
71 * @param version openflow wire version
72 * @param experimenterId experimenter / vendor ID
73 * @return key instance
75 public static ExperimenterIdDeserializerKey createMultipartReplyVendorMessageDeserializerKey(
76 short version, long experimenterId) {
77 return new ExperimenterIdDeserializerKey(version, experimenterId, ExperimenterDataOfChoice.class);
81 * @param version openflow wire version
82 * @param experimenterId experimenter / vendor ID
83 * @return key instance
85 public static ExperimenterIdDeserializerKey createMultipartReplyTFDeserializerKey(
86 short version, Long experimenterId) {
87 return new ExperimenterIdDeserializerKey(version, experimenterId, TableFeatureProperties.class);
91 * @param version openflow wire version
92 * @param experimenterId experimenter / vendor ID
93 * @return key instance
95 public static ExperimenterIdDeserializerKey createQueuePropertyDeserializerKey(
96 short version, Long experimenterId) {
97 return new ExperimenterIdDeserializerKey(version, experimenterId, QueueProperty.class);
101 * @param version openflow wire version
102 * @param experimenterId experimenter / vendor ID
103 * @return key instance
105 public static ExperimenterIdDeserializerKey createMeterBandDeserializerKey(
106 short version, Long experimenterId) {
107 return new ExperimenterIdDeserializerKey(version, experimenterId, MeterBandExperimenterCase.class);