package com.cxy.redisclient.integration.set; import java.util.Iterator; import java.util.Set; import com.cxy.redisclient.domain.NodeType; import com.cxy.redisclient.integration.I18nFile; import com.cxy.redisclient.integration.JedisCommand; import com.cxy.redisclient.presentation.RedisClient; public abstract class AddSet extends JedisCommand { protected int db; protected String key; protected String[] values; protected long size; public long getSize() { return size; } public AddSet(int id, int db, String key, Set<String> values) { super(id); this.db = db; this.key = key; int size = values.size(); this.values = new String[size]; Iterator<String> iterator = values.iterator(); int i = 0; while (iterator.hasNext()) { String value = (String) iterator.next(); this.values[i++] = value; } this.size = 0; } public AddSet(int id, int db, String key, String[] values) { super(id); this.db = db; this.key = key; this.values = values; this.size = 0; } @Override protected void command() { jedis.select(db); if(jedis.exists(key) && getValueType(key) != NodeType.SET) throw new RuntimeException(RedisClient.i18nFile.getText(I18nFile.SETEXIST)+key); addSet(); } protected abstract void addSet(); }