/** * Create a new RopeByteString, which can be thought of as a new tree node, by * recording references to the two given strings. * * @param left string on the left of this node, should have {@code size() > * 0} * @param right string on the right of this node, should have {@code size() > * 0} */ private RopeByteString(ByteString left, ByteString right) { this.left = left; this.right = right; leftLength = left.size(); totalLength = leftLength + right.size(); treeDepth = Math.max(left.getTreeDepth(), right.getTreeDepth()) + 1; }
/** * Create a new RopeByteString, which can be thought of as a new tree node, by * recording references to the two given strings. * * @param left string on the left of this node, should have {@code size() > * 0} * @param right string on the right of this node, should have {@code size() > * 0} */ private RopeByteString(ByteString left, ByteString right) { this.left = left; this.right = right; leftLength = left.size(); totalLength = leftLength + right.size(); treeDepth = Math.max(left.getTreeDepth(), right.getTreeDepth()) + 1; }
/** * Create a new RopeByteString, which can be thought of as a new tree node, by * recording references to the two given strings. * * @param left string on the left of this node, should have {@code size() > * 0} * @param right string on the right of this node, should have {@code size() > * 0} */ private RopeByteString(ByteString left, ByteString right) { this.left = left; this.right = right; leftLength = left.size(); totalLength = leftLength + right.size(); treeDepth = Math.max(left.getTreeDepth(), right.getTreeDepth()) + 1; }
result = new RopeByteString(leftRope.left, newRight); } else if (leftRope != null && leftRope.left.getTreeDepth() > leftRope.right.getTreeDepth() && leftRope.getTreeDepth() > right.getTreeDepth()) { int newDepth = Math.max(left.getTreeDepth(), right.getTreeDepth()) + 1; if (newLength >= minLengthByDepth[newDepth]) {
result = new RopeByteString(leftRope.left, newRight); } else if (leftRope != null && leftRope.left.getTreeDepth() > leftRope.right.getTreeDepth() && leftRope.getTreeDepth() > right.getTreeDepth()) { int newDepth = Math.max(left.getTreeDepth(), right.getTreeDepth()) + 1; if (newLength >= minLengthByDepth[newDepth]) {
result = new RopeByteString(leftRope.left, newRight); } else if (leftRope != null && leftRope.left.getTreeDepth() > leftRope.right.getTreeDepth() && leftRope.getTreeDepth() > right.getTreeDepth()) { int newDepth = Math.max(left.getTreeDepth(), right.getTreeDepth()) + 1; if (newLength >= minLengthByDepth[newDepth]) {