Skip to content

Commit

Permalink
ArgsBuilder now collects all arguments and returns GlideString[]
Browse files Browse the repository at this point in the history
Restored large value tests
  • Loading branch information
eifrah-aws committed Jul 1, 2024
1 parent 218af8f commit 7fba7ef
Show file tree
Hide file tree
Showing 6 changed files with 156 additions and 176 deletions.
25 changes: 14 additions & 11 deletions java/client/src/main/java/glide/api/models/ArgsBuilder.java
Original file line number Diff line number Diff line change
@@ -1,37 +1,40 @@
/** Copyright Valkey GLIDE Project Contributors - SPDX Identifier: Apache-2.0 */
package glide.api.models;

import com.google.protobuf.ByteString;
import redis_request.RedisRequestOuterClass.Command.ArgsArray;
import java.util.ArrayList;

// TODO docs for the god of docs
/**
* Helper class for collecting arbitrary type of arguments and stores them as an array of
* GlideString
*/
public class ArgsBuilder {
ArgsArray.Builder commandArgs = null;
ArrayList<GlideString> argumentsList = null;

public ArgsBuilder() {
commandArgs = ArgsArray.newBuilder();
argumentsList = new ArrayList<>();
}

public <ArgType> ArgsBuilder add(ArgType[] args) {
for (ArgType arg : args) {
commandArgs.addArgs(ByteString.copyFrom(GlideString.of(arg).getBytes()));
argumentsList.add(GlideString.of(arg));
}

return this;
}

public <ArgType> ArgsBuilder add(ArgType arg) {
commandArgs.addArgs(ByteString.copyFrom(GlideString.of(arg).getBytes()));
argumentsList.add(GlideString.of(arg));
return this;
}

public <ArgType> ArgsBuilder add(String[] args) {
public ArgsBuilder add(String[] args) {
for (String arg : args) {
commandArgs.addArgs(ByteString.copyFromUtf8(arg));
argumentsList.add(GlideString.of(arg));
}
return this;
}

public ArgsArray build() {
return commandArgs.build();
public GlideString[] toArray() {
return argumentsList.toArray(new GlideString[0]);
}
}
Loading

0 comments on commit 7fba7ef

Please sign in to comment.