protected LoadBalancerStats getLBStats() {
        if (lbStats != null) {
            return lbStats;
        } else if (rule != null) {
            ILoadBalancer lb = rule.getLoadBalancer();
            if (lb instanceof AbstractLoadBalancer) {
                LoadBalancerStats stats =  ((AbstractLoadBalancer) lb).getLoadBalancerStats();
                setLoadBalancerStats(stats);
                return stats;
            } else {
                return null;
            }
        } else {
            return null;
        }
    }
A basic building block for server filtering logic which can be used in rules and server list filters.
The input object of the predicate is {@link PredicateKey}, which has Server and load balancer key
information. Therefore, it is possible to develop logic to filter servers by both Server and load balancer
key or either one of them. 

@author awang
ribbon-loadbalancer/src/main/java/com/netflix/loadbalancer/AbstractServerPredicate.java