
com.lambdaworks.redis.SortArgs Maven / Gradle / Ivy
// Copyright (C) 2011 - Will Glozer. All rights reserved.
package com.lambdaworks.redis;
import com.lambdaworks.redis.protocol.CommandArgs;
import com.lambdaworks.redis.protocol.CommandKeyword;
import java.util.ArrayList;
import java.util.List;
import static com.lambdaworks.redis.protocol.CommandKeyword.*;
import static com.lambdaworks.redis.protocol.CommandType.GET;
/**
* Argument list builder for the redis SORT
* command. Static import the methods from {@link Builder} and chain the method calls:
* by("weight_*").desc().limit(0, 2)
.
*
* @author Will Glozer
*/
public class SortArgs {
private String by;
private Long offset, count;
private List get;
private CommandKeyword order;
private boolean alpha;
/**
* Static builder methods.
*/
public static class Builder {
public static SortArgs by(String pattern) {
return new SortArgs().by(pattern);
}
public static SortArgs limit(long offset, long count) {
return new SortArgs().limit(offset, count);
}
public static SortArgs get(String pattern) {
return new SortArgs().get(pattern);
}
public static SortArgs asc() {
return new SortArgs().asc();
}
public static SortArgs desc() {
return new SortArgs().desc();
}
public static SortArgs alpha() {
return new SortArgs().alpha();
}
}
public SortArgs by(String pattern) {
by = pattern;
return this;
}
public SortArgs limit(long offset, long count) {
this.offset = offset;
this.count = count;
return this;
}
public SortArgs get(String pattern) {
if (get == null) {
get = new ArrayList();
}
get.add(pattern);
return this;
}
public SortArgs asc() {
order = ASC;
return this;
}
public SortArgs desc() {
order = DESC;
return this;
}
public SortArgs alpha() {
alpha = true;
return this;
}
void build(CommandArgs args, K store) {
if (by != null) {
args.add(BY);
args.add(by);
}
if (get != null) {
for (String pattern : get) {
args.add(GET);
args.add(pattern);
}
}
if (offset != null) {
args.add(LIMIT);
args.add(offset);
args.add(count);
}
if (order != null) {
args.add(order);
}
if (alpha) {
args.add(ALPHA);
}
if (store != null) {
args.add(STORE);
args.addKey(store);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy