Skip to content
Open
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
64 changes: 64 additions & 0 deletions src/main/java/redis/clients/jedis/CommandObject.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,76 @@
package redis.clients.jedis;

import java.util.EnumSet;
import java.util.Iterator;
import redis.clients.jedis.args.Rawable;

public class CommandObject<T> {

/**
* Command flags based on command flags exposed by Redis.
* See <a href="https://redis.io/docs/latest/commands/command/#flags">Command flags</a> for more details.
*
* Flags description:
* - READONLY: Command doesn't modify data
* - WRITE: Command may modify data
* - DENYOOM: Command may increase memory usage (deny if out of memory)
* - ADMIN: Administrative command
* - PUBSUB: Pub/Sub related command
* - NOSCRIPT: Command not allowed in scripts
* - RANDOM: Command has random output for same input
* - SORT_FOR_SCRIPT: Command output needs sorting for scripts
* - LOADING: Command allowed while database is loading
* - STALE: Command allowed on stale replicas
* - SKIP_MONITOR: Command not shown in MONITOR output
* - SKIP_SLOWLOG: Command not shown in slowlog
* - ASKING: Command allowed in cluster ASKING state
* - FAST: Command has O(1) time complexity
* - MOVABLEKEYS: Command key positions may vary
* - MODULE: Module command
* - BLOCKING: Command may block the client
* - NO_AUTH: Command allowed without authentication
* - NO_ASYNC_LOADING: Command not allowed during async loading
* - NO_MULTI: Command not allowed in MULTI/EXEC
* - NO_MANDATORY_KEYS: Command may work without keys
* - ALLOW_BUSY: Command allowed when server is busy
*/
public enum CommandFlag {
READONLY,
WRITE,
DENYOOM,
ADMIN,
PUBSUB,
NOSCRIPT,
SORT_FOR_SCRIPT,
LOADING,
STALE,
SKIP_MONITOR,
ASKING,
FAST,
MOVABLEKEYS,
MODULE,
BLOCKING,
NO_AUTH,
NO_ASYNC_LOADING,
NO_MULTI,
NO_MANDATORY_KEYS,
ALLOW_BUSY
}

private final CommandArguments arguments;
private final Builder<T> builder;
private EnumSet<CommandFlag> flags;

public CommandObject(CommandArguments args, Builder<T> builder) {
this.arguments = args;
this.builder = builder;
this.flags = EnumSet.noneOf(CommandFlag.class);
}

public CommandObject(CommandArguments args, Builder<T> builder, EnumSet<CommandFlag> commandFlags) {
this.arguments = args;
this.builder = builder;
this.flags = commandFlags;
}

public CommandArguments getArguments() {
Expand All @@ -21,6 +81,10 @@ public Builder<T> getBuilder() {
return builder;
}

public EnumSet<CommandFlag> getFlags() {
return flags;
}

@Override
public int hashCode() {
int hashCode = 1;
Expand Down
5,422 changes: 3,738 additions & 1,684 deletions src/main/java/redis/clients/jedis/CommandObjects.java

Large diffs are not rendered by default.

This file was deleted.

Loading
Loading