}
}
private PropertyDelegate tryMakePropertyDelegate(Field field) throws NoSuchMethodException,
IllegalAccessException, InvocationTargetException, InstantiationException {
ResolveMatchWith resolveMatchWith = field.getAnnotation(ResolveMatchWith.class);
if (resolveMatchWith == null) {
return delegationFactory.makeDelegate(field, locale);
} else {
Constructor<? extends PropertyDelegate> delegateConstructor = resolveMatchWith.value()
.getConstructor(Field.class, Locale.class);
delegateConstructor.setAccessible(true);
return delegateConstructor.newInstance(field, locale);
}
}