private Object getValue( Method getter, Object source ) {
getter.setAccessible( true );
try {
return getter.invoke( source );
} catch ( IllegalArgumentException cause ) {
throw new MissingSourcePropertyValueException( propertyName, source.getClass(), cause );
} catch ( IllegalAccessException cause ) {
throw new MissingSourcePropertyValueException( propertyName, source.getClass(), cause );
} catch ( InvocationTargetException cause ) {
throw new MissingSourcePropertyValueException( propertyName, source.getClass(), cause );
}
}