Version 1
[yaffs-website] / web / modules / contrib / pathauto / src / PathautoPatternInterface.php
diff --git a/web/modules/contrib/pathauto/src/PathautoPatternInterface.php b/web/modules/contrib/pathauto/src/PathautoPatternInterface.php
new file mode 100644 (file)
index 0000000..9782f2e
--- /dev/null
@@ -0,0 +1,181 @@
+<?php
+
+namespace Drupal\pathauto;
+
+use Drupal\Core\Config\Entity\ConfigEntityInterface;
+
+/**
+ * Provides an interface for defining Pathauto pattern entities.
+ */
+interface PathautoPatternInterface extends ConfigEntityInterface {
+
+  /**
+   * Get the tokenized pattern used during alias generation.
+   *
+   * @return string
+   */
+  public function getPattern();
+
+  /**
+   * Set the tokenized pattern to use during alias generation.
+   *
+   * @param string $pattern
+   *
+   * @return $this
+   */
+  public function setPattern($pattern);
+
+  /**
+   * Gets the type of this pattern.
+   *
+   * @return string
+   */
+  public function getType();
+
+  /**
+   * @return \Drupal\pathauto\AliasTypeInterface
+   */
+  public function getAliasType();
+
+  /**
+   * Gets the weight of this pattern (compared to other patterns of this type).
+   *
+   * @return int
+   */
+  public function getWeight();
+
+  /**
+   * Sets the weight of this pattern (compared to other patterns of this type).
+   *
+   * @param int $weight
+   *   The weight of the variant.
+   *
+   * @return $this
+   */
+  public function setWeight($weight);
+
+  /**
+   * Returns the contexts of this pattern.
+   *
+   * @return \Drupal\Core\Plugin\Context\ContextInterface[]
+   */
+  public function getContexts();
+
+  /**
+   * Returns whether a relationship exists.
+   *
+   * @param string $token
+   *   Relationship identifier.
+   *
+   * @return bool
+   *   TRUE if the relationship exists, FALSE otherwise.
+   */
+  public function hasRelationship($token);
+
+  /**
+   * Adds a relationship.
+   *
+   * The relationship will not be changed if it already exists.
+   *
+   * @param string $token
+   *   Relationship identifier.
+   * @param string|null $label
+   *   (optional) A label, will use the label of the referenced context if not
+   *   provided.
+   *
+   * @return $this
+   */
+  public function addRelationship($token, $label = NULL);
+
+  /**
+   * Replaces a relationship.
+   *
+   * Only already existing relationships are updated.
+   *
+   * @param string $token
+   *   Relationship identifier.
+   * @param string|null $label
+   *   (optional) A label, will use the label of the referenced context if not
+   *   provided.
+   *
+   * @return $this
+   */
+  public function replaceRelationship($token, $label);
+
+  /**
+   * Removes a relationship.
+   *
+   * @param string $token
+   *   Relationship identifier.
+   *
+   * @return $this
+   */
+  public function removeRelationship($token);
+
+  /**
+   * Returns a list of relationships.
+   *
+   * @return array[]
+   *   Keys are context tokens, and values are arrays with the following keys:
+   *   - label (string|null, optional): The human-readable label of this
+   *     relationship.
+   */
+  public function getRelationships();
+
+  /**
+   * Gets the selection condition collection.
+   *
+   * @return \Drupal\Core\Condition\ConditionInterface[]|\Drupal\Core\Condition\ConditionPluginCollection
+   */
+  public function getSelectionConditions();
+
+  /**
+   * Adds selection criteria.
+   *
+   * @param array $configuration
+   *   Configuration of the selection criteria.
+   *
+   * @return string
+   *   The condition id of the new criteria.
+   */
+  public function addSelectionCondition(array $configuration);
+
+  /**
+   * Gets selection criteria by condition id.
+   *
+   * @param string $condition_id
+   *   The id of the condition.
+   *
+   * @return \Drupal\Core\Condition\ConditionInterface
+   */
+  public function getSelectionCondition($condition_id);
+
+  /**
+   * Removes selection criteria by condition id.
+   *
+   * @param string $condition_id
+   *   The id of the condition.
+   *
+   * @return $this
+   */
+  public function removeSelectionCondition($condition_id);
+
+  /**
+   * Gets the selection logic used by the criteria (ie. "and" or "or").
+   *
+   * @return string
+   *   Either "and" or "or"; represents how the selection criteria are combined.
+   */
+  public function getSelectionLogic();
+
+  /**
+   * Determines if this pattern can apply a given object.
+   *
+   * @param $object
+   *   The object used to determine if this plugin can apply.
+   *
+   * @return bool
+   */
+  public function applies($object);
+
+}