Skip to content

Commit

Permalink
Java/integ acarbo add xtrim refactor options (#253)
Browse files Browse the repository at this point in the history
* Refactor stream options into a package

Signed-off-by: Andrew Carbonetto <[email protected]>

* Fix linking

Signed-off-by: Andrew Carbonetto <[email protected]>

* SPOTLESS

Signed-off-by: Andrew Carbonetto <[email protected]>

---------

Signed-off-by: Andrew Carbonetto <[email protected]>
  • Loading branch information
acarbonetto committed Apr 26, 2024
1 parent 2766989 commit f0bf73a
Show file tree
Hide file tree
Showing 10 changed files with 250 additions and 248 deletions.
4 changes: 2 additions & 2 deletions java/client/src/main/java/glide/api/BaseClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -112,9 +112,9 @@
import glide.api.models.commands.RangeOptions.ScoredRangeQuery;
import glide.api.models.commands.ScriptOptions;
import glide.api.models.commands.SetOptions;
import glide.api.models.commands.StreamOptions.StreamAddOptions;
import glide.api.models.commands.StreamOptions.StreamTrimOptions;
import glide.api.models.commands.ZaddOptions;
import glide.api.models.commands.stream.StreamAddOptions;
import glide.api.models.commands.stream.StreamTrimOptions;
import glide.api.models.configuration.BaseClientConfiguration;
import glide.api.models.exceptions.RedisException;
import glide.connectors.handlers.CallbackDispatcher;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/** Copyright GLIDE-for-Redis Project Contributors - SPDX Identifier: Apache-2.0 */
package glide.api.commands;

import glide.api.models.commands.StreamOptions.StreamAddOptions;
import glide.api.models.commands.StreamOptions.StreamAddOptions.StreamAddOptionsBuilder;
import glide.api.models.commands.StreamOptions.StreamTrimOptions;
import glide.api.models.commands.stream.StreamAddOptions;
import glide.api.models.commands.stream.StreamAddOptions.StreamAddOptionsBuilder;
import glide.api.models.commands.stream.StreamTrimOptions;
import java.util.Map;
import java.util.concurrent.CompletableFuture;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,10 +128,10 @@
import glide.api.models.commands.SetOptions;
import glide.api.models.commands.SetOptions.ConditionalSet;
import glide.api.models.commands.SetOptions.SetOptionsBuilder;
import glide.api.models.commands.StreamOptions.StreamAddOptions;
import glide.api.models.commands.StreamOptions.StreamAddOptions.StreamAddOptionsBuilder;
import glide.api.models.commands.StreamOptions.StreamTrimOptions;
import glide.api.models.commands.ZaddOptions;
import glide.api.models.commands.stream.StreamAddOptions;
import glide.api.models.commands.stream.StreamAddOptions.StreamAddOptionsBuilder;
import glide.api.models.commands.stream.StreamTrimOptions;
import java.util.Arrays;
import java.util.Map;
import lombok.Getter;
Expand Down
221 changes: 0 additions & 221 deletions java/client/src/main/java/glide/api/models/commands/StreamOptions.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/** Copyright GLIDE-for-Redis Project Contributors - SPDX Identifier: Apache-2.0 */
package glide.api.models.commands.stream;

import glide.api.commands.StreamBaseCommands;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import lombok.Builder;

/**
* Optional arguments to {@link StreamBaseCommands#xadd(String, Map, StreamAddOptions)}
*
* @see <a href="https://redis.io/commands/xadd/">redis.io</a>
*/
@Builder
public final class StreamAddOptions {
public static final String NO_MAKE_STREAM_REDIS_API = "NOMKSTREAM";
public static final String ID_WILDCARD_REDIS_API = "*";

/** If set, the new entry will be added with this <code>id</code>. */
private final String id;

/**
* If set to <code>false</code>, a new stream won't be created if no stream matches the given key.
* <br>
* Equivalent to <code>NOMKSTREAM</code> in the Redis API.
*/
private final Boolean makeStream;

/** If set, the add operation will also trim the older entries in the stream. */
private final StreamTrimOptions trim;

/**
* Converts options for Xadd into a String[].
*
* @return String[]
*/
public String[] toArgs() {
List<String> optionArgs = new ArrayList<>();

if (makeStream != null && !makeStream) {
optionArgs.add(NO_MAKE_STREAM_REDIS_API);
}

if (trim != null) {
optionArgs.addAll(trim.getRedisApi());
}

if (id != null) {
optionArgs.add(id);
} else {
optionArgs.add(ID_WILDCARD_REDIS_API);
}

return optionArgs.toArray(new String[0]);
}
}
Loading

0 comments on commit f0bf73a

Please sign in to comment.