Version 1
[yaffs-website] / web / core / lib / Drupal / Core / Config / TypedConfigManagerInterface.php
diff --git a/web/core/lib/Drupal/Core/Config/TypedConfigManagerInterface.php b/web/core/lib/Drupal/Core/Config/TypedConfigManagerInterface.php
new file mode 100644 (file)
index 0000000..5beeb6f
--- /dev/null
@@ -0,0 +1,75 @@
+<?php
+
+namespace Drupal\Core\Config;
+
+use Drupal\Core\TypedData\TypedDataManagerInterface;
+
+/**
+ * Defines an interface for managing config schema type plugins.
+ *
+ * @see \Drupal\Core\Config\TypedConfigManager
+ * @see \Drupal\Core\Config\Schema\ConfigSchemaDiscovery
+ * @see hook_config_schema_info_alter()
+ * @see https://www.drupal.org/node/1905070
+ */
+interface TypedConfigManagerInterface extends TypedDataManagerInterface {
+
+  /**
+   * Gets typed configuration data.
+   *
+   * @param string $name
+   *   Configuration object name.
+   *
+   * @return \Drupal\Core\TypedData\TraversableTypedDataInterface
+   *   Typed configuration element.
+   */
+  public function get($name);
+
+  /**
+   * Creates a new data definition object from a type definition array and
+   * actual configuration data. Since type definitions may contain variables
+   * to be replaced, we need the configuration value to create it.
+   *
+   * @param array $definition
+   *   The base type definition array, for which a data definition should be
+   *   created.
+   * @param $value
+   *   Optional value of the configuration element.
+   * @param string $name
+   *   Optional name of the configuration element.
+   * @param object $parent
+   *   Optional parent element.
+   *
+   * @return \Drupal\Core\TypedData\DataDefinitionInterface
+   *   A data definition for the given data type.
+   */
+  public function buildDataDefinition(array $definition, $value, $name = NULL, $parent = NULL);
+
+  /**
+   * Checks if the configuration schema with the given config name exists.
+   *
+   * @param string $name
+   *   Configuration name.
+   *
+   * @return bool
+   *   TRUE if configuration schema exists, FALSE otherwise.
+   */
+  public function hasConfigSchema($name);
+
+  /**
+   * Gets a specific plugin definition.
+   *
+   * @param string $plugin_id
+   *   A plugin id.
+   * @param bool $exception_on_invalid
+   *   Ignored with TypedConfigManagerInterface. Kept for compatibility with
+   *   DiscoveryInterface.
+   *
+   * @return array
+   *   A plugin definition array. If the given plugin id does not have typed
+   *   configuration definition assigned, the definition of an undefined
+   *   element type is returned.
+   */
+  public function getDefinition($plugin_id, $exception_on_invalid = TRUE);
+
+}