summaryrefslogtreecommitdiffstats
path: root/lib/private/notification/action.php
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@owncloud.com>2015-08-31 12:24:37 +0200
committerJoas Schilling <nickvergessen@owncloud.com>2015-09-08 09:00:57 +0200
commit4e347170ac31462e447daaccf794000981a68f86 (patch)
treec8ec2acfbc2fcdc1de4a65c812179f8b7353f730 /lib/private/notification/action.php
parentd044884cfa8d065c7d784dbc792a7228e0eed46f (diff)
downloadnextcloud-server-4e347170ac31462e447daaccf794000981a68f86.tar.gz
nextcloud-server-4e347170ac31462e447daaccf794000981a68f86.zip
Notification API
Diffstat (limited to 'lib/private/notification/action.php')
-rw-r--r--lib/private/notification/action.php151
1 files changed, 151 insertions, 0 deletions
diff --git a/lib/private/notification/action.php b/lib/private/notification/action.php
new file mode 100644
index 00000000000..09e37a70d5e
--- /dev/null
+++ b/lib/private/notification/action.php
@@ -0,0 +1,151 @@
+<?php
+/**
+ * @author Joas Schilling <nickvergessen@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OC\Notification;
+
+use OCP\Notification\IAction;
+
+class Action implements IAction {
+
+ /** @var string */
+ protected $label;
+
+ /** @var string */
+ protected $labelParsed;
+
+ /** @var string */
+ protected $link;
+
+ /** @var string */
+ protected $icon;
+
+ /**
+ * Constructor
+ */
+ public function __construct() {
+ $this->label = '';
+ $this->labelParsed = '';
+ $this->link = '';
+ $this->icon = '';
+ }
+
+ /**
+ * @param string $label
+ * @return $this
+ * @throws \InvalidArgumentException if the label is invalid
+ * @since 8.2.0
+ */
+ public function setLabel($label) {
+ if (!is_string($label) || $label === '' || isset($label[32])) {
+ throw new \InvalidArgumentException('The given label is invalid');
+ }
+ $this->label = $label;
+ return $this;
+ }
+
+ /**
+ * @return string
+ * @since 8.2.0
+ */
+ public function getLabel() {
+ return $this->label;
+ }
+
+ /**
+ * @param string $label
+ * @return $this
+ * @throws \InvalidArgumentException if the label is invalid
+ * @since 8.2.0
+ */
+ public function setParsedLabel($label) {
+ if (!is_string($label) || $label === '') {
+ throw new \InvalidArgumentException('The given parsed label is invalid');
+ }
+ $this->labelParsed = $label;
+ return $this;
+ }
+
+ /**
+ * @return string
+ * @since 8.2.0
+ */
+ public function getParsedLabel() {
+ return $this->labelParsed;
+ }
+
+ /**
+ * @param string $link
+ * @return $this
+ * @throws \InvalidArgumentException if the link is invalid
+ * @since 8.2.0
+ */
+ public function setLink($link) {
+ if (!is_string($link) || $link === '' || isset($link[256])) {
+ throw new \InvalidArgumentException('The given link is invalid');
+ }
+ $this->link = $link;
+ return $this;
+ }
+
+ /**
+ * @return string
+ * @since 8.2.0
+ */
+ public function getLink() {
+ return $this->link;
+ }
+
+ /**
+ * @param string $icon
+ * @return $this
+ * @throws \InvalidArgumentException if the icon is invalid
+ * @since 8.2.0
+ */
+ public function setIcon($icon) {
+ if (!is_string($icon) || $icon === '' || isset($icon[64])) {
+ throw new \InvalidArgumentException('The given icon is invalid');
+ }
+ $this->icon = $icon;
+ return $this;
+ }
+
+ /**
+ * @return string
+ * @since 8.2.0
+ */
+ public function getIcon() {
+ return $this->icon;
+ }
+
+ /**
+ * @return bool
+ */
+ public function isValid() {
+ return $this->label !== '' && $this->link !== '';
+ }
+
+ /**
+ * @return bool
+ */
+ public function isValidParsed() {
+ return $this->labelParsed !== '' && $this->link !== '';
+ }
+}