package redis.clients.jedis.params; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import redis.clients.util.SafeEncoder; public abstract class Params { private Map<String, Object> params; @SuppressWarnings("unchecked") public <T> T getParam(String name) { if (params == null) return null; return (T) params.get(name); } public byte[][] getByteParams() { ArrayList<byte[]> byteParams = new ArrayList<byte[]>(); for (Entry<String, Object> param : params.entrySet()) { byteParams.add(SafeEncoder.encode(param.getKey())); if (param.getValue() != null) { byteParams.add(SafeEncoder.encode(String.valueOf(param.getValue()))); } } return byteParams.toArray(new byte[byteParams.size()][]); } public boolean contains(String name) { if (params == null) return false; return params.containsKey(name); } protected void addParam(String name, Object value) { if (params == null) { params = new HashMap<String, Object>(); } params.put(name, value); } protected void addParam(String name) { if (params == null) { params = new HashMap<String, Object>(); } params.put(name, null); } }