Version 1
[yaffs-website] / web / core / lib / Drupal / Core / TypedData / TypedDataTrait.php
diff --git a/web/core/lib/Drupal/Core/TypedData/TypedDataTrait.php b/web/core/lib/Drupal/Core/TypedData/TypedDataTrait.php
new file mode 100644 (file)
index 0000000..8ff30c0
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+
+namespace Drupal\Core\TypedData;
+
+/**
+ * Wrapper methods for classes that needs typed data manager object.
+ */
+trait TypedDataTrait {
+
+  /**
+   * The typed data manager used for creating the data types.
+   *
+   * @var \Drupal\Core\TypedData\TypedDataManagerInterface
+   */
+  protected $typedDataManager;
+
+  /**
+   * Sets the typed data manager.
+   *
+   * @param \Drupal\Core\TypedData\TypedDataManagerInterface $typed_data_manager
+   *   The typed data manager.
+   *
+   * @return $this
+   */
+  public function setTypedDataManager(TypedDataManagerInterface $typed_data_manager) {
+    $this->typedDataManager = $typed_data_manager;
+    return $this;
+  }
+
+  /**
+   * Gets the typed data manager.
+   *
+   * @return \Drupal\Core\TypedData\TypedDataManagerInterface
+   *   The typed data manager.
+   */
+  public function getTypedDataManager() {
+    if (empty($this->typedDataManager)) {
+      $this->typedDataManager = \Drupal::typedDataManager();
+    }
+
+    return $this->typedDataManager;
+  }
+
+}