fnMatchFunction = function (oNode) {

				// do not count the artificial root node
				if (!oNode || !oNode.isArtificial) {
					iNodeCounter++;
				}

				if (oNode) {
					//if the node is inside the range -> select it
					if (iNodeCounter >= iNewFromIndex && iNodeCounter <= iNewToIndex) {

						if (this._isNodeSelectable(oNode)) {
							// fetch the node index if its selection state changes
							if (oNode.nodeState.selected !== !!bSelectionValue) {
								aChangedIndices.push(iNodeCounter);
							}

							// remember the old lead selection index if we encounter it
							// (might not happen if the lead selection is outside the newly set range)
							if (oNode.groupID === this._sLeadSelectionGroupID) {
								iOldLeadIndex = iNodeCounter;
							}

							// select/deselect node, but suppress the selection change event
							this.setNodeSelection(oNode.nodeState, !!bSelectionValue);
						}

						return true;
					}
				}

				return false;
			}
Sets the value inside the given range to the value given with 'bSelectionValue'.

@param {number} iFromIndex
  The starting index of the selection range
@param {number} iToIndex
  The end index of the selection range, which will be included in the selection
@param {boolean} bSelectionValue
  The selection state which should be applied to all indices between 'from' and 'to'
  index

@returns {object}
  A map containing info about the changed selection

@private