-/*\r
- * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-\r
-package org.opendaylight.openflowjava.protocol.impl.util;\r
-\r
-import org.opendaylight.openflowjava.protocol.api.keys.ActionSerializerKey;\r
-import org.opendaylight.openflowjava.protocol.api.keys.InstructionSerializerKey;\r
-import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterIdAction;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterIdInstruction;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterIdMatchEntry;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Experimenter;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.ExperimenterClass;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries;\r
-\r
-/**\r
- * Creates KeyMakers\r
- * @author michal.polkorab\r
- */\r
-public abstract class TypeKeyMakerFactory {\r
-\r
- /**\r
- * @param version openflow wire version that shall be used\r
- * in lookup key\r
- * @return lookup key\r
- */\r
- public static TypeKeyMaker<MatchEntries> createMatchEntriesKeyMaker(short version) {\r
- return new AbstractTypeKeyMaker<MatchEntries>(version) {\r
- @Override\r
- public MatchEntrySerializerKey<?, ?> make(MatchEntries entry) {\r
- MatchEntrySerializerKey<?, ?> key;\r
- key = new MatchEntrySerializerKey<>(getVersion(), entry.getOxmClass(),\r
- entry.getOxmMatchField());\r
- if (entry.getOxmClass().equals(ExperimenterClass.class)) {\r
- key.setExperimenterId(entry.getAugmentation(ExperimenterIdMatchEntry.class)\r
- .getExperimenter().getValue());\r
- return key;\r
- }\r
- key.setExperimenterId(null);\r
- return key;\r
- }\r
- };\r
- }\r
-\r
- /**\r
- * @param version openflow wire version that shall be used\r
- * in lookup key\r
- * @return lookup key\r
- */\r
- public static TypeKeyMaker<Action> createActionKeyMaker(short version) {\r
- return new AbstractTypeKeyMaker<Action>(version) {\r
- @Override\r
- public ActionSerializerKey<?> make(Action entry) {\r
- if (entry.getType().equals(Experimenter.class)) {\r
- return new ActionSerializerKey<>(getVersion(), entry.getType(),\r
- entry.getAugmentation(ExperimenterIdAction.class).getExperimenter().getValue());\r
- }\r
- return new ActionSerializerKey<>(getVersion(), entry.getType(), null);\r
- }\r
- };\r
- }\r
-\r
- /**\r
- * @param version openflow wire version that shall be used\r
- * in lookup key\r
- * @return lookup key\r
- */\r
- public static TypeKeyMaker<Instruction> createInstructionKeyMaker(short version) {\r
- return new AbstractTypeKeyMaker<Instruction>(version) {\r
- @Override\r
- public InstructionSerializerKey<?> make(Instruction entry) {\r
- if (entry.getType().equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common\r
- .instruction.rev130731.Experimenter.class)) {\r
- return new InstructionSerializerKey<>(getVersion(), entry.getType(),\r
- entry.getAugmentation(ExperimenterIdInstruction.class)\r
- .getExperimenter().getValue());\r
- }\r
- return new InstructionSerializerKey<>(getVersion(), entry.getType(), null);\r
- }\r
- };\r
- }\r
-}\r
+/*
+ * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.openflowjava.protocol.impl.util;
+
+import org.opendaylight.openflowjava.protocol.api.keys.ActionSerializerKey;
+import org.opendaylight.openflowjava.protocol.api.keys.InstructionSerializerKey;
+import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
+import org.opendaylight.openflowjava.protocol.api.keys.MessageTypeKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.oxm.container.match.entry.value.ExperimenterIdCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.ActionChoice;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.InstructionChoice;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ExperimenterClass;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+
+/**
+ * Creates KeyMakers
+ * @author michal.polkorab
+ */
+public abstract class TypeKeyMakerFactory {
+
+ private TypeKeyMakerFactory() {
+ //not called
+ }
+
+ /**
+ * @param version openflow wire version that shall be used
+ * in lookup key
+ * @return lookup key
+ */
+ public static TypeKeyMaker<MatchEntry> createMatchEntriesKeyMaker(short version) {
+ return new AbstractTypeKeyMaker<MatchEntry>(version) {
+ @Override
+ public MatchEntrySerializerKey<?, ?> make(MatchEntry entry) {
+ MatchEntrySerializerKey<?, ?> key;
+ key = new MatchEntrySerializerKey<>(getVersion(), entry.getOxmClass(),
+ entry.getOxmMatchField());
+ if (entry.getOxmClass().equals(ExperimenterClass.class)) {
+ ExperimenterIdCase entryValue = (ExperimenterIdCase) entry.getMatchEntryValue();
+ key.setExperimenterId(entryValue.getExperimenter().getExperimenter().getValue());
+ return key;
+ }
+ key.setExperimenterId(null);
+ return key;
+ }
+ };
+ }
+
+ /**
+ * @param version openflow wire version that shall be used
+ * in lookup key
+ * @return lookup key
+ */
+ public static TypeKeyMaker<Action> createActionKeyMaker(short version) {
+ return new AbstractTypeKeyMaker<Action>(version) {
+ @Override
+ public MessageTypeKey<?> make(Action entry) {
+ if (entry.getExperimenterId() != null) {
+ return new ActionSerializerKey<>(getVersion(),
+ (Class<ActionChoice>) entry.getActionChoice().getImplementedInterface(),
+ entry.getExperimenterId().getValue());
+ }
+ return new ActionSerializerKey<>(getVersion(),
+ (Class<ActionChoice>) entry.getActionChoice().getImplementedInterface(), null);
+ }
+ };
+ }
+
+ /**
+ * @param version openflow wire version that shall be used
+ * in lookup key
+ * @return lookup key
+ */
+ public static TypeKeyMaker<Instruction> createInstructionKeyMaker(short version) {
+ return new AbstractTypeKeyMaker<Instruction>(version) {
+ @Override
+ public MessageTypeKey<?> make(Instruction entry) {
+ if (entry.getExperimenterId() != null) {
+ return new InstructionSerializerKey<>(getVersion(),
+ (Class<InstructionChoice>) entry.getInstructionChoice().getImplementedInterface(),
+ entry.getExperimenterId().getValue());
+ }
+ return new InstructionSerializerKey<>(getVersion(),
+ (Class<InstructionChoice>) entry.getInstructionChoice().getImplementedInterface(), null);
+ }
+ };
+ }
+}