/**
  * 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"));
     }
 }