Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/changelog/104956.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
pr: 104956
summary: Changing `ReplicationRequestBuilder` to be an `ActionRequestLazyBuilder`
area: Ingest Node
type: enhancement
issues: []
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

package org.elasticsearch.action.delete;

import org.elasticsearch.action.support.WriteRequest;
import org.elasticsearch.action.support.WriteRequestBuilder;
import org.elasticsearch.action.support.replication.ReplicationRequestBuilder;
import org.elasticsearch.client.internal.ElasticsearchClient;
Expand All @@ -21,15 +22,25 @@ public class DeleteRequestBuilder extends ReplicationRequestBuilder<DeleteReques
implements
WriteRequestBuilder<DeleteRequestBuilder> {

private String id;
private String routing;
private Long version;
private VersionType versionType;
private Long seqNo;
private Long term;
private WriteRequest.RefreshPolicy refreshPolicy;
private String refreshPolicyString;

public DeleteRequestBuilder(ElasticsearchClient client, @Nullable String index) {
super(client, TransportDeleteAction.TYPE, new DeleteRequest(index));
super(client, TransportDeleteAction.TYPE);
setIndex(index);
}

/**
* Sets the id of the document to delete.
*/
public DeleteRequestBuilder setId(String id) {
request.id(id);
this.id = id;
return this;
}

Expand All @@ -38,7 +49,7 @@ public DeleteRequestBuilder setId(String id) {
* and not the id.
*/
public DeleteRequestBuilder setRouting(String routing) {
request.routing(routing);
this.routing = routing;
return this;
}

Expand All @@ -47,15 +58,15 @@ public DeleteRequestBuilder setRouting(String routing) {
* version exists and no changes happened on the doc since then.
*/
public DeleteRequestBuilder setVersion(long version) {
request.version(version);
this.version = version;
return this;
}

/**
* Sets the type of versioning to use. Defaults to {@link VersionType#INTERNAL}.
*/
public DeleteRequestBuilder setVersionType(VersionType versionType) {
request.versionType(versionType);
this.versionType = versionType;
return this;
}

Expand All @@ -67,7 +78,7 @@ public DeleteRequestBuilder setVersionType(VersionType versionType) {
* {@link org.elasticsearch.index.engine.VersionConflictEngineException} will be thrown.
*/
public DeleteRequestBuilder setIfSeqNo(long seqNo) {
request.setIfSeqNo(seqNo);
this.seqNo = seqNo;
return this;
}

Expand All @@ -79,8 +90,59 @@ public DeleteRequestBuilder setIfSeqNo(long seqNo) {
* {@link org.elasticsearch.index.engine.VersionConflictEngineException} will be thrown.
*/
public DeleteRequestBuilder setIfPrimaryTerm(long term) {
request.setIfPrimaryTerm(term);
this.term = term;
return this;
}

@Override
public DeleteRequestBuilder setRefreshPolicy(WriteRequest.RefreshPolicy refreshPolicy) {
this.refreshPolicy = refreshPolicy;
return this;
}

@Override
public DeleteRequestBuilder setRefreshPolicy(String refreshPolicy) {
this.refreshPolicyString = refreshPolicy;
return this;
}

@Override
public DeleteRequest request() {
validate();
DeleteRequest request = new DeleteRequest();
super.apply(request);
if (id != null) {
request.id(id);
}
if (routing != null) {
request.routing(routing);
}
if (version != null) {
request.version(version);
}
if (versionType != null) {
request.versionType(versionType);
}
if (seqNo != null) {
request.setIfSeqNo(seqNo);
}
if (term != null) {
request.setIfPrimaryTerm(term);
}
if (refreshPolicy != null) {
request.setRefreshPolicy(refreshPolicy);
}
if (refreshPolicyString != null) {
request.setRefreshPolicy(refreshPolicyString);
}
return request;
}

@Override
protected void validate() throws IllegalStateException {
super.validate();
if (refreshPolicy != null && refreshPolicyString != null) {
throw new IllegalStateException("Must use only one setRefreshPolicy method");
}
}
}
Loading