2 * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
\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
9 package org.opendaylight.openflowjava.protocol.impl.util;
\r
11 import org.opendaylight.openflowjava.protocol.api.extensibility.EnhancedMessageTypeKey;
\r
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;
\r
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction;
\r
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries;
\r
18 * @author michal.polkorab
\r
20 public abstract class EnhancedTypeKeyMakerFactory {
\r
23 * @param version openflow wire version that shall be used
\r
25 * @return lookup key
\r
27 public static EnhancedTypeKeyMaker<MatchEntries> createMatchEntriesKeyBuilder(short version) {
\r
28 return new AbstractEnhancedTypeKeyMaker<MatchEntries>(version) {
\r
30 public EnhancedMessageTypeKey<?, ?> make(MatchEntries entry) {
\r
31 return new EnhancedMessageTypeKey<>(
\r
32 getVersion(), entry.getOxmClass(), entry.getOxmMatchField());
\r
38 * @param version openflow wire version that shall be used
\r
40 * @return lookup key
\r
42 public static EnhancedTypeKeyMaker<Action> createActionKeyBuilder(short version) {
\r
43 return new AbstractEnhancedTypeKeyMaker<Action>(version) {
\r
45 public EnhancedMessageTypeKey<?, ?> make(Action entry) {
\r
46 return new EnhancedMessageTypeKey<>(getVersion(), Action.class, entry.getType());
\r
52 * @param version openflow wire version that shall be used
\r
54 * @return lookup key
\r
56 public static EnhancedTypeKeyMaker<Instruction> createInstructionKeyBuilder(short version) {
\r
57 return new AbstractEnhancedTypeKeyMaker<Instruction>(version) {
\r
59 public EnhancedMessageTypeKey<?, ?> make(Instruction entry) {
\r
60 return new EnhancedMessageTypeKey<>(getVersion(), Instruction.class, entry.getType());
\r