package com.lambdaworks.redis;
import com.lambdaworks.redis.protocol.CommandArgs;
/**
* Argument list builder for the improved redis <a href="http://redis.io/commands/zadd">ZADD</a> command starting from Redis
* 3.0.2. Static import the methods from {@link Builder} and call the methods: {@code xx()} or {@code nx()} .
*
* @author Mark Paluch
*/
public class ZAddArgs {
private boolean nx = false;
private boolean xx = false;
private boolean ch = false;
public static class Builder {
/**
* Utility constructor.
*/
private Builder() {
}
public static ZAddArgs nx() {
return new ZAddArgs().nx();
}
public static ZAddArgs xx() {
return new ZAddArgs().xx();
}
public static ZAddArgs ch() {
return new ZAddArgs().ch();
}
}
public ZAddArgs nx() {
this.nx = true;
return this;
}
public ZAddArgs ch() {
this.ch = true;
return this;
}
public ZAddArgs xx() {
this.xx = true;
return this;
}
public <K, V> void build(CommandArgs<K, V> args) {
if (nx) {
args.add("NX");
}
if (xx) {
args.add("XX");
}
if (ch) {
args.add("CH");
}
}
}