user = $user; $this->preferences = $preferences; } /** * @return User */ public function getUser() { return $this->user; } /** * @return UserPreference[] */ public function getPreferences() { return $this->preferences; } /** * @param UserPreference $preference */ public function addUserPreference(UserPreference $preference) { foreach ($this->preferences as $pref) { if ($pref->getName() == $preference->getName()) { throw new \InvalidArgumentException( 'Cannot add preference, one with the name "' . $preference->getName() . '" is already existing' ); } } $this->preferences[] = $preference; } }