public function save($name, $attributes, $parent_node, Horde_Kolab_Format_Xml_Helper $helper, $params = array())
{
$node = $helper->findNodeRelativeTo('./' . $name, $parent_node);
if (!isset($attributes[$name])) {
if ($node === false) {
if ($this->value == Horde_Kolab_Format_Xml::VALUE_MAYBE_MISSING || $this->value == Horde_Kolab_Format_Xml::VALUE_NOT_EMPTY && $this->isRelaxed($params)) {
return false;
}
} else {
if ($this->value == Horde_Kolab_Format_Xml::VALUE_MAYBE_MISSING) {
/** Client indicates that the value should get removed */
$helper->removeNodes($parent_node, $name);
return false;
} else {
return $node;
}
}
}
return $this->saveNodeValue($name, $this->generateWriteValue($name, $attributes, $params), $parent_node, $helper, $params, $node);
}