All Downloads are FREE. Search and download functionalities are using the official Maven repository.

redis.clients.jedis.ZParams Maven / Gradle / Ivy

There is a newer version: 1.13.0
Show newest version
package redis.clients.jedis;

import static redis.clients.jedis.Protocol.Keyword.AGGREGATE;
import static redis.clients.jedis.Protocol.Keyword.WEIGHTS;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

import redis.clients.util.SafeEncoder;

public class ZParams {
  public enum Aggregate {
    SUM, MIN, MAX;

    public final byte[] raw;

    Aggregate() {
      raw = SafeEncoder.encode(name());
    }
  }

  private List params = new ArrayList();

  /**
   * Set weights.
   * @param weights weights.
   * @deprecated Use {@link #weightsByDouble(double...)} instead
   */
  @Deprecated
  public ZParams weights(final int... weights) {
    params.add(WEIGHTS.raw);
    for (final int weight : weights) {
      params.add(Protocol.toByteArray(weight));
    }

    return this;
  }

  /**
   * Set weights.
   * @param weights weights.
   */
  public ZParams weightsByDouble(final double... weights) {
    params.add(WEIGHTS.raw);
    for (final double weight : weights) {
      params.add(Protocol.toByteArray(weight));
    }

    return this;
  }

  public Collection getParams() {
    return Collections.unmodifiableCollection(params);
  }

  public ZParams aggregate(final Aggregate aggregate) {
    params.add(AGGREGATE.raw);
    params.add(aggregate.raw);
    return this;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy