/** * {@inheritDoc} */ public Set<String> listPropertyNames() { Jedis jedis = null; try { jedis = getJedis(); Set<String> propertyNames = jedis.smembers(KEY_PROPERTY_MAP); return propertyNames; } finally { if (jedis != null) { jedis.close(); } } }
/** * {@inheritDoc} */ public void deleteProperty(String name) { assertPropertyExist(name); Jedis jedis = null; try { jedis = getJedis(); jedis.srem(KEY_PROPERTY_MAP, name); jedis.del(KEY_PROPERTY + name); } finally { if (jedis != null) { jedis.close(); } } }
/** * {@inheritDoc} */ public Property<?> readProperty(String name) { assertPropertyExist(name); Jedis jedis = null; try { jedis = getJedis(); return PropertyJsonParser.parseProperty(jedis.get(KEY_PROPERTY + name)); } finally { if (jedis != null) { jedis.close(); } } }
/** * {@inheritDoc} */ public Map<String, Property<?>> readAllProperties() { LinkedHashMap<String, Property<?>> mapP = new LinkedHashMap<String, Property<?>>(); Jedis jedis = null; try { jedis = getJedis(); Set<String> properties = jedis.smembers(KEY_PROPERTY_MAP); if (properties != null) { for (String key : properties) { mapP.put(key, readProperty(key)); } } return mapP; } finally { if (jedis != null) { jedis.close(); } } }
/** * {@inheritDoc} */ public boolean existProperty(String name) { Util.assertParamHasLength(name, "PropertyName identifier"); Jedis jedis = null; try { jedis = getJedis(); return jedis.exists(KEY_PROPERTY + name); } finally { if (jedis != null) { jedis.close(); } } }
/** * {@inheritDoc} */ public void clear() { Jedis jedis = null; try { jedis = getJedis(); Set<String> myKeys = jedis.smembers(KEY_PROPERTY_MAP); for (String key : myKeys) { deleteProperty(key); } } finally { if (jedis != null) { jedis.close(); } } }
/** * {@inheritDoc} */ public <T> void createProperty(Property<T> prop) { Util.assertNotNull(prop); if (existProperty(prop.getName())) { throw new PropertyAlreadyExistException(prop.getName()); } Jedis jedis = null; try { jedis = getJedis(); String name = prop.getName(); // Store the feature in the mapping bucket. jedis.sadd(KEY_PROPERTY_MAP, name); jedis.set(KEY_PROPERTY + name, prop.toJson()); jedis.persist(KEY_PROPERTY + name); } finally { if (jedis != null) { jedis.close(); } } }