bpmn-js/test/spec/features/copy-paste/DescriptorTree.js

59 lines
1021 B
JavaScript

'use strict';
var forEach = require('lodash/collection/forEach');
function DescriptorTree(tree) {
this._tree = {};
this._length = 0;
forEach(tree, function(branch, depth) {
if (branch.length) {
this._length += 1;
}
forEach(branch, function(element) {
element.depth = parseInt(depth, 10);
this._tree[element.id] = element;
}, this);
}, this);
}
module.exports = DescriptorTree;
DescriptorTree.prototype.getLength = function() {
return this._length;
};
DescriptorTree.prototype.getElement = function(id) {
return this._tree[id];
};
DescriptorTree.prototype.getDepth = function(depth) {
var newTree = {};
forEach(this._tree, function(element) {
if (element.depth === depth) {
newTree[element.id] = element;
}
});
return newTree;
};
DescriptorTree.prototype.getDepthLength = function(depth) {
var length = 0;
forEach(this._tree, function(element) {
if (element.depth === depth) {
length += 1;
}
});
return length;
};