InstructionInfo redesign
[genius.git] / mdsalutil / mdsalutil-api / src / main / java / org / opendaylight / genius / mdsalutil / InstructionType.java
1 /*
2  * Copyright © 2016, 2017 Ericsson India Global Services Pvt Ltd. 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 package org.opendaylight.genius.mdsalutil;
9
10 import org.opendaylight.genius.mdsalutil.instructions.InstructionApplyActions;
11 import org.opendaylight.genius.mdsalutil.instructions.InstructionClearActions;
12 import org.opendaylight.genius.mdsalutil.instructions.InstructionGotoTable;
13 import org.opendaylight.genius.mdsalutil.instructions.InstructionWriteActions;
14 import org.opendaylight.genius.mdsalutil.instructions.InstructionWriteMetadata;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction;
16
17 @Deprecated
18 public enum InstructionType {
19     @Deprecated
20     apply_actions {
21         @Override
22         public Instruction buildInstruction(InstructionInfo instructionInfo, int instructionKey) {
23             return new InstructionApplyActions(instructionInfo.getActionInfos()).buildInstruction(instructionKey);
24         }
25     },
26
27     @Deprecated
28     goto_table {
29         @Override
30         public Instruction buildInstruction(InstructionInfo instructionInfo, int instructionKey) {
31             return new InstructionGotoTable((short) instructionInfo.getInstructionValues()[0]).buildInstruction(
32                     instructionKey);
33         }
34     },
35
36     @Deprecated
37     write_actions {
38         @Override
39         public Instruction buildInstruction(InstructionInfo instructionInfo, int instructionKey) {
40             return new InstructionWriteActions(instructionInfo.getActionInfos()).buildInstruction(instructionKey);
41         }
42     },
43
44     @Deprecated
45     clear_actions {
46         @Override
47         public Instruction buildInstruction(InstructionInfo instructionInfo, int instructionKey) {
48             return new InstructionClearActions().buildInstruction(instructionKey);
49         }
50     },
51
52     @Deprecated
53     write_metadata {
54         @Override
55         public Instruction buildInstruction(InstructionInfo instructionInfo, int instructionKey) {
56             return new InstructionWriteMetadata(instructionInfo.getBigInstructionValues()[0],
57                     instructionInfo.getBigInstructionValues()[1]).buildInstruction(instructionKey);
58         }
59     };
60
61     @Deprecated
62     public abstract Instruction buildInstruction(InstructionInfo instructionInfo, int instructionKey);
63 }