You are here

protected function ContentTranslationSynchronizedFieldsConstraintValidator::getOriginalTranslation in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/content_translation/src/Plugin/Validation/Constraint/ContentTranslationSynchronizedFieldsConstraintValidator.php \Drupal\content_translation\Plugin\Validation\Constraint\ContentTranslationSynchronizedFieldsConstraintValidator::getOriginalTranslation()

Returns the original translation.

Parameters

\Drupal\Core\Entity\ContentEntityInterface $entity: The entity being validated.

\Drupal\Core\Entity\ContentEntityInterface $original: The original entity.

Return value

\Drupal\Core\Entity\ContentEntityInterface The original entity translation object.

1 call to ContentTranslationSynchronizedFieldsConstraintValidator::getOriginalTranslation()
ContentTranslationSynchronizedFieldsConstraintValidator::validate in core/modules/content_translation/src/Plugin/Validation/Constraint/ContentTranslationSynchronizedFieldsConstraintValidator.php
Checks if the passed value is valid.

File

core/modules/content_translation/src/Plugin/Validation/Constraint/ContentTranslationSynchronizedFieldsConstraintValidator.php, line 193

Class

ContentTranslationSynchronizedFieldsConstraintValidator
Checks that synchronized fields are handled correctly in pending revisions.

Namespace

Drupal\content_translation\Plugin\Validation\Constraint

Code

protected function getOriginalTranslation(ContentEntityInterface $entity, ContentEntityInterface $original) {

  // If the language of the default translation is changing, the original
  // translation will be the same as the original entity, but they won't
  // necessarily have the same langcode.
  if ($entity
    ->isDefaultTranslation() && $original
    ->language()
    ->getId() !== $entity
    ->language()
    ->getId()) {
    return $original;
  }
  $langcode = $entity
    ->language()
    ->getId();
  if ($original
    ->hasTranslation($langcode)) {
    $original_langcode = $langcode;
  }
  else {
    $metadata = $this->contentTranslationManager
      ->getTranslationMetadata($entity);
    $original_langcode = $metadata
      ->getSource();
  }
  return $original
    ->getTranslation($original_langcode);
}