Object value = converters.convert(mergeObject(collectionChange.getValue(), cache), elementType);
((Set<Object>)collection).add(value);
Object value = converters.convert(mergeObject(collectionChange.getValue(), cache), elementType);
((List<Object>)collection).add((Integer)collectionChange.getKey(), value);
Object key = converters.convert(mergeObject(collectionChange.getKey(), cache), keyType);
Object value = converters.convert(mergeObject(collectionChange.getValue(), cache), valueType);
((Map<Object, Object>)collection).put(key, value);
Object value = converters.convert(mergeObject(collectionChange.getValue(), cache), elementType);
Object removed = ((Set<Object>)collection).remove(value);
cache.add(removed);
Object key = converters.convert(mergeObject(collectionChange.getKey(), cache), keyType);
Object removed = ((Map<Object, Object>)collection).remove(key);
cache.add(removed);
Object value = converters.convert(mergeObject(collectionChange.getValue(), cache), elementType);
((List<Object>)collection).set(index, value);
Object key = converters.convert(mergeObject(collectionChange.getKey(), cache), keyType);
Object value = converters.convert(mergeObject(collectionChange.getValue(), cache), valueType);
((Map<Object, Object>)collection).put(key, value);
Object value = mergeObject(me.getValue(), cache);
value = converters.convert(value, propertyDescriptor.getWriteMethod().getGenericParameterTypes()[0]);
propertyDescriptor.getWriteMethod().invoke(entity, value);