/**
	 * Exclude object from result
	 *
	 * @param     PreferenceUtilisateurProfessionnel $preferenceUtilisateurProfessionnel Object to remove from the list of results
	 *
	 * @return    PreferenceUtilisateurProfessionnelQuery The current query, for fluid interface
	 */
	public function prune($preferenceUtilisateurProfessionnel = null)
	{
		if ($preferenceUtilisateurProfessionnel) {
			$this->addCond('pruneCond0', $this->getAliasedColName(PreferenceUtilisateurProfessionnelPeer::NAME), $preferenceUtilisateurProfessionnel->getName(), Criteria::NOT_EQUAL);
			$this->addCond('pruneCond1', $this->getAliasedColName(PreferenceUtilisateurProfessionnelPeer::LOGIN), $preferenceUtilisateurProfessionnel->getLogin(), Criteria::NOT_EQUAL);
			$this->combine(array('pruneCond0', 'pruneCond1'), Criteria::LOGICAL_OR);
		}

		return $this;
	}
	/**
	 * @param	PreferenceUtilisateurProfessionnel $preferenceUtilisateurProfessionnel The preferenceUtilisateurProfessionnel object to add.
	 */
	protected function doAddPreferenceUtilisateurProfessionnel($preferenceUtilisateurProfessionnel)
	{
		$this->collPreferenceUtilisateurProfessionnels[]= $preferenceUtilisateurProfessionnel;
		$preferenceUtilisateurProfessionnel->setUtilisateurProfessionnel($this);
	}
	/**
	 *
	 * Enregistre une preference d'un utilisateur
	 * Ajout manuel
	 *
	 * @param      String $name le nom de la preference à obtenir
	 */
	public function setPreferenceValeur($name, $value){
	    $criteria = new Criteria();
	    $criteria->add(PreferenceUtilisateurProfessionnelPeer::NAME, $name);
	    $prefs = $this->getPreferenceUtilisateurProfessionnels($criteria);
	    if ($prefs->isEmpty()) {
		//Creation d'une nouvelle entree dans les preferences
		$nouvellePref = new PreferenceUtilisateurProfessionnel();
		$nouvellePref->setName($name);
		$nouvellePref->setValue($value);
		$nouvellePref->setLogin($this->getLogin());
		$nouvellePref->save();
		$this->addPreferenceUtilisateurProfessionnel($nouvellePref);
		$this->save();
	    } else if ($prefs->count() == 1) {
		$prefs->getFirst()->setValue($value);
		$prefs->getFirst()->save();
	    } else {
		//there's an error
		throw new PropelException("Il existe deja plusieurs preferences avec ce nom !");
	    }
	}
	/**
	 * Filter the query by a related PreferenceUtilisateurProfessionnel object
	 *
	 * @param     PreferenceUtilisateurProfessionnel $preferenceUtilisateurProfessionnel  the related object to use as filter
	 * @param     string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
	 *
	 * @return    UtilisateurProfessionnelQuery The current query, for fluid interface
	 */
	public function filterByPreferenceUtilisateurProfessionnel($preferenceUtilisateurProfessionnel, $comparison = null)
	{
		if ($preferenceUtilisateurProfessionnel instanceof PreferenceUtilisateurProfessionnel) {
			return $this
				->addUsingAlias(UtilisateurProfessionnelPeer::LOGIN, $preferenceUtilisateurProfessionnel->getLogin(), $comparison);
		} elseif ($preferenceUtilisateurProfessionnel instanceof PropelCollection) {
			return $this
				->usePreferenceUtilisateurProfessionnelQuery()
				->filterByPrimaryKeys($preferenceUtilisateurProfessionnel->getPrimaryKeys())
				->endUse();
		} else {
			throw new PropelException('filterByPreferenceUtilisateurProfessionnel() only accepts arguments of type PreferenceUtilisateurProfessionnel or PropelCollection');
		}
	}