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

redis.clients.jedis.resps.TrackingInfo Maven / Gradle / Ivy

There is a newer version: 6.0.0-beta2
Show newest version
package redis.clients.jedis.resps;

import redis.clients.jedis.Builder;
import redis.clients.jedis.util.KeyValue;

import java.util.Collections;
import java.util.List;

import static redis.clients.jedis.BuilderFactory.*;

public class TrackingInfo {

    private final List flags;
    private final long redirect;
    private final List prefixes;

    public TrackingInfo(List flags, long redirect, List prefixes) {
        this.flags = flags;
        this.redirect = redirect;
        this.prefixes = prefixes;
    }


    public List getFlags() {
        return flags;
    }

    public long getRedirect() {
        return redirect;
    }

    public List getPrefixes() {
        return prefixes;
    }

    public static final Builder TRACKING_INFO_BUILDER = new Builder() {
        @Override
        public TrackingInfo build(Object data) {
            List commandData = (List) data;

            if (commandData.get(0) instanceof KeyValue) {
                List flags = Collections.emptyList();
                long redirect = -1;
                List prefixes = Collections.emptyList();

                for (KeyValue kv : (List) commandData) {
                    switch (STRING.build(kv.getKey())) {
                        case "flags":
                            flags = STRING_LIST.build(kv.getValue());
                            break;
                        case "redirect":
                            redirect = LONG.build(kv.getValue());
                            break;
                        case "prefixes":
                            prefixes = STRING_LIST.build(kv.getValue());
                            break;
                    }
                }

                return new TrackingInfo(flags, redirect, prefixes);
            } else {
                List flags = STRING_LIST.build(commandData.get(1));
                long redirect = LONG.build(commandData.get(3));
                List prefixes = STRING_LIST.build(commandData.get(5));

                return new TrackingInfo(flags, redirect, prefixes);
            }
        }
    };
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy