package biz.paluch.logging.gelf;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* Value object to abstract multiple values mapped by a {@link String} key.
*
* @author Mark Paluch
* @since 28.02.14 09:50
*/
public class Values {
private Map<String, Object> values = new HashMap<String, Object>();
public Values() {
}
public Values(String name, Object value) {
if (name != null && value != null) {
values.put(name, value);
}
}
public boolean hasValues() {
return size() != 0;
}
public int size() {
return values.size();
}
public Set<String> getEntryNames() {
return Collections.unmodifiableSet(values.keySet());
}
public void setValue(String key, Object value) {
values.put(key, value);
}
@SuppressWarnings("unchecked")
public <T> T getValue(String key) {
return (T) values.get(key);
}
}