/** * Populates the default on a single field if it's not already set * and the default generated is not a null value or empty array. * * @param Field $field * @return bool Returns true if a non null/empty default was applied or already present. */ private function populateDefault(Field $field) { if ($this->has($field->getName())) { return true; } $default = $field->getDefault($this); if (null === $default) { return false; } if ($field->isASingleValue()) { $this->data[$field->getName()] = $default; unset($this->clearedFields[$field->getName()]); return true; } if (empty($default)) { return false; } /* * sets have a special handling to deal with unique values */ if ($field->isASet()) { $this->addToSet($field->getName(), $default); return true; } $this->data[$field->getName()] = $default; unset($this->clearedFields[$field->getName()]); return true; }