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

com.github.ltsopensource.core.loadbalance.AbstractLoadBalance Maven / Gradle / Ivy

package com.github.ltsopensource.core.loadbalance;

import java.util.List;

/**
 * Robert HG ([email protected]) on 3/25/15.
 */
public abstract class AbstractLoadBalance implements LoadBalance {

    @Override
    public  S select(List shards, String seed) {
        if (shards == null || shards.size() == 0) {
            return null;
        }

        if (shards.size() == 1) {
            return shards.get(0);
        }

        return doSelect(shards, seed);
    }

    protected abstract  S doSelect(List shards, String seed);

}