aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public/Activity/IProvider.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/public/Activity/IProvider.php')
-rw-r--r--lib/public/Activity/IProvider.php31
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/public/Activity/IProvider.php b/lib/public/Activity/IProvider.php
new file mode 100644
index 00000000000..dec4e7ade64
--- /dev/null
+++ b/lib/public/Activity/IProvider.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCP\Activity;
+
+use OCP\Activity\Exceptions\UnknownActivityException;
+
+/**
+ * Interface IProvider
+ *
+ * @since 11.0.0
+ */
+interface IProvider {
+ /**
+ * @param string $language The language which should be used for translating, e.g. "en"
+ * @param IEvent $event The current event which should be parsed
+ * @param IEvent|null $previousEvent A potential previous event which you can combine with the current one.
+ * To do so, simply use setChildEvent($previousEvent) after setting the
+ * combined subject on the current event.
+ * @return IEvent
+ * @throws UnknownActivityException Should be thrown if your provider does not know this event
+ * @since 11.0.0
+ * @since 30.0.0 Providers should throw {@see UnknownActivityException} instead of \InvalidArgumentException
+ * when they did not handle the event. Throwing \InvalidArgumentException directly is deprecated and will
+ * be logged as an error in Nextcloud 39.
+ */
+ public function parse($language, IEvent $event, ?IEvent $previousEvent = null);
+}