/** * Adds a Managed Object to the entity collection * * @param MManagedObject $object The object to be added to the collection * * @return void */ public function addManagedObject(MManagedObject $object) { if ($object->entity()->equals($this->entity())) { if ($this->fireFaults()) { $object->fireFault(); } $elementView = new MXMLManagedObjectView($object); foreach ($this->dynamicFields->allKeys()->toArray() as $fieldName) { $dataProvider = $this->dynamicFields->objectForKey($fieldName); $elementView->addDynamicField($fieldName, $dataProvider); } $this->managedObjects->setObjectForKey($object, $elementView); $this->addSubview($elementView); } else { throw new MManagedObjectException($object, S("Object's entity is different from collections' entity")); } }