working with index

This commit is contained in:
Luis Fernando Molina committed 2020-07-23 12:13:54 +02:00
1 parent 2c72130261
commit 080215f489
2 files changed
+43 -15

No files matched your search

+38 -10
View File
@@ -12,7 +12,6 @@ function newRecordValues () {
let tradingSystem
let tradingEngine
let productDefinition
let productTargetNode
let propertyTargetNodeMap = new Map()
return thisObject
@@ -20,7 +19,6 @@ function newRecordValues () {
tradingSystem = undefined
tradingEngine = undefined
productDefinition = undefined
productTargetNode = undefined
propertyTargetNodeMap = undefined
}
@@ -28,15 +26,45 @@ function newRecordValues () {
tradingSystem = canvas.designSpace.workspace.getHierarchyHeadsById(pTradingSystem.id)
tradingEngine = canvas.designSpace.workspace.getHierarchyHeadsById(pTradingEngine.id)
productDefinition = pProductDefinition
productTargetNode = eval(productDefinition.config.nodePath)
for (let i = 0; i < productDefinition.record.properties.length; i++) {
let property = productDefinition.record.properties[i]
if (property.config.nodePath !== undefined) {
let propertyRoot = eval(property.config.nodePath)
propertyTargetNodeMap.set(property.id, propertyRoot)
} else {
propertyTargetNodeMap.set(property.id, productTargetNode)
/*
The product root can be a node or a node property of type array.
*/
let productRoot = eval(productDefinition.config.nodePath)
if (productDefinition.config.nodePathType === 'array') {
/*
This means that the configured nodePath is not pointing to a node, but to a node property that is an array.
For that reason we will assume that each element of the array is a record to be outputed
*/
for (let index = 0; index < productRoot.length; index++) {
/*
The Product Root Node is the root of the node hiriarchy from where we are going to extract the record values.
*/
let productRootNode = productRoot[index]
scanProperties(productRootNode, index)
}
} else {
/*
This means that the configured nodePath points to a single node, which is the one whose children constitutes
the record to be saved at the output file.
*/
/*
The Product Root Node is the root of the node hiriarchy from where we are going to extract the record values.
*/
let productRootNode = productRoot
scanProperties(productRootNode)
}
function scanProperties (productRootNode, index) {
for (let i = 0; i < productDefinition.record.properties.length; i++) {
let property = productDefinition.record.properties[i]
if (property.config.nodePath !== undefined) {
let propertyRoot = eval(property.config.nodePath)
propertyTargetNodeMap.set(property.id, propertyRoot)
} else {
propertyTargetNodeMap.set(property.id, productRootNode)
}
}
}
}