Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.richfaces.el;
 
 import  javax.faces.context.FacesContext;
 
 import  org.richfaces.validator.GraphValidatorState;
 
public class ValueExpressionAnalayserImpl implements ValueExpressionAnalayser {
    private abstract static class ValueResolutionCommand {
        private ValueDescriptor valueDescriptor;
        public ValueDescriptor getValueDescriptor() {
            return ;
        }
        void setValueDescriptor(ValueDescriptor valueDescriptor) {
            this. = valueDescriptor;
        }
        public abstract void resolve(ValueExpression expressionELContext context);
    }
    private static final class GetTypeCommand extends ValueResolutionCommand {
        @Override
        public void resolve(ValueExpression expressionELContext context) {
            expression.getType(context);
        }
    }
    private static final class SetValueCommand extends ValueResolutionCommand {
        private Object value;
        public SetValueCommand(Object value) {
            super();
            this. = value;
        }
        @Override
        public void resolve(ValueExpression expressionELContext context) {
            expression.setValue(context);
        }
    }
    private void checkNotNull(FacesContext contextValueExpression expression) {
        if (context == null) {
            throw new NullPointerException("facesContext");
        }
        if (expression == null) {
            throw new NullPointerException("expression");
        }
    }
    private void resolveValue(FacesContext contextValueExpression initialExpressionValueResolutionCommand command)
        throws ELException {
        checkNotNull(contextinitialExpression);
        ValueExpression expression = initialExpression;
        while (expression != null) {
            CapturingELContext capturingContext = new CapturingELContext(context.getELContext(),GraphValidatorState.getStateMap(context));
            command.resolve(expressioncapturingContext);
            if (capturingContext.hasReferenceExpression()) {
                expression = capturingContext.getReferenceExpression();
            } else {
                ValueDescriptor result = capturingContext.getDescriptor();
                if (result == null) {
                    throw new ELException("Cannot determine property for expression " + initialExpression.getExpressionString());
                }
                command.setValueDescriptor(result);
                break;
            }
        }
    }
    public ValueDescriptor getPropertyDescriptor(FacesContext contextValueExpression expressionthrows ELException {
        ValueResolutionCommand command = new GetTypeCommand();
        resolveValue(contextexpressioncommand);
        return command.getValueDescriptor();
    }
    public ValueDescriptor updateValueAndGetPropertyDescriptor(FacesContext contextValueExpression expressionObject newValue)
        throws ELException {
        ValueResolutionCommand command = new SetValueCommand(newValue);
        resolveValue(contextexpressioncommand);
        return command.getValueDescriptor();
    }
New to GrepCode? Check out our FAQ X