package org.jtwig.value.context;
import org.jtwig.value.Undefined;
import java.util.HashMap;
import java.util.Map;
public class MapValueContext implements ValueContext {
public static MapValueContext newContext () {
return new MapValueContext(new HashMap<String, Object>());
}
public static MapValueContext newContext (Map<String, Object> map) {
return new MapValueContext(new HashMap<>(map));
}
private final Map<String, Object> values;
public MapValueContext(Map<String, Object> values) {
this.values = values;
}
@Override
public Object resolve(String key) {
if (values.containsKey(key)) return values.get(key);
else return Undefined.UNDEFINED;
}
@Override
public ValueContext with(String key, Object value) {
values.put(key, value);
return this;
}
}