From adf329d79ea2532ba6ac147cd05a1d305095fa62 Mon Sep 17 00:00:00 2001 From: paul121 Date: Wed, 18 Aug 2021 12:32:13 -0700 Subject: [PATCH] Create the DataStreamNotification entity. --- .../data_stream_notification.schema.yml | 29 +++++ ...DataStreamNotificationPluginCollection.php | 19 +++ .../src/Entity/DataStreamNotification.php | 117 ++++++++++++++++++ .../DataStreamNotificationInterface.php | 13 ++ 4 files changed, 178 insertions(+) create mode 100644 modules/core/data_stream/data_stream_notification/config/schema/data_stream_notification.schema.yml create mode 100644 modules/core/data_stream/data_stream_notification/src/DataStreamNotificationPluginCollection.php create mode 100644 modules/core/data_stream/data_stream_notification/src/Entity/DataStreamNotification.php create mode 100644 modules/core/data_stream/data_stream_notification/src/Entity/DataStreamNotificationInterface.php diff --git a/modules/core/data_stream/data_stream_notification/config/schema/data_stream_notification.schema.yml b/modules/core/data_stream/data_stream_notification/config/schema/data_stream_notification.schema.yml new file mode 100644 index 00000000..bb27c64e --- /dev/null +++ b/modules/core/data_stream/data_stream_notification/config/schema/data_stream_notification.schema.yml @@ -0,0 +1,29 @@ +# Schema for the configuration files of the Data stream notifications module. + +data_stream_notification.data_stream_notification.*: + type: config_entity + label: 'Data stream notification' + mapping: + id: + type: string + label: 'ID' + label: + type: label + label: 'Label' + data_stream: + type: integer + nullable: true + label: 'Data stream' + condition_operator: + type: string + label: 'Condition operator' + condition: + type: sequence + label: 'Conditions' + sequence: + type: data_stream_notification.condition.[type] + delivery: + type: sequence + label: 'Delivery' + sequence: + type: data_stream_notification.delivery.[type] diff --git a/modules/core/data_stream/data_stream_notification/src/DataStreamNotificationPluginCollection.php b/modules/core/data_stream/data_stream_notification/src/DataStreamNotificationPluginCollection.php new file mode 100644 index 00000000..29148b09 --- /dev/null +++ b/modules/core/data_stream/data_stream_notification/src/DataStreamNotificationPluginCollection.php @@ -0,0 +1,19 @@ +$name)) { + $this->$name = new DataStreamNotificationPluginCollection(\Drupal::service("plugin.manager.data_stream_notification_$type"), $this->$type); + } + } + return [ + 'condition' => $this->conditionCollection, + 'delivery' => $this->deliveryCollection, + ]; + } + +} diff --git a/modules/core/data_stream/data_stream_notification/src/Entity/DataStreamNotificationInterface.php b/modules/core/data_stream/data_stream_notification/src/Entity/DataStreamNotificationInterface.php new file mode 100644 index 00000000..3d40ad19 --- /dev/null +++ b/modules/core/data_stream/data_stream_notification/src/Entity/DataStreamNotificationInterface.php @@ -0,0 +1,13 @@ +