Method m = m_properties.get(path); if (m != null) { Object o; try {  o = m.invoke(m_bean, new Object[0]);   String svalue = setting.getType().convertToStringValue(o);  value = new SettingValueImpl(svalue); } catch (IllegalArgumentException e) { throw new RuntimeException(e); } catch (IllegalAccessException e) { throw new RuntimeException(e); } catch (InvocationTargetException e) { throw new RuntimeException(e);
Method m = m_methods.get(path); if (m == null) { return null; } try {  Object result = m.invoke(m_bean); String svalue = setting.getType().convertToStringValue(result);  return new SettingValueImpl(svalue); } catch (IllegalArgumentException e) { throw new RuntimeException(e); } catch (IllegalAccessException e) { throw new RuntimeException(e); } catch (InvocationTargetException e) { if (e.getCause() instanceof NoValueException) {  return null;
    public SettingValue2 getSettingValue(Setting setting) {        SettingValue2 value = null;                String path = setting.getPath();        Method m = m_properties.get(path);        if (m != null) {            Object o;            try {                                // should be getter (although not strictly nec), with no args                o = m.invoke(m_bean, new Object[0]);//                String svalue = o == null ? null : o.toString();                                                String svalue = setting.getType().convertToStringValue(o);                                value = new SettingValueImpl(svalue);                            } catch (IllegalArgumentException e) {                throw new RuntimeException(e);            } catch (IllegalAccessException e) {                throw new RuntimeException(e);            } catch (InvocationTargetException e) {                throw new RuntimeException(e);            }        }        return value;    }