b31545f6b01ff65d812af13f19378351c068aa69
[hc2vpp.git] /
1 package io.fd.honeycomb.v3po.translate.v3po.initializers;
2
3 import com.google.common.collect.Lists;
4 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceBuilder;
5 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan.rev150527.SubInterfaceStatus;
6 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan.rev150527.SubinterfaceAugmentation;
7 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan.rev150527.SubinterfaceAugmentationBuilder;
8 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan.rev150527.SubinterfaceStateAugmentation;
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan.rev150527.interfaces._interface.sub.interfaces.SubInterfaceKey;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan.rev150527.interfaces.state._interface.SubInterfaces;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan.rev150527.interfaces.state._interface.sub.interfaces.SubInterface;
12
13 /**
14  * Utility class for sub interface initialization
15  */
16 final class SubInterfaceInitializationUtils {
17
18     private SubInterfaceInitializationUtils() {
19         throw new UnsupportedOperationException("Utility class cannot be instantiated");
20     }
21
22     static void initializeSubinterfaceStateAugmentation(
23             final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface input,
24             final InterfaceBuilder builder) {
25         final SubinterfaceStateAugmentation subIfcAugmentation =
26                 input.getAugmentation(SubinterfaceStateAugmentation.class);
27         if (subIfcAugmentation != null) {
28             final SubinterfaceAugmentationBuilder augmentBuilder = new SubinterfaceAugmentationBuilder();
29
30             final SubInterfaces subInterfaces = subIfcAugmentation.getSubInterfaces();
31             if (subInterfaces != null) {
32                 setSubInterfaces(augmentBuilder, subInterfaces);
33             }
34
35             builder.addAugmentation(SubinterfaceAugmentation.class, augmentBuilder.build());
36         }
37     }
38
39     private static void setSubInterfaces(final SubinterfaceAugmentationBuilder augmentBuilder,
40                                          final SubInterfaces operationalData) {
41
42         final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan.rev150527.interfaces._interface.SubInterfacesBuilder
43                 subInterfacesCfgBuilder =
44                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan.rev150527.interfaces._interface.SubInterfacesBuilder();
45         subInterfacesCfgBuilder.setSubInterface(Lists.transform(operationalData.getSubInterface(),
46                 SubInterfaceInitializationUtils::convertSubInterface));
47         augmentBuilder.setSubInterfaces(subInterfacesCfgBuilder.build());
48     }
49
50     private static org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan.rev150527.interfaces._interface.sub.interfaces.SubInterface convertSubInterface(
51             final SubInterface operationalData) {
52         org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan.rev150527.interfaces._interface.sub.interfaces.SubInterfaceBuilder subInterfaceCfgBuilder =
53                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan.rev150527.interfaces._interface.sub.interfaces.SubInterfaceBuilder();
54
55         subInterfaceCfgBuilder.setEnabled(SubInterfaceStatus.Up.equals(operationalData.getAdminStatus()));
56         subInterfaceCfgBuilder.setIdentifier(operationalData.getIdentifier());
57         subInterfaceCfgBuilder.setKey(new SubInterfaceKey(operationalData.getIdentifier()));
58         subInterfaceCfgBuilder.setL2(operationalData.getL2());
59         subInterfaceCfgBuilder.setMatch(operationalData.getMatch());
60         subInterfaceCfgBuilder.setTags(operationalData.getTags());
61         subInterfaceCfgBuilder.setVlanType(operationalData.getVlanType());
62
63         return subInterfaceCfgBuilder.build();
64     }
65
66 }