private ValueBindingExpression getValueBindingExpression()

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


    private ValueBindingExpression getValueBindingExpression(UIComponent uiComponent, boolean allowBlankCharacters)
    {
        String valueBindingExpression = getOriginalValueBindingExpression(uiComponent);

        //for input components without value-binding
        //(e.g. for special component libs -> issue with ExtValRendererWrapper#encodeBegin)
        if(valueBindingExpression == null)
        {
            this.logger.finest(
                    uiComponent.getClass() + " has no value binding - component id: " + uiComponent.getId());
            return null;
        }

        if(!allowBlankCharacters)
        {
            valueBindingExpression = valueBindingExpression.replace(" ", "");
        }

        FacesContext facesContext = FacesContext.getCurrentInstance();

        if (getTypeOfExpression(facesContext,
            new ValueBindingExpression(valueBindingExpression).getBaseExpression()) == null)
        {
            ValueBindingExpression result = FaceletsTaglibExpressionHelper.
                tryToCreateValueBindingForFaceletsBinding(uiComponent);

            if(result == null)
            {
                logger.fine("couldn't resolve expression: " + valueBindingExpression);
                return null;
            }

            Class entityClass = getTypeOfExpression(facesContext, result.getBaseExpression());

            if(entityClass == null)
            {
                logger.fine("couldn't resolve expression: " + result.getExpressionString());

                return null;
            }
            return result;
        }
        return new ValueBindingExpression(valueBindingExpression);
    }