Version 1
[yaffs-website] / web / modules / contrib / ctools / src / Plugin / VariantCollectionInterface.php
diff --git a/web/modules/contrib/ctools/src/Plugin/VariantCollectionInterface.php b/web/modules/contrib/ctools/src/Plugin/VariantCollectionInterface.php
new file mode 100644 (file)
index 0000000..5865e99
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+
+namespace Drupal\ctools\Plugin;
+
+/**
+ * Provides an interface for objects that have variants e.g. Pages.
+ */
+interface VariantCollectionInterface {
+
+  /**
+   * Adds a new variant to the entity.
+   *
+   * @param array $configuration
+   *   An array of configuration for the new variant.
+   *
+   * @return string
+   *   The variant ID.
+   */
+  public function addVariant(array $configuration);
+
+  /**
+   * Retrieves a specific variant.
+   *
+   * @param string $variant_id
+   *   The variant ID.
+   *
+   * @return \Drupal\Core\Display\VariantInterface
+   *   The variant object.
+   */
+  public function getVariant($variant_id);
+
+  /**
+   * Removes a specific variant.
+   *
+   * @param string $variant_id
+   *   The variant ID.
+   *
+   * @return $this
+   */
+  public function removeVariant($variant_id);
+
+  /**
+   * Returns the variants available for the entity.
+   *
+   * @return \Drupal\Core\Display\VariantInterface[]
+   *   An array of the variants.
+   */
+  public function getVariants();
+
+}