public void populate(final Object[] params, final Map<Class<?>, Object> value) throws DecodeException {
final Map<String, String> data = (Map<String, String>) value.get(Map.class);
for (int i = 0; i < positions.length; ++i) {
String name = positions[i];
if (name != null) {
Encoding encoding = encoders[i];
if (encoding == null) {
params[i] = data.get(name);
} else {
params[i] = encoding.decodeText(types[i], data.get(name));
}
}
}
}