package org.osgl.util;
import org.osgl.Osgl;
import java.util.Map;
/**
* Implement {@link PropertySetter} on {@link java.util.Map} type entity specifically
*/
public class MapPropertySetter extends MapPropertyHandler implements PropertySetter {
public MapPropertySetter(Class<?> keyType, Class<?> valType) {
super(keyType, valType);
}
MapPropertySetter(Osgl.Function<Class<?>, Object> objectFactory,
Osgl.Func2<String, Class<?>, ?> stringValueResolver,
Class<?> keyType,
Class<?> valType) {
super(objectFactory, stringValueResolver, keyType, valType);
setNullValuePolicy(PropertyGetter.NullValuePolicy.CREATE_NEW);
}
@Override
public void set(Object entity, Object value, Object index) {
Map map = (Map) entity;
Object key = keyFrom(index);
map.put(key, value);
}
}