public void performAction(BindingTracker bindingTracker, int level,
Object object, Field field, Object value, Predicate<Field> predicate)
throws InstantiationException
{
final String key = BindableUtils.getKey(field);
try
{
for (IAttributeTransformer transformer : transformers)
{
value = transformer.transform(value, key, field);
}
if (bindingTracker.canBind(object, key, level))
{
values.put(key, value);
}
}
catch (final Exception e)
{
throw new AttributeBindingException(key, "Could not get field value "
+ object.getClass().getName() + "#" + field.getName(), e);
}
}
}