/**
  * Set the value of this column
  * @param mixed $val Value
  * @param bool $ignore_properties Ignore properties and use default set value
  */
 public function setValue($val, $ignore_properties = false)
 {
     // we can mark this column as changed to ensure proper update.
     if ($val !== $this->getValue()) {
         $this->valueChanged = true;
     }
     if (!$ignore_properties && $this->getProperties() & DatabaseColumnElement::COLUMN_SERIALIZE_VALUE) {
         $this->value = DatabaseColumnElement::SerializeArray($val);
     } else {
         $this->value = $val;
     }
     $this->value_needs_set = false;
 }