You are here

class DiffOperation in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/translation/Catalogue/DiffOperation.php \Symfony\Component\Translation\Catalogue\DiffOperation

Diff operation between two catalogues.

@author Jean-François Simon <contact@jfsimon.fr>

Hierarchy

Expanded class hierarchy of DiffOperation

1 file declares its use of DiffOperation
DiffOperationTest.php in vendor/symfony/translation/Tests/Catalogue/DiffOperationTest.php

File

vendor/symfony/translation/Catalogue/DiffOperation.php, line 19

Namespace

Symfony\Component\Translation\Catalogue
View source
class DiffOperation extends AbstractOperation {

  /**
   * {@inheritdoc}
   */
  protected function processDomain($domain) {
    $this->messages[$domain] = array(
      'all' => array(),
      'new' => array(),
      'obsolete' => array(),
    );
    foreach ($this->source
      ->all($domain) as $id => $message) {
      if ($this->target
        ->has($id, $domain)) {
        $this->messages[$domain]['all'][$id] = $message;
        $this->result
          ->add(array(
          $id => $message,
        ), $domain);
        if (null !== ($keyMetadata = $this->source
          ->getMetadata($id, $domain))) {
          $this->result
            ->setMetadata($id, $keyMetadata, $domain);
        }
      }
      else {
        $this->messages[$domain]['obsolete'][$id] = $message;
      }
    }
    foreach ($this->target
      ->all($domain) as $id => $message) {
      if (!$this->source
        ->has($id, $domain)) {
        $this->messages[$domain]['all'][$id] = $message;
        $this->messages[$domain]['new'][$id] = $message;
        $this->result
          ->add(array(
          $id => $message,
        ), $domain);
        if (null !== ($keyMetadata = $this->target
          ->getMetadata($id, $domain))) {
          $this->result
            ->setMetadata($id, $keyMetadata, $domain);
        }
      }
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AbstractOperation::$domains private property
AbstractOperation::$messages protected property
AbstractOperation::$result protected property
AbstractOperation::$source protected property
AbstractOperation::$target protected property
AbstractOperation::getDomains public function Returns domains affected by operation. Overrides OperationInterface::getDomains
AbstractOperation::getMessages public function Returns all valid messages after operation. Overrides OperationInterface::getMessages
AbstractOperation::getNewMessages public function Returns new messages after operation. Overrides OperationInterface::getNewMessages
AbstractOperation::getObsoleteMessages public function Returns obsolete messages after operation. Overrides OperationInterface::getObsoleteMessages
AbstractOperation::getResult public function Returns resulting catalogue. Overrides OperationInterface::getResult
AbstractOperation::__construct public function
DiffOperation::processDomain protected function Overrides AbstractOperation::processDomain