Version 1
[yaffs-website] / web / core / modules / locale / src / StringStorageInterface.php
diff --git a/web/core/modules/locale/src/StringStorageInterface.php b/web/core/modules/locale/src/StringStorageInterface.php
new file mode 100644 (file)
index 0000000..18c5edc
--- /dev/null
@@ -0,0 +1,180 @@
+<?php
+
+namespace Drupal\locale;
+
+/**
+ * Defines the locale string storage interface.
+ */
+interface StringStorageInterface {
+
+  /**
+   * Loads multiple source string objects.
+   *
+   * @param array $conditions
+   *   (optional) Array with conditions that will be used to filter the strings
+   *   returned and may include any of the following elements:
+   *   - Any simple field value indexed by field name.
+   *   - 'translated', TRUE to get only translated strings or FALSE to get only
+   *     untranslated strings. If not set it returns both translated and
+   *     untranslated strings that fit the other conditions.
+   *   Defaults to no conditions which means that it will load all strings.
+   * @param array $options
+   *   (optional) An associative array of additional options. It may contain
+   *   any of the following optional keys:
+   *   - 'filters': Array of string filters indexed by field name.
+   *   - 'pager limit': Use pager and set this limit value.
+   *
+   * @return array
+   *   Array of \Drupal\locale\StringInterface objects matching the conditions.
+   */
+  public function getStrings(array $conditions = [], array $options = []);
+
+  /**
+   * Loads multiple string translation objects.
+   *
+   * @param array $conditions
+   *   (optional) Array with conditions that will be used to filter the strings
+   *   returned and may include all of the conditions defined by getStrings().
+   * @param array $options
+   *   (optional) An associative array of additional options. It may contain
+   *   any of the options defined by getStrings().
+   *
+   * @return \Drupal\locale\StringInterface[]
+   *   Array of \Drupal\locale\StringInterface objects matching the conditions.
+   *
+   * @see \Drupal\locale\StringStorageInterface::getStrings()
+   */
+  public function getTranslations(array $conditions = [], array $options = []);
+
+  /**
+   * Loads string location information.
+   *
+   * @param array $conditions
+   *   (optional) Array with conditions to filter the locations that may be any
+   *   of the following elements:
+   *   - 'sid', The string identifier.
+   *   - 'type', The location type.
+   *   - 'name', The location name.
+   *
+   * @return \Drupal\locale\StringInterface[]
+   *   Array of \Drupal\locale\StringInterface objects matching the conditions.
+   *
+   * @see \Drupal\locale\StringStorageInterface::getStrings()
+   */
+  public function getLocations(array $conditions = []);
+
+  /**
+   * Loads a string source object, fast query.
+   *
+   * These 'fast query' methods are the ones in the critical path and their
+   * implementation must be optimized for speed, as they may run many times
+   * in a single page request.
+   *
+   * @param array $conditions
+   *   (optional) Array with conditions that will be used to filter the strings
+   *   returned and may include all of the conditions defined by getStrings().
+   *
+   * @return \Drupal\locale\SourceString|null
+   *   Minimal TranslationString object if found, NULL otherwise.
+   */
+  public function findString(array $conditions);
+
+  /**
+   * Loads a string translation object, fast query.
+   *
+   * This function must only be used when actually translating strings as it
+   * will have the effect of updating the string version. For other purposes
+   * the getTranslations() method should be used instead.
+   *
+   * @param array $conditions
+   *   (optional) Array with conditions that will be used to filter the strings
+   *   returned and may include all of the conditions defined by getStrings().
+   *
+   * @return \Drupal\locale\TranslationString|null
+   *   Minimal TranslationString object if found, NULL otherwise.
+   */
+  public function findTranslation(array $conditions);
+
+  /**
+   * Save string object to storage.
+   *
+   * @param \Drupal\locale\StringInterface $string
+   *   The string object.
+   *
+   * @return \Drupal\locale\StringStorageInterface
+   *   The called object.
+   *
+   * @throws \Drupal\locale\StringStorageException
+   *   In case of failures, an exception is thrown.
+   */
+  public function save($string);
+
+  /**
+   * Delete string from storage.
+   *
+   * @param \Drupal\locale\StringInterface $string
+   *   The string object.
+   *
+   * @return \Drupal\locale\StringStorageInterface
+   *   The called object.
+   *
+   * @throws \Drupal\locale\StringStorageException
+   *   In case of failures, an exception is thrown.
+   */
+  public function delete($string);
+
+  /**
+   * Deletes source strings and translations using conditions.
+   *
+   * @param array $conditions
+   *   Array with simple field conditions for source strings.
+   */
+  public function deleteStrings($conditions);
+
+  /**
+   * Deletes translations using conditions.
+   *
+   * @param array $conditions
+   *   Array with simple field conditions for string translations.
+   */
+  public function deleteTranslations($conditions);
+
+  /**
+   * Counts source strings.
+   *
+   * @return int
+   *   The number of source strings contained in the storage.
+   */
+  public function countStrings();
+
+  /**
+   * Counts translations.
+   *
+   * @return array
+   *   The number of translations for each language indexed by language code.
+   */
+  public function countTranslations();
+
+  /**
+   * Creates a source string object bound to this storage but not saved.
+   *
+   * @param array $values
+   *   (optional) Array with initial values. Defaults to empty array.
+   *
+   * @return \Drupal\locale\SourceString
+   *   New source string object.
+   */
+  public function createString($values = []);
+
+  /**
+   * Creates a string translation object bound to this storage but not saved.
+   *
+   * @param array $values
+   *   (optional) Array with initial values. Defaults to empty array.
+   *
+   * @return \Drupal\locale\TranslationString
+   *   New string translation object.
+   */
+  public function createTranslation($values = []);
+
+}