public PropertyDetails getPropertyDetailsOfValueBinding()

in core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java [146:187]


    public PropertyDetails getPropertyDetailsOfValueBinding(UIComponent uiComponent)
    {
        if(DEACTIVATE_EL_RESOLVER)
        {
            return getPropertyDetailsViaReflectionFallback(uiComponent);
        }

        FacesContext facesContext = FacesContext.getCurrentInstance();

        ExtValELResolver elResolver =
                new ExtValELResolver(facesContext.getApplication().getELResolver(), this.projectStageDevelopment);
        
        ELContext elContext = ExtValELResolver.createContextWrapper(facesContext.getELContext(), elResolver);

        ValueExpression valueExpression = uiComponent.getValueExpression("value");

        if(valueExpression == null)
        {
            return null;
        }

        try
        {
            valueExpression.setValue(elContext, null);
        }
        catch (Exception e)
        {
            throw new IllegalStateException(
                "error at binding: " + valueExpression.getExpressionString() +
                " -- an el-resolver error occurred! maybe you used an invalid binding. otherwise: " +
                "please report the issue, deactivate the el-resovler of extval via web.xml context-param: " +
                ExtValInformation.WEBXML_PARAM_PREFIX + ".DEACTIVATE_EL_RESOLVER" +
                " and test again.", e);
        }

        if(elResolver.getPath() == null || elResolver.getBaseObject() == null || elResolver.getProperty() == null)
        {
            return null;
        }

        return new PropertyDetails(elResolver.getPath(), elResolver.getBaseObject(), elResolver.getProperty());
    }