X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fcompatibility%2Fflow-management-compatibility%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Ffrm%2Fcompatibility%2FFlowConfigMapping.xtend;fp=opendaylight%2Fmd-sal%2Fcompatibility%2Fflow-management-compatibility%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Ffrm%2Fcompatibility%2FFlowConfigMapping.xtend;h=e4d917337848967a0917e24538bcb28348f11184;hp=0000000000000000000000000000000000000000;hb=cfa6e9d0a2193edb2a2e36c04ca95eaf28a651f9;hpb=18fa9cb41678400d1decd007a66fc1f7be894f66 diff --git a/opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FlowConfigMapping.xtend b/opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FlowConfigMapping.xtend new file mode 100644 index 0000000000..e4d9173378 --- /dev/null +++ b/opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FlowConfigMapping.xtend @@ -0,0 +1,60 @@ +package org.opendaylight.controller.md.frm.compatibility + +import org.opendaylight.controller.forwardingrulesmanager.FlowConfig +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.flows.FlowBuilder + +import static extension org.opendaylight.controller.sal.compatibility.NodeMapping.* +import static org.opendaylight.controller.sal.compatibility.MDFlowMapping.* +import static org.opendaylight.controller.sal.compatibility.ToSalConversionsUtils.* + +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.flows.FlowKey +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.flows.Flow +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.IdentifiableItem +import org.opendaylight.yangtools.yang.binding.Identifiable + +class FlowConfigMapping { + + static def toConfigurationFlow(FlowConfig sourceCfg) { + val source = flowAdded(sourceCfg.flow); + val it = new FlowBuilder(); + instructions = source.instructions; + cookie = source.cookie; + hardTimeout = source.hardTimeout + idleTimeout = source.idleTimeout + match = source.match + node = source.node + key = new FlowKey(sourceCfg.name,node); + return it.build(); + } + + static def toFlowConfig(Flow sourceCfg) { + val flow = toFlow(sourceCfg); + val it = new FlowConfig; + name = sourceCfg.key.id + node = sourceCfg.node.toADNode(); + + return it + } + + static def toFlowConfig(InstanceIdentifier identifier) { + val it = new FlowConfig() + val FlowKey key = ((identifier.path.get(2) as IdentifiableItem).key) + name = key.id; + node = key.node.toADNode(); + + return it; + } + + static def boolean isFlowPath(InstanceIdentifier path) { + if(path.path.size < 2) return false; + if (path.path.get(2) instanceof IdentifiableItem) { + val IdentifiableItem> item = path.path.get(2) as IdentifiableItem>; + val Identifiable key = item.key; + if (key instanceof FlowKey) { + return true; + } + } + return false; + } +}