public LeftTuple(final LeftTuple leftTuple, LeftTupleSink sink, boolean leftTupleMemoryEnabled) {
    this.index = leftTuple.index;
    this.parent = leftTuple.parent;
    this.recency = leftTuple.recency;
    this.handle = leftTuple.handle;
    this.hashCode = leftTuple.hashCode();

    if (leftTupleMemoryEnabled) {
      this.leftParent = leftTuple;
      this.leftParentNext = leftTuple.children;
      if (this.leftParentNext != null) {
        this.leftParentNext.leftParentPrevious = this;
      }
      this.leftParent.children = this;
    }

    this.sink = sink;
  }