| 74 | } |
| 75 | |
| 76 | @Override |
| 77 | public Object getValue(ELContext context, Object base, Object property) { |
| 78 | Objects.requireNonNull(context); |
| 79 | if (base == null || property == null) { |
| 80 | return null; |
| 81 | } |
| 82 | |
| 83 | context.setPropertyResolved(base, property); |
| 84 | Method m = this.property(context, base, property).read(context, base); |
| 85 | try { |
| 86 | return m.invoke(base, (Object[]) null); |
| 87 | } catch (InvocationTargetException e) { |
| 88 | Throwable cause = e.getCause(); |
| 89 | Util.handleThrowable(cause); |
| 90 | throw new ELException( |
| 91 | Util.message(context, "propertyReadError", base.getClass().getName(), property.toString()), cause); |
| 92 | } catch (Exception e) { |
| 93 | throw new ELException(e); |
| 94 | } |
| 95 | } |
| 96 | |
| 97 | @Override |
| 98 | public void setValue(ELContext context, Object base, Object property, Object value) { |