@Override public synchronized Object put(Object key, Object value) { return delegate.put((String) key, (String) value); }
@Override @SuppressWarnings("unchecked") public synchronized void putAll(Map<? extends Object, ? extends Object> t) { delegate.putAll((Map<? extends String, ? extends String>) t); }
@Override public synchronized Object get(Object key) { return delegate.get(key); }
private void writeToMap(final RedisMap<Object, Object> map, Message<?> message) { final Object payload = message.getPayload(); if (this.extractPayloadElements && payload instanceof Map<?, ?>) { processInPipeline(() -> map.putAll((Map<?, ?>) payload)); } else { Object key = this.determineMapKey(message, false); map.put(key, payload); } }
@Test @RedisAvailable public void testMapToMapWithProvidedKey() { RedisMap<String, String> redisMap = new DefaultRedisMap<String, String>("pepboys", this.redisTemplate); assertEquals(0, redisMap.size()); Map<String, String> pepboys = new HashMap<String, String>(); pepboys.put("1", "Manny"); pepboys.put("2", "Moe"); pepboys.put("3", "Jack"); Message<Map<String, String>> message = MessageBuilder.withPayload(pepboys).build(); this.mapToMapAChannel.send(message); assertEquals("Manny", redisMap.get("1")); assertEquals("Moe", redisMap.get("2")); assertEquals("Jack", redisMap.get("3")); RedisStoreWritingMessageHandler handler = this.beanFactory.getBean("mapToMapA.handler", RedisStoreWritingMessageHandler.class); assertEquals("pepboys", TestUtils.getPropertyValue(handler, "keyExpression", LiteralExpression.class).getExpressionString()); assertEquals("'foo'", TestUtils.getPropertyValue(handler, "mapKeyExpression", SpelExpression.class).getExpressionString()); }
@Override public synchronized int size() { return delegate.size(); }
@Override @SuppressWarnings("unchecked") public Set<Object> keySet() { return (Set) delegate.keySet(); }
@Override @SuppressWarnings("unchecked") public Set<Entry<Object, Object>> entrySet() { return (Set) delegate.entrySet(); }
@Override public boolean containsValue(Object value) { return delegate.containsValue(value); }
@Override public synchronized boolean containsKey(Object key) { return delegate.containsKey(key); }
@Override public synchronized void clear() { delegate.clear(); }
@Override public synchronized boolean isEmpty() { return delegate.isEmpty(); }
private void writeToMap(final RedisMap<Object, Object> map, Message<?> message) { final Object payload = message.getPayload(); if (this.extractPayloadElements && payload instanceof Map<?, ?>) { processInPipeline(() -> map.putAll((Map<?, ?>) payload)); } else { Object key = this.determineMapKey(message, false); map.put(key, payload); } }
@Test @RedisAvailable public void testStoreSimpleStringInMap() { RedisMap<String, String> redisMap = new DefaultRedisMap<String, String>("bar", this.redisTemplate); assertEquals(0, redisMap.size()); Message<String> message = MessageBuilder.withPayload("hello, world!"). setHeader(RedisHeaders.KEY, "bar").setHeader(RedisHeaders.MAP_KEY, "foo").build(); this.simpleMapChannel.send(message); String hello = redisMap.get("foo"); assertEquals("hello, world!", hello); }
@Test(expected = MessageHandlingException.class) // map key is not provided @RedisAvailable public void testMapToMapAsSingleEntryWithKeyAsHeaderFail() { RedisMap<String, Map<String, String>> redisMap = new DefaultRedisMap<String, Map<String, String>>("pepboys", this.redisTemplate); assertEquals(0, redisMap.size()); Map<String, String> pepboys = new HashMap<String, String>(); pepboys.put("1", "Manny"); pepboys.put("2", "Moe"); pepboys.put("3", "Jack"); Message<Map<String, String>> message = MessageBuilder.withPayload(pepboys). setHeader(RedisHeaders.KEY, "pepboys").build(); this.mapToMapBChannel.send(message); }
@Override public Enumeration<?> propertyNames() { Set<String> keys = new LinkedHashSet<>(delegate.keySet()); if (defaults != null) { keys.addAll(defaults.stringPropertyNames()); } return Collections.enumeration(keys); }
@Override @SuppressWarnings("unchecked") public Set<Entry<Object, Object>> entrySet() { return (Set) delegate.entrySet(); }
@Override public boolean containsValue(Object value) { return delegate.containsValue(value); }
@Override public synchronized boolean containsKey(Object key) { return delegate.containsKey(key); }
@Override public synchronized void clear() { delegate.clear(); }