/** * @see AbstractObject::models */ protected function modelsMagicProperty($function, $value) { switch ($function) { case 'get': $models = array(); $rels_models = $this->relationships->get(FEDORA_MODEL_URI, 'hasModel'); foreach ($rels_models as $model) { $models[] = $model['object']['value']; } if (!in_array('fedora-system:FedoraObject-3.0', $models)) { $models[] = 'fedora-system:FedoraObject-3.0'; } return $models; break; case 'isset': $rels_models = $this->relationships->get(FEDORA_MODEL_URI, 'hasModel'); return count($rels_models) > 0; break; case 'set': if (!is_array($value)) { $models = array($value); } else { $models = $value; } if (!in_array('fedora-system:FedoraObject-3.0', $models)) { $models[] = 'fedora-system:FedoraObject-3.0'; } foreach ($models as $model) { if (!in_array($model, $this->models)) { $this->relationships->add(FEDORA_MODEL_URI, 'hasModel', $model); } } break; case 'unset': $this->relationships->remove(FEDORA_MODEL_URI, 'hasModel'); break; } }