src/sap.ui.core/src/sap/ui/model/odata/ODataTreeBindingFlat.js
function (oNode, oSubtreeHandle) {
			var oSubtree = oSubtreeHandle._getSubtree();

			if (oSubtreeHandle) {
				// subtree is flat
				if (Array.isArray(oSubtree)) {
					if (oSubtreeHandle._oSubtreeRoot) {
						// jump to a certain position in the flat structure and map the nodes
						fnTraverseFlatSubtree(oSubtree, oSubtreeHandle._oSubtreeRoot.serverIndex, oSubtreeHandle._oSubtreeRoot, oSubtreeHandle._oSubtreeRoot.originalLevel || 0, oNode.level + 1);
					} else {
						// newly added nodes
						fnTraverseFlatSubtree(oSubtree, null, null, 0, oNode.level + 1);
					}

				} else {
					// subtree is deep
					oSubtreeHandle._oSubtreeRoot.level = oNode.level + 1;
					fnTraverseDeepSubtree(oSubtreeHandle._oSubtreeRoot, false, oSubtreeHandle._oNewParentNode, -1, oSubtreeHandle._oSubtreeRoot);
				}
			}
		}
function (oNode, oSubtreeHandle) {
			var oSubtree = oSubtreeHandle._getSubtree();

			if (oSubtreeHandle) {
				// subtree is flat
				if (Array.isArray(oSubtree)) {
					if (oSubtreeHandle._oSubtreeRoot) {
						// jump to a certain position in the flat structure and map the nodes
						fnTraverseFlatSubtree(oSubtree, oSubtreeHandle._oSubtreeRoot.serverIndex, oSubtreeHandle._oSubtreeRoot, oSubtreeHandle._oSubtreeRoot.originalLevel || 0, oNode.level + 1);
					} else {
						// newly added nodes
						fnTraverseFlatSubtree(oSubtree, null, null, 0, oNode.level + 1);
					}

				} else {
					// subtree is deep
					oSubtreeHandle._oSubtreeRoot.level = oNode.level + 1;
					fnTraverseDeepSubtree(oSubtreeHandle._oSubtreeRoot, false, oSubtreeHandle._oNewParentNode, -1, oSubtreeHandle._oSubtreeRoot);
				}
			}
		}
function ( oNode , oSubtreeHandle ) { var oSubtree = oSubtreeHandle . _getSubtree ( ) ; if ( oSubtreeHandle ) { // subtree is flat if ( Array . isArray ( oSubtree ) ) { if ( oSubtreeHandle . _oSubtreeRoot ) { // jump to a certain position in the flat structure and map the nodes fnTraverseFlatSubtree ( oSubtree , oSubtreeHandle . _oSubtreeRoot . serverIndex , oSubtreeHandle . _oSubtreeRoot , oSubtreeHandle . _oSubtreeRoot . originalLevel || 0 , oNode . level + 1 ) ; } else { // newly added nodes fnTraverseFlatSubtree ( oSubtree , null , null , 0 , oNode . level + 1 ) ; } } else { // subtree is deep oSubtreeHandle . _oSubtreeRoot . level = oNode . level + 1 ; fnTraverseDeepSubtree ( oSubtreeHandle . _oSubtreeRoot , false , oSubtreeHandle . _oNewParentNode , - 1 , oSubtreeHandle . _oSubtreeRoot ) ; } } }
Traverses a re-inserted or newly added subtree.
This can be a combination of flat and deep trees.

Decides if the traversal has to branche over to a flat or a deep part of the tree.

@param {object} oNode the parent node
@param {object} the subtree handle, inside there is either a deep or a flat tree stored
Traverses a re - inserted or newly added subtree . This can be a combination of flat and deep trees .