Version 1
[yaffs-website] / web / modules / contrib / video_embed_field / src / ProviderManagerInterface.php
diff --git a/web/modules/contrib/video_embed_field/src/ProviderManagerInterface.php b/web/modules/contrib/video_embed_field/src/ProviderManagerInterface.php
new file mode 100644 (file)
index 0000000..edb229b
--- /dev/null
@@ -0,0 +1,64 @@
+<?php
+
+namespace Drupal\video_embed_field;
+
+/**
+ * Interface for the class that gathers the provider plugins.
+ */
+interface ProviderManagerInterface {
+
+  /**
+   * Get an options list suitable for form elements for provider selection.
+   *
+   * @return array
+   *   An array of options keyed by plugin ID with label values.
+   */
+  public function getProvidersOptionList();
+
+  /**
+   * Load the provider plugin definitions from a FAPI options list value.
+   *
+   * @param array $options
+   *   An array of options from a form API submission.
+   *
+   * @return array
+   *   An array of plugin definitions.
+   */
+  public function loadDefinitionsFromOptionList($options);
+
+  /**
+   * Get the provider applicable to the given user input.
+   *
+   * @param array $definitions
+   *   A list of definitions to test against.
+   * @param string $user_input
+   *   The user input to test against the plugins.
+   *
+   * @return \Drupal\video_embed_field\ProviderPluginInterface|bool
+   *   The relevant plugin or FALSE on failure.
+   */
+  public function filterApplicableDefinitions(array $definitions, $user_input);
+
+  /**
+   * Load a provider from user input.
+   *
+   * @param string $input
+   *   Input provided from a field.
+   *
+   * @return \Drupal\video_embed_field\ProviderPluginInterface|bool
+   *   The loaded plugin.
+   */
+  public function loadProviderFromInput($input);
+
+  /**
+   * Load a plugin definition from an input.
+   *
+   * @param string $input
+   *   An input string.
+   *
+   * @return array
+   *   A plugin definition.
+   */
+  public function loadDefinitionFromInput($input);
+
+}