088c0f8f4a98052778038445f670d0e190ee30e6
[openflowplugin.git] / extension / openflowplugin-extension-nicira / src / main / java / org / opendaylight / openflowplugin / extension / vendor / nicira / convertor / action / LearnConvertorUtil.java
1 /*
2  * Copyright (c) 2016 Hewlett-Packard Enterprise 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.openflowplugin.extension.vendor.nicira.convertor.action;
9
10 import java.util.ArrayList;
11 import java.util.List;
12
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.learn.grouping.NxActionLearn;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.learn.grouping.NxActionLearnBuilder;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.NxActionLearnGrouping;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.FlowModSpec;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.FlowModAddMatchFromFieldCase;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.FlowModAddMatchFromFieldCaseBuilder;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.FlowModAddMatchFromValueCase;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.FlowModAddMatchFromValueCaseBuilder;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.FlowModCopyFieldIntoFieldCase;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.FlowModCopyFieldIntoFieldCaseBuilder;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.FlowModCopyValueIntoFieldCase;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.FlowModCopyValueIntoFieldCaseBuilder;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.FlowModOutputToPortCase;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.FlowModOutputToPortCaseBuilder;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.flow.mod.add.match.from.field._case.FlowModAddMatchFromField;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.flow.mod.add.match.from.field._case.FlowModAddMatchFromFieldBuilder;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.flow.mod.add.match.from.value._case.FlowModAddMatchFromValue;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.flow.mod.add.match.from.value._case.FlowModAddMatchFromValueBuilder;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.flow.mod.copy.field.into.field._case.FlowModCopyFieldIntoField;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.flow.mod.copy.field.into.field._case.FlowModCopyFieldIntoFieldBuilder;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.flow.mod.copy.value.into.field._case.FlowModCopyValueIntoField;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.flow.mod.copy.value.into.field._case.FlowModCopyValueIntoFieldBuilder;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.flow.mod.output.to.port._case.FlowModOutputToPort;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flow.mod.spec.flow.mod.spec.flow.mod.output.to.port._case.FlowModOutputToPortBuilder;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.learn.grouping.NxLearn;
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.learn.grouping.NxLearnBuilder;
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.learn.grouping.nx.learn.FlowMods;
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.learn.grouping.nx.learn.FlowModsBuilder;
41
42 public class LearnConvertorUtil {
43
44     /*
45      *                         CONVERT UP
46     */
47
48     static void convertUp(NxActionLearn action, NxLearnBuilder builder) {
49         builder.setFlags(action.getFlags());
50         builder.setCookie(action.getCookie());
51         builder.setFinHardTimeout(action.getFinHardTimeout());
52         builder.setFinIdleTimeout(action.getFinIdleTimeout());
53         builder.setHardTimeout(action.getHardTimeout());
54         builder.setIdleTimeout(action.getIdleTimeout());
55         builder.setPriority(action.getPriority());
56         builder.setTableId(action.getTableId());
57         builder.setFlowMods(getFlowMods(action));
58     }
59
60     private static List<FlowMods> getFlowMods(NxActionLearn action) {
61         if(action.getFlowMods() == null){
62             return null;
63         }
64
65         List<FlowMods> flowMods = new ArrayList<FlowMods>();
66         for(org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.learn.grouping.nx.action.learn.FlowMods flowMod : action.getFlowMods()){
67             FlowModsBuilder flowModBuilder = new FlowModsBuilder();
68             FlowModSpec flowModSpec = buildFlowModSpec(flowMod.getFlowModSpec());
69             flowModBuilder.setFlowModSpec(flowModSpec);
70             flowMods.add(flowModBuilder.build());
71         }
72         return flowMods;
73     }
74
75
76     private static FlowModSpec buildFlowModSpec(org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.FlowModSpec flowModSpec) {
77         if(flowModSpec instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModAddMatchFromFieldCase){
78             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.add.match.from.field._case.FlowModAddMatchFromField flowModAdd2 = 
79                     ((org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModAddMatchFromFieldCase) flowModSpec).getFlowModAddMatchFromField(); 
80             FlowModAddMatchFromFieldBuilder flowModAdd = new FlowModAddMatchFromFieldBuilder();
81             flowModAdd.setDstField(flowModAdd2.getDstField());
82             flowModAdd.setSrcField(flowModAdd2.getSrcField());
83             flowModAdd.setDstOfs(flowModAdd2.getDstOfs());
84             flowModAdd.setSrcOfs(flowModAdd2.getSrcOfs());
85             flowModAdd.setFlowModNumBits(flowModAdd2.getFlowModNumBits());
86             FlowModAddMatchFromFieldCaseBuilder caseBuilder = new FlowModAddMatchFromFieldCaseBuilder();
87             caseBuilder.setFlowModAddMatchFromField(flowModAdd.build());
88             return caseBuilder.build();
89         } else if(flowModSpec instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModAddMatchFromValueCase){
90             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.add.match.from.value._case.FlowModAddMatchFromValue flowModAdd2 = 
91                     ((org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModAddMatchFromValueCase) flowModSpec).getFlowModAddMatchFromValue(); 
92             FlowModAddMatchFromValueBuilder flowModAdd = new FlowModAddMatchFromValueBuilder();
93             flowModAdd.setValue(flowModAdd2.getValue());
94             flowModAdd.setSrcField(flowModAdd2.getSrcField());
95             flowModAdd.setSrcOfs(flowModAdd2.getSrcOfs());
96             flowModAdd.setFlowModNumBits(flowModAdd2.getFlowModNumBits());
97             FlowModAddMatchFromValueCaseBuilder caseBuilder = new FlowModAddMatchFromValueCaseBuilder();
98             caseBuilder.setFlowModAddMatchFromValue(flowModAdd.build());
99             return caseBuilder.build();
100         } else if(flowModSpec instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModCopyFieldIntoFieldCase){
101             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.copy.field.into.field._case.FlowModCopyFieldIntoField flowModCopy2 = 
102                     ((org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModCopyFieldIntoFieldCase) flowModSpec).getFlowModCopyFieldIntoField(); 
103             FlowModCopyFieldIntoFieldBuilder flowModCopy = new FlowModCopyFieldIntoFieldBuilder();
104             flowModCopy.setDstField(flowModCopy2.getDstField());
105             flowModCopy.setDstOfs(flowModCopy2.getDstOfs());
106             flowModCopy.setSrcField(flowModCopy2.getSrcField());
107             flowModCopy.setSrcOfs(flowModCopy2.getSrcOfs());
108             flowModCopy.setFlowModNumBits(flowModCopy2.getFlowModNumBits());
109             FlowModCopyFieldIntoFieldCaseBuilder caseBuilder = new FlowModCopyFieldIntoFieldCaseBuilder();
110             caseBuilder.setFlowModCopyFieldIntoField(flowModCopy.build());
111             return caseBuilder.build();
112         } else if(flowModSpec instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModCopyValueIntoFieldCase){
113             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.copy.value.into.field._case.FlowModCopyValueIntoField flowModCopy2 = 
114                     ((org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModCopyValueIntoFieldCase) flowModSpec).getFlowModCopyValueIntoField(); 
115             FlowModCopyValueIntoFieldBuilder flowModCopy = new FlowModCopyValueIntoFieldBuilder();
116             flowModCopy.setValue(flowModCopy2.getValue());
117             flowModCopy.setDstField(flowModCopy2.getDstField());
118             flowModCopy.setDstOfs(flowModCopy2.getDstOfs());
119             flowModCopy.setFlowModNumBits(flowModCopy2.getFlowModNumBits());
120             FlowModCopyValueIntoFieldCaseBuilder caseBuilder = new FlowModCopyValueIntoFieldCaseBuilder();
121             caseBuilder.setFlowModCopyValueIntoField(flowModCopy.build());
122             return caseBuilder.build();
123         } else if(flowModSpec instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModOutputToPortCase){
124             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.output.to.port._case.FlowModOutputToPort flowModOut2 = 
125                     ((org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModOutputToPortCase) flowModSpec).getFlowModOutputToPort(); 
126             FlowModOutputToPortBuilder flowModOut = new FlowModOutputToPortBuilder();
127             flowModOut.setSrcField(flowModOut2.getSrcField());
128             flowModOut.setSrcOfs(flowModOut2.getSrcOfs());
129             flowModOut.setFlowModNumBits(flowModOut2.getFlowModNumBits());
130             FlowModOutputToPortCaseBuilder caseBuilder = new FlowModOutputToPortCaseBuilder();
131             caseBuilder.setFlowModOutputToPort(flowModOut.build());
132             return caseBuilder.build();
133         }
134         return null;
135     }
136
137     /*
138      *                                  CONVERT DOWN
139      */
140
141     static void convertDown(NxActionLearnGrouping nxAction, NxActionLearnBuilder nxActionLearnBuilder) {
142         nxActionLearnBuilder.setFlags(nxAction.getNxLearn().getFlags());
143         nxActionLearnBuilder.setCookie(nxAction.getNxLearn().getCookie());
144         nxActionLearnBuilder.setFinHardTimeout(nxAction.getNxLearn().getFinHardTimeout());
145         nxActionLearnBuilder.setFinIdleTimeout(nxAction.getNxLearn().getFinIdleTimeout());
146         nxActionLearnBuilder.setHardTimeout(nxAction.getNxLearn().getHardTimeout());
147         nxActionLearnBuilder.setIdleTimeout(nxAction.getNxLearn().getIdleTimeout());
148         nxActionLearnBuilder.setPriority(nxAction.getNxLearn().getPriority());
149         nxActionLearnBuilder.setTableId(nxAction.getNxLearn().getTableId());
150         nxActionLearnBuilder.setFlowMods(getFlowMods(nxAction.getNxLearn()));
151     }
152
153     private static List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.learn.grouping.nx.action.learn.FlowMods> getFlowMods(
154             NxLearn nxLearn) {
155         if(nxLearn.getFlowMods() == null){
156             return null;
157         }
158
159         List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.learn.grouping.nx.action.learn.FlowMods> flowMods = new ArrayList<>();
160         for(FlowMods flowMod : nxLearn.getFlowMods()){
161             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.learn.grouping.nx.action.learn.FlowModsBuilder flowModBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.learn.grouping.nx.action.learn.FlowModsBuilder();
162             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.FlowModSpec flowModSpec = buildFlowModSpec(flowMod.getFlowModSpec());
163             flowModBuilder.setFlowModSpec(flowModSpec);
164             flowMods.add(flowModBuilder.build());
165         }
166         return flowMods;
167     }
168
169     private static org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.FlowModSpec buildFlowModSpec(FlowModSpec flowModSpec) {
170         if(flowModSpec instanceof FlowModAddMatchFromFieldCase){
171             FlowModAddMatchFromField flowModAdd2 = ((FlowModAddMatchFromFieldCase) flowModSpec).getFlowModAddMatchFromField();
172             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.add.match.from.field._case.FlowModAddMatchFromFieldBuilder 
173                 flowModAdd = new org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.add.match.from.field._case.FlowModAddMatchFromFieldBuilder();
174             flowModAdd.setDstField(flowModAdd2.getDstField());
175             flowModAdd.setSrcField(flowModAdd2.getSrcField());
176             flowModAdd.setDstOfs(flowModAdd2.getDstOfs());
177             flowModAdd.setSrcOfs(flowModAdd2.getSrcOfs());
178             flowModAdd.setFlowModNumBits(flowModAdd2.getFlowModNumBits());
179             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModAddMatchFromFieldCaseBuilder 
180                 caseBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModAddMatchFromFieldCaseBuilder();
181             caseBuilder.setFlowModAddMatchFromField(flowModAdd.build());
182             return caseBuilder.build();
183         } else if(flowModSpec instanceof FlowModAddMatchFromValueCase){
184             FlowModAddMatchFromValue flowModAdd2 = ((FlowModAddMatchFromValueCase) flowModSpec).getFlowModAddMatchFromValue();
185             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.add.match.from.value._case.FlowModAddMatchFromValueBuilder 
186                 flowModAdd = new org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.add.match.from.value._case.FlowModAddMatchFromValueBuilder();
187             flowModAdd.setValue(flowModAdd2.getValue());
188             flowModAdd.setSrcField(flowModAdd2.getSrcField());
189             flowModAdd.setSrcOfs(flowModAdd2.getSrcOfs());
190             flowModAdd.setFlowModNumBits(flowModAdd2.getFlowModNumBits());
191             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModAddMatchFromValueCaseBuilder 
192                 caseBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModAddMatchFromValueCaseBuilder();
193             caseBuilder.setFlowModAddMatchFromValue(flowModAdd.build());
194             return caseBuilder.build();
195         } else if(flowModSpec instanceof FlowModCopyFieldIntoFieldCase){
196             FlowModCopyFieldIntoField flowModCopy2 = ((FlowModCopyFieldIntoFieldCase) flowModSpec).getFlowModCopyFieldIntoField();
197             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.copy.field.into.field._case.FlowModCopyFieldIntoFieldBuilder 
198                 flowModCopy = new org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.copy.field.into.field._case.FlowModCopyFieldIntoFieldBuilder();
199             flowModCopy.setDstField(flowModCopy2.getDstField());
200             flowModCopy.setDstOfs(flowModCopy2.getDstOfs());
201             flowModCopy.setSrcField(flowModCopy2.getSrcField());
202             flowModCopy.setSrcOfs(flowModCopy2.getSrcOfs());
203             flowModCopy.setFlowModNumBits(flowModCopy2.getFlowModNumBits());
204             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModCopyFieldIntoFieldCaseBuilder 
205                 caseBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModCopyFieldIntoFieldCaseBuilder();
206             caseBuilder.setFlowModCopyFieldIntoField(flowModCopy.build());
207             return caseBuilder.build();
208         } else if (flowModSpec instanceof FlowModCopyValueIntoFieldCase) {
209             FlowModCopyValueIntoField flowModCopy2 = ((FlowModCopyValueIntoFieldCase) flowModSpec).getFlowModCopyValueIntoField();
210             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.copy.value.into.field._case.FlowModCopyValueIntoFieldBuilder 
211                 flowModCopy = new org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.copy.value.into.field._case.FlowModCopyValueIntoFieldBuilder();
212             flowModCopy.setDstField(flowModCopy2.getDstField());
213             flowModCopy.setDstOfs(flowModCopy2.getDstOfs());
214             flowModCopy.setValue(flowModCopy2.getValue());
215             flowModCopy.setFlowModNumBits(flowModCopy2.getFlowModNumBits());
216             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModCopyValueIntoFieldCaseBuilder 
217                 caseBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModCopyValueIntoFieldCaseBuilder();
218             caseBuilder.setFlowModCopyValueIntoField(flowModCopy.build());
219             return caseBuilder.build();
220         } else if (flowModSpec instanceof FlowModOutputToPortCase) {
221             FlowModOutputToPort flowModOut2 = ((FlowModOutputToPortCase) flowModSpec).getFlowModOutputToPort();
222             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.output.to.port._case.FlowModOutputToPortBuilder 
223                 flowModOut = new org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.output.to.port._case.FlowModOutputToPortBuilder();
224             flowModOut.setSrcField(flowModOut2.getSrcField());
225             flowModOut.setSrcOfs(flowModOut2.getSrcOfs());
226             flowModOut.setFlowModNumBits(flowModOut2.getFlowModNumBits());
227             org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModOutputToPortCaseBuilder 
228                 caseBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.FlowModOutputToPortCaseBuilder();
229             caseBuilder.setFlowModOutputToPort(flowModOut.build());
230             return caseBuilder.build();
231         }
232         return null;
233     }
234
235 }