UNPKG

dynatrace-cordova-outsystems-plugin

Version:

This plugin gives you the ability to use the Dynatrace instrumentation in your hybrid application (Cordova, Ionic, ..). It uses the Mobile Agent, the JavaScript Agent and the Javascript Bridge. The Mobile Agent will give you all device specific values con

55 lines (44 loc) 1.94 kB
'use strict'; module.exports = class SymbolTreeNode { constructor() { this.parent = null; this.previousSibling = null; this.nextSibling = null; this.firstChild = null; this.lastChild = null; /** This value is incremented anytime a children is added or removed */ this.childrenVersion = 0; /** The last child object which has a cached index */ this.childIndexCachedUpTo = null; /** This value represents the cached node index, as long as * cachedIndexVersion matches with the childrenVersion of the parent */ this.cachedIndex = -1; this.cachedIndexVersion = NaN; // NaN is never equal to anything } get isAttached() { return Boolean(this.parent || this.previousSibling || this.nextSibling); } get hasChildren() { return Boolean(this.firstChild); } childrenChanged() { /* jshint -W016 */ // integer wrap around this.childrenVersion = (this.childrenVersion + 1) & 0xFFFFFFFF; this.childIndexCachedUpTo = null; } getCachedIndex(parentNode) { // (assumes parentNode is actually the parent) if (this.cachedIndexVersion !== parentNode.childrenVersion) { this.cachedIndexVersion = NaN; // cachedIndex is no longer valid return -1; } return this.cachedIndex; // -1 if not cached } setCachedIndex(parentNode, index) { // (assumes parentNode is actually the parent) this.cachedIndexVersion = parentNode.childrenVersion; this.cachedIndex = index; } };