rgncycle-ui/app/utils/relations.js

46 lines
1.5 KiB
JavaScript

import {getMap} from './entities';
/*
* create Relations array of Entity arrays
*/
export function createRelationsOfEntities(entities,relations){
const rltnsRry = new Array();
if(entities.length === 0){
console.error('relations:createRelationsOfEntities() ntts NOT available');
return rltnsRry;
}
//console.log('relations:createRelationsOfEntities() # ntts: ' + entities.length);
if(relations.length === 0){
console.error('relations:createRelationsOfEntities() rltns NOT available');
return rltnsRry;
}
//console.log('relations:createRelationsOfEntities() # rltns: ' + relations.length);
const entitiesMap = getMap(entities);
for(let i=0; i<relations.length; i++){
const relation = relations[i];
//get From Entity
let fromEntity = null;
if(!entitiesMap.has(relation[1])){
console.error('relations:createRelationsOfEntities() From Entity NOT known');
return rltnsRry;
}else{
fromEntity = entitiesMap.get(relation[1]);
}
//get To Entity
let toEntity = null;
if(!entitiesMap.has(relation[2])){
console.error('relations:createRelationsOfEntities() To Entity NOT known');
return rltnsRry;
}else{
toEntity = entitiesMap.get(relation[2]);
}
const rry = [fromEntity, toEntity];
rltnsRry.push(rry);
//console.log('relations:createRelationsOfEntities() # rltnsRry: ' + rltnsRry.length);
}
//console.log('relations:createRelationsOfEntities() # rltnsRry: ' + rltnsRry.length);
return rltnsRry;
}