/**
  * Add monitoring of the propel object by the user
  *
  * @return void
  * @param  BaseObject  $object
  * @param  int         $user_id  User primary key
  **/
 public function addMonitoringUser(BaseObject $object, $user_id)
 {
     if (is_null($user_id) or trim((string) $user_id) === '') {
         throw new deppPropelActAsMonitorableException('Impossible to allow a user monitoring with no user primary key provided');
     }
     // add the record
     $monitoring_object = new Monitoring();
     $monitoring_object->setMonitorableModel(get_class($object));
     $monitoring_object->setMonitorableId($this->getReferenceKey($object));
     $monitoring_object->setUserId($user_id);
     $ret = $monitoring_object->save();
     // update the caches
     $user = call_user_func_array(array($this->getMonitorerModel($object) . "Peer", 'retrieveByPK'), array($user_id));
     $user->countMonitoredObjects(get_class($object), null, true);
     $this->countMonitoringUsers($object, true);
 }