public function synchronize(__IServerEndPoint &$server_end_point)
 {
     //if the server end-point is a valueholder, will synchronize
     //only if server and client values are different:
     if ($server_end_point instanceof __IValueHolder) {
         $value = $server_end_point->getValue();
         $current_value = $this->getValue();
         //if current value is different to new value
         //note that we are avoiding the case when comparing a null value with an empty string it
         //depends on how client submit values to server for empty fields
         if ($current_value !== $value && !(empty($current_value) && empty($value))) {
             $this->_value = $value;
             $this->setAsUnsynchronized();
         }
     } else {
         //if the server end-point is not a valueholder
         $this->setAsUnsynchronized();
     }
 }
 public function synchronize(__IServerEndPoint &$server_end_point)
 {
     if ($server_end_point instanceof __IValueHolder) {
         $this->setErrorMessage($server_end_point->getValue());
     }
 }