1 package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider;
 
   3 import java.util.Collection;
 
   4 import java.util.HashSet;
 
   5 import java.util.Objects;
 
   7 import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DMDOMUtility;
 
   8 import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
 
   9 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
 
  10 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.InventoryBuilder;
 
  11 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 
  12 import org.opendaylight.yangtools.yang.common.Uint32;
 
  13 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 
  14 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 
  15 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 
  16 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
 
  17 import org.slf4j.Logger;
 
  18 import org.slf4j.LoggerFactory;
 
  20 public class Onf14DomToInternalDataModel {
 
  21     private static final Logger LOG = LoggerFactory.getLogger(Onf14DomToInternalDataModel.class);
 
  23     public Inventory getInternalEquipment(NodeId nodeId, MapEntryNode currentEq, MapEntryNode parentEq,
 
  26         Objects.requireNonNull(nodeId);
 
  27         Objects.requireNonNull(currentEq);
 
  29         InventoryBuilder inventoryBuilder = new InventoryBuilder();
 
  30         String parentUuid = parentEq != null ? Onf14DMDOMUtility.getUuidFromEquipment(parentEq) : "None";
 
  33         inventoryBuilder.setNodeId(nodeId.getValue());
 
  34         inventoryBuilder.setTreeLevel(Uint32.valueOf(treeLevel));
 
  35         inventoryBuilder.setUuid(Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
 
  36         inventoryBuilder.setParentUuid(parentUuid);
 
  38         Set<String> containedHolderKeyList = new HashSet<>();
 
  39         MapNode containedHolderMap = (MapNode) currentEq
 
  40                 .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_CONTAINED_HOLDER));
 
  41         if (containedHolderMap != null) {
 
  42             Collection<MapEntryNode> containedHolderCollection = containedHolderMap.body();
 
  43             for (MapEntryNode holder : containedHolderCollection) {
 
  44                 String occupyingFru = Onf14DMDOMUtility.getLeafValue(holder,
 
  45                         Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_OCCUPYING_FRU);
 
  47                 if (occupyingFru != null) {
 
  48                     containedHolderKeyList.add(occupyingFru);
 
  52         inventoryBuilder.setContainedHolder(containedHolderKeyList);
 
  55         ContainerNode actualEquipment = (ContainerNode) currentEq
 
  56                 .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQUIPMENT));
 
  57         if (actualEquipment != null) {
 
  58             ContainerNode manThing = (ContainerNode) actualEquipment
 
  59                     .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURED_THING));
 
  60             if (manThing != null) {
 
  61                 // Manufacturer properties
 
  62                 ContainerNode props = (ContainerNode) manThing
 
  63                         .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURER_PROPS));
 
  65                     inventoryBuilder.setManufacturerName(Onf14DMDOMUtility.getLeafValue(props,
 
  66                             Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURER_NAME));
 
  68                     inventoryBuilder.setManufacturerIdentifier(Onf14DMDOMUtility.getLeafValue(props,
 
  69                             Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURER_ID));
 
  72                     LOG.debug("manufacturer-properties is not present in Equipment with uuid={}",
 
  73                             Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
 
  77                 ContainerNode equipmentInstance = (ContainerNode) manThing.childByArg(
 
  78                         new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE));
 
  79                 if (equipmentInstance != null) {
 
  80                     inventoryBuilder.setSerial(Onf14DMDOMUtility.getLeafValue(equipmentInstance,
 
  81                             Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE_SERIAL_NUM));
 
  83                     inventoryBuilder.setDate(Onf14DMDOMUtility.getLeafValue(equipmentInstance,
 
  84                             Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE_MANUFACTURED_DATE));
 
  87                     LOG.debug("equipment-instance is not present in Equipment with uuid={}",
 
  88                             Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
 
  92                 ContainerNode equipmentType = (ContainerNode) manThing.childByArg(
 
  93                         new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE));
 
  94                 if (equipmentType != null) {
 
  95                     inventoryBuilder.setVersion(Onf14DMDOMUtility.getLeafValue(equipmentType,
 
  96                             Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_VERSION));
 
  98                     inventoryBuilder.setDescription(Onf14DMDOMUtility.getLeafValue(equipmentType,
 
  99                             Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_DESCRIPTION));
 
 101                     inventoryBuilder.setPartTypeId(Onf14DMDOMUtility.getLeafValue(equipmentType,
 
 102                             Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_PART_TYPE_ID));
 
 104                     inventoryBuilder.setModelIdentifier(Onf14DMDOMUtility.getLeafValue(equipmentType,
 
 106                             Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_MODEL_ID));
 
 108                     inventoryBuilder.setTypeName(Onf14DMDOMUtility.getLeafValue(equipmentType,
 
 109                             Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_TYPE_NAME));
 
 112                     LOG.debug("equipment-type is not present in Equipment with uuid={}",
 
 113                             Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
 
 116                 LOG.debug("manufactured-thing is not present in Equipment with uuid={}",
 
 117                         Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
 
 120             LOG.debug("actual-equipment is not present in Equipment with uuid={}",
 
 121                     Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
 
 124         return inventoryBuilder.build();