"use strict";
/**
* @module opcua.miscellaneous
* @class ToolBrowsePath
*
* @static
*/
const BrowsePath = require("../_generated_/_auto_generated_BrowsePath").BrowsePath;
const makeNodeId = require("node-opcua-nodeid").makeNodeId;
const ReferenceTypeIds = require("node-opcua-constants").ReferenceTypeIds;
const hierarchicalReferencesId = makeNodeId(ReferenceTypeIds.HierarchicalReferences);
exports.stringToQualifiedName = require("node-opcua-data-model").stringToQualifiedName;
/**
* @method constructBrowsePathFromQualifiedName
* @param startingNode
* @param browsePath
* @return {number|*|BrowsePath}
*/
function constructBrowsePathFromQualifiedName(startingNode, browsePath) {
browsePath = browsePath || [];
const elements = browsePath.map(function (targetName) {
return {
referenceTypeId: hierarchicalReferencesId,
isInverse: false,
includeSubtypes: true,
targetName: targetName
};
});
browsePath = new BrowsePath({
startingNode: startingNode.nodeId, // ROOT
relativePath: {
elements: elements
}
});
return browsePath;
}
exports.constructBrowsePathFromQualifiedName = constructBrowsePathFromQualifiedName;