// Path: src/main/java/redis/clients/collections/Ranking.java
// public interface Ranking<T extends Number> {
// 
// 	T getPoints();
// 	
// 	String getName();
// }
// 
// Path: src/main/java/redis/clients/collections/ScoresPoint.java
// public interface ScoresPoint<T extends Number> {
// 
// 	void initialPoint(String name, T value);
// 	
// 	T increment(String field, T value);
// 	
// 	T decrement(String field, T value);
// 	
// 	void remove(String field);
// 
// 	int size();
// 	
// 	List<Ranking<T>> range(long initial, long end);
// 	
// 	List<Ranking<T>> top(int top);
// 	
// 	List<Ranking<T>> last(int top);
// 	
// 	List<Ranking<T>> getRanking();
// }


import java.util.List;
import java.util.Objects;
import redis.clients.collections.Ranking;
import redis.clients.collections.ScoresPoint;
import redis.clients.jedis.Jedis;
package redis.clients.collections.builder;



abstract class AbstractScoresPoint<T extends Number> implements ScoresPoint<T> {

	protected String keyWithNameSpace;
	
	protected Jedis jedis;

	AbstractScoresPoint(Jedis jedis, String keyWithNameSpace) {
		this.keyWithNameSpace = keyWithNameSpace;
		this.jedis = jedis;
	}
	

	@Override
	public void remove(String name) {
		jedis.zrem(keyWithNameSpace, name);
	}

	@Override
	public int size() {
		return jedis.zcard(keyWithNameSpace).intValue();
	}
	
	@Override
// Path: src/main/java/redis/clients/collections/Ranking.java
// public interface Ranking<T extends Number> {
// 
// 	T getPoints();
// 	
// 	String getName();
// }
// 
// Path: src/main/java/redis/clients/collections/ScoresPoint.java
// public interface ScoresPoint<T extends Number> {
// 
// 	void initialPoint(String name, T value);
// 	
// 	T increment(String field, T value);
// 	
// 	T decrement(String field, T value);
// 	
// 	void remove(String field);
// 
// 	int size();
// 	
// 	List<Ranking<T>> range(long initial, long end);
// 	
// 	List<Ranking<T>> top(int top);
// 	
// 	List<Ranking<T>> last(int top);
// 	
// 	List<Ranking<T>> getRanking();
// }


// Path: src/main/java/redis/clients/collections/builder/AbstractScoresPoint.java
import java.util.List;
import java.util.Objects;
import redis.clients.collections.Ranking;
import redis.clients.collections.ScoresPoint;
import redis.clients.jedis.Jedis;

package redis.clients.collections.builder;



abstract class AbstractScoresPoint<T extends Number> implements ScoresPoint<T> {

	protected String keyWithNameSpace;
	
	protected Jedis jedis;

	AbstractScoresPoint(Jedis jedis, String keyWithNameSpace) {
		this.keyWithNameSpace = keyWithNameSpace;
		this.jedis = jedis;
	}
	

	@Override
	public void remove(String name) {
		jedis.zrem(keyWithNameSpace, name);
	}

	@Override
	public int size() {
		return jedis.zcard(keyWithNameSpace).intValue();
	}
	
	@Override
	public List<Ranking<T>> top(int top) {