class BlobTransferRequest<T extends ReplicationRequest<T>>
    extends ReplicationRequest<T>
    implements IPutChunkRequest {

    private boolean last;
    private UUID transferId;
    private BytesReference content;

    public BytesReference content() {
        return content;
    }

    public boolean isLast() {
        return last;
    }

    public BlobTransferRequest(ShardId shardId, UUID transferId, BytesReference content, boolean last) {
        super(shardId);
        this.transferId = transferId;
        this.content = content;
        this.last = last;
    }

    public BlobTransferRequest() {
    }

    public BlobTransferRequest(StreamInput in) throws IOException {
        super(in);
        transferId = new UUID(in.readLong(), in.readLong());
        content = in.readBytesReference();
        last = in.readBoolean();
    }

    @Override
    public void writeTo(StreamOutput out) throws IOException {
        super.writeTo(out);
        out.writeLong(transferId.getMostSignificantBits());
        out.writeLong(transferId.getLeastSignificantBits());
        out.writeBytesReference(content);
        out.writeBoolean(last);
    }

    public UUID transferId() {
        return transferId;
    }

    @Override
    public String toString() {<FILL_FUNCTION_BODY>}
}

        return "BlobTransferRequest{" +
               "last=" + last +
               ", transferId=" + transferId +
               '}';
    
<methods>public void <init>() ,public void <init>(org.elasticsearch.index.shard.ShardId) ,public void <init>(org.elasticsearch.common.io.stream.StreamInput) throws java.io.IOException,public java.lang.String getDescription() ,public java.lang.String index() ,public final T index(java.lang.String) ,public java.lang.String[] indices() ,public org.elasticsearch.action.support.IndicesOptions indicesOptions() ,public void onRetry() ,public T setShardId(org.elasticsearch.index.shard.ShardId) ,public org.elasticsearch.index.shard.ShardId shardId() ,public final T timeout(io.crate.common.unit.TimeValue) ,public final T timeout(java.lang.String) ,public io.crate.common.unit.TimeValue timeout() ,public abstract java.lang.String toString() ,public org.elasticsearch.action.support.ActiveShardCount waitForActiveShards() ,public final T waitForActiveShards(org.elasticsearch.action.support.ActiveShardCount) ,public final T waitForActiveShards(int) ,public void writeTo(org.elasticsearch.common.io.stream.StreamOutput) throws java.io.IOException<variables>public static final io.crate.common.unit.TimeValue DEFAULT_TIMEOUT,protected java.lang.String index,private long routedBasedOnClusterVersion,protected org.elasticsearch.index.shard.ShardId shardId,protected io.crate.common.unit.TimeValue timeout,protected org.elasticsearch.action.support.ActiveShardCount waitForActiveShards