code: public static _ValueReferenceWrapper getUELValueReferenceWrapper(ValueExpression valueExpression,
                                                                       final ELContext elCtx)
      {
          ValueReference valueReference = valueExpression.getValueReference(elCtx);
          
          while (valueReference != null 
                  && valueReference.getBase() instanceof CompositeComponentExpressionHolder)
          {
              valueExpression = ((CompositeComponentExpressionHolder) valueReference.getBase())
                                    .getExpression((String) valueReference.getProperty());
              if(valueExpression == null)
              {
                  break;
              }
              valueReference = valueExpression.getValueReference(elCtx);
          }
          
          if (valueReference != null)
          {
              return new _ValueReferenceWrapper(valueReference.getBase(), valueReference.getProperty());
          }
          
          return null;
      }
docs: Get the ValueReference from the ValueExpression.
  
  @param valueExpression
  @param elCtx
  @return A ValueReferenceWrapper with the necessary information about the ValueReference.