+ /**
+ * Add snippet
+ *
+ * @param Snippet $snippet
+ *
+ * @return Location
+ */
+ public function addSnippet(Snippet $snippet): Location {
+ $this->snippets[] = $snippet;
+
+ return $this;
+ }
+
+ /**
+ * Remove snippet
+ *
+ * @param Snippet $snippet
+ * @return bool
+ */
+ public function removeSnippet(Snippet $snippet): bool {
+ return $this->snippets->removeElement($snippet);
+ }
+
+ /**
+ * Get snippets
+ *
+ * @return ArrayCollection
+ */
+ public function getSnippets(): ArrayCollection {
+ return $this->snippets;
+ }
+
+ /**
+ * Add user
+ *
+ * @param User $user
+ *
+ * @return Location
+ */
+ public function addUser(User $user): Location {
+ //Add from owning side
+ $user->addLocation($this);
+
+ $this->users[] = $user;
+
+ return $this;
+ }
+
+ /**
+ * Remove user
+ *
+ * @param User $user
+ * @return bool
+ */
+ public function removeUser(User $user): bool {
+ if (!$this->locations->contains($user)) {
+ return true;
+ }
+
+ //Remove from owning side
+ $user->removeLocation($this);
+
+ return $this->users->removeElement($user);
+ }
+
+ /**
+ * Get users
+ *
+ * @return ArrayCollection
+ */
+ public function getUsers(): ArrayCollection {
+ return $this->users;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function preUpdate(PreUpdateEventArgs $eventArgs) {
+ //Check that we have a location instance
+ if (($location = $eventArgs->getObject()) instanceof Location) {
+ //Set updated value
+ $location->setUpdated(new \DateTime('now'));
+ }
+ }
+