3 namespace Drupal\ctools\Plugin;
6 * Provides an interface for objects that have variants e.g. Pages.
8 interface VariantCollectionInterface {
11 * Adds a new variant to the entity.
13 * @param array $configuration
14 * An array of configuration for the new variant.
19 public function addVariant(array $configuration);
22 * Retrieves a specific variant.
24 * @param string $variant_id
27 * @return \Drupal\Core\Display\VariantInterface
30 public function getVariant($variant_id);
33 * Removes a specific variant.
35 * @param string $variant_id
40 public function removeVariant($variant_id);
43 * Returns the variants available for the entity.
45 * @return \Drupal\Core\Display\VariantInterface[]
46 * An array of the variants.
48 public function getVariants();