code: public void setValueExpression(String name, ValueExpression binding) {
  
          if ("value".equals(name)) {
              this.model = null;
          } else if ("var".equals(name) || "rowIndex".equals(name)) {
              throw new IllegalArgumentException();
          }
          super.setValueExpression(name, binding);
  
      }
docs: <p>Set the {@link ValueExpression} used to calculate the value for the
  specified attribute or property name, if any.  In addition, if a {@link
  ValueExpression} is set for the <code>value</code> property, remove any
  synthesized {@link DataModel} for the data previously bound to this
  component.</p>
  
  @param name    Name of the attribute or property for which to set a
  {@link ValueExpression}
  @param binding The {@link ValueExpression} to set, or <code>null</code>
  to remove any currently set {@link ValueExpression}
  
  @throws IllegalArgumentException if <code>name</code> is one of
  <code>id</code>, <code>parent</code>,
  <code>var</code>, or <code>rowIndex</code>
  @throws NullPointerException     if <code>name</code> is <code>null</code>
  @since 1.2