/**
  * Add the widget value to evaluate to the Map of expression to evaluated
  *
  * @param formWidget the widget
  * @param expressionsToEvaluate the list of expressions to evaluate
  * @param context the context including the URL parameters
  */
 protected void addFormWidgetValueExpressionToEvaluate(
     final FormWidget formWidget,
     final List<Expression> expressionsToEvaluate,
     final Map<String, Object> context) {
   if (formWidget.getInitialValueExpression() != null) {
     final Expression expression = formWidget.getInitialValueExpression();
     expression.setName(formWidget.getId() + EXPRESSION_KEY_SEPARATOR + WIDGET_INITIAL_VALUE);
     expressionsToEvaluate.add(expression);
   } else if (WidgetType.EDITABLE_GRID.equals(formWidget.getType())
       && formWidget.getInitialValueExpressionArray() != null) {
     final List<List<Expression>> expressionArray = formWidget.getInitialValueExpressionArray();
     if (!expressionArray.isEmpty()) {
       int expressionArrayRowIndex = 0;
       for (final List<Expression> expressionArrayRow : expressionArray) {
         int expressionArrayIndex = 0;
         for (final Expression expression : expressionArrayRow) {
           expression.setName(
               formWidget.getId()
                   + EXPRESSION_KEY_SEPARATOR
                   + WIDGET_INITIAL_VALUE
                   + expressionArrayRowIndex
                   + INDEX_SEPARATOR
                   + expressionArrayIndex);
           expressionsToEvaluate.add(expression);
           expressionArrayIndex++;
         }
         expressionArrayRowIndex++;
       }
     }
   }
 }
 protected void storeWidgetInCacheAndSetCacheID(
     final FormCacheUtil formCacheUtil,
     final String formID,
     final String pageID,
     final String locale,
     final Date processDeployementDate,
     final FormWidget formWidget) {
   if (isExpressionDynamic(formWidget.getInitialValueExpression())
       || isArrayOfExpressionsDynamic(formWidget.getInitialValueExpressionArray())
       || isExpressionDynamic(formWidget.getAvailableValuesExpression())
       || isListOfExpressionsDynamic(formWidget.getAvailableValues())
       || isListOfListOfExpressionsDynamic(formWidget.getTableAvailableValues())
       || isExpressionDynamic(formWidget.getDisplayConditionExpression())) {
     formWidget.setHasDynamicValue(true);
   }
   final String formWidgetCacheId =
       formCacheUtil.storeFormWidget(formID, pageID, locale, processDeployementDate, formWidget);
   formWidget.setFormWidgetCacheId(formWidgetCacheId);
   if (formWidget.getValidators() != null) {
     formWidget.setValidatorsCacheId(
         formCacheUtil.storeFieldValidators(
             formID,
             pageID,
             formWidget.getId(),
             locale,
             processDeployementDate,
             formWidget.getValidators()));
   }
 }