/** * Obtains the ObjectAttribute values of this object * * @return Array of ObjectAttribute objects */ function getAttributes() { if (is_null($this->attributes)) { $objectAttributeMapper = new ObjectAttributeMapper(); $this->attributes = $objectAttributeMapper->findByObjectId($this->getId()); } return $this->attributes; }
/** * Updates an object * @param $object Object to update, must have its ID set */ function update(&$object) { // Fill object Fulltext index $fullTextIndex = $this->generateFullTextIndex($object); $object->setFullTextIndex($fullTextIndex); // Coordinate transaction $icfDatabase = new IcfDatabase(); $conn = $icfDatabase->dbOpen(); $conn->StartTrans(); // Update object $objectMapper = new ObjectMapper(); $objectMapper->setConnection($conn); $objectMapper->update($object); // Recreate attributes $objectAttributeMapper = new ObjectAttributeMapper(); $objectAttributeMapper->setConnection($conn); $objectAttributeMapper->deleteByObjectId($object->getId()); $objectAttributeArray =& $object->getAttributes(); foreach ($objectAttributeArray as $objectAttribute) { $objectAttribute->setObjectID($object->getId()); $objectAttributeMapper->save($objectAttribute); } // Recreate folders $objectFolderMapper = new ObjectFolderMapper(); $objectFolderMapper->setConnection($conn); $objectFolderMapper->deleteByObjectId($object->getId()); $objectFolderArray =& $object->getObjectFolders(); foreach ($objectFolderArray as $objectFolder) { $objectFolder->setObjectID($object->getId()); $objectFolderMapper->save($objectFolder); } // Recreate relationships $objectRelationMapper = new ObjectRelationMapper(); $objectRelationMapper->setConnection($conn); $objectRelationMapper->deleteByParentId($object->getId()); $objectRelationArray =& $object->getObjectRelations(); foreach ($objectRelationArray as $objectRelation) { /* @var $objectRelation ObjectRelation */ $objectRelation->setParentID($object->getId()); $objectRelationMapper->save($objectRelation); } // Close transaction $conn->completeTrans(); $icfDatabase->dbClose($conn); }