@Override public Object invoke(ELContext context, Object base, Object method, Class<?>[] paramTypes, Object[] params) { return delegate.invoke(context, base, method, paramTypes, params); } }
/** * Returns the ELContext that was created. This is a type-safe equivalent of the * java.util.EventObject.getSource() method. * * @return the ELContext that was created. */ public ELContext getELContext() { return (ELContext) getSource(); } }
@Override public void setValue(ELContext context, Object base, Object property, Object value) { throw new PropertyNotWritableException("Cannot write property: " + property); } }
@Override protected ELResolver createElResolver(VariableContainer variableContainer) { CompositeELResolver compositeElResolver = new CompositeELResolver(); compositeElResolver.add(new ProcessVariableScopeELResolver(variableContainer)); compositeElResolver.add(new MockElResolver()); compositeElResolver.add(new ArrayELResolver()); compositeElResolver.add(new ListELResolver()); compositeElResolver.add(new MapELResolver()); compositeElResolver.add(new BeanELResolver()); compositeElResolver.add(new CouldNotResolvePropertyELResolver()); return compositeElResolver; }
@Override public Object eval(Bindings bindings, ELContext context) { ValueExpression expression = bindings.getVariable(index); if (expression != null) { return expression.getValue(context); } context.setPropertyResolved(false); Object result = context.getELResolver().getValue(context, null, name); if (!context.isPropertyResolved()) { throw new PropertyNotFoundException(LocalMessages.get("error.identifier.property.notfound", name)); } return result; }
@Override public Class<?> getType(Bindings bindings, ELContext context) { ValueExpression expression = bindings.getVariable(index); if (expression != null) { return expression.getType(context); } context.setPropertyResolved(false); Class<?> result = context.getELResolver().getType(context, null, name); if (!context.isPropertyResolved()) { throw new PropertyNotFoundException(LocalMessages.get("error.identifier.property.notfound", name)); } return result; }
@Override public boolean isReadOnly(Bindings bindings, ELContext context) { ValueExpression expression = bindings.getVariable(index); if (expression != null) { return expression.isReadOnly(context); } context.setPropertyResolved(false); boolean result = context.getELResolver().isReadOnly(context, null, name); if (!context.isPropertyResolved()) { throw new PropertyNotFoundException(LocalMessages.get("error.identifier.property.notfound", name)); } return result; }
@Override protected void invoke() { valueExpression.setValue(elContext, value); }
@Override protected void invoke() { invocationResult = valueExpression.getValue(elContext); }
@Override public ValueReference getValueReference(Bindings bindings, ELContext context) { ValueExpression expression = bindings.getVariable(index); if (expression != null) { return expression.getValueReference(context); } return new ValueReference(null, name); }
@Override public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base) { return delegate.getFeatureDescriptors(context, base); }
public boolean isReadOnly() { return getWriteMethod() == null; } }
@Override public boolean isReadOnly(ELContext context, Object base, Object property) { return delegate.isReadOnly(context, base, property); }
/** * If the base object is a map, returns the most general type that this resolver accepts for the * property argument. Otherwise, returns null. Assuming the base is a Map, this method will * always return Object.class. This is because Maps accept any object as a key. * * @param context * The context of this evaluation. * @param base * The map to analyze. Only bases of type Map are handled by this resolver. * @return null if base is not a Map; otherwise Object.class. */ @Override public Class<?> getCommonPropertyType(ELContext context, Object base) { return isResolvable(base) ? Object.class : null; }
@Override public Class<?> getCommonPropertyType(ELContext context, Object base) { return delegate.getCommonPropertyType(context, base); }
private ELResolver createElResolver() { CompositeELResolver compositeResolver = new CompositeELResolver(); compositeResolver.add(new ArrayELResolver()); compositeResolver.add(new ListELResolver()); compositeResolver.add(new MapELResolver()); compositeResolver.add(new JsonNodeELResolver()); compositeResolver.add(new ResourceBundleELResolver()); compositeResolver.add(new DynamicBeanPropertyELResolver(ItemInstance.class, "getFieldValue", "setFieldValue")); compositeResolver.add(new BeanELResolver()); compositeResolver.add(new CouldNotResolvePropertyELResolver()); return new SimpleResolver(compositeResolver); }
protected void resolveSetValueExpression(Object value, ELContext elContext) { valueExpression.setValue(elContext, value); }
@Override protected void invoke() { invocationResult = valueExpression.getValue(elContext); }
private ELResolver createElResolver() { CompositeELResolver compositeResolver = new CompositeELResolver(); compositeResolver.add(new ArrayELResolver()); compositeResolver.add(new ListELResolver()); compositeResolver.add(new MapELResolver()); compositeResolver.add(new JsonNodeELResolver()); compositeResolver.add(new ResourceBundleELResolver()); compositeResolver.add(new DynamicBeanPropertyELResolver(ItemInstance.class, "getFieldValue", "setFieldValue")); compositeResolver.add(new BeanELResolver()); return new SimpleResolver(compositeResolver); }
@Override protected void invoke() { valueExpression.setValue(elContext, value); }