class DiffOperation in Plug 7
Diff operation between two catalogues.
@author Jean-François Simon <contact@jfsimon.fr>
Hierarchy
- class \Symfony\Component\Translation\Catalogue\AbstractOperation implements OperationInterface
- class \Symfony\Component\Translation\Catalogue\DiffOperation
Expanded class hierarchy of DiffOperation
1 file declares its use of DiffOperation
- DiffOperationTest.php in lib/
Symfony/ translation/ Tests/ Catalogue/ DiffOperationTest.php
File
- lib/
Symfony/ translation/ Catalogue/ DiffOperation.php, line 19
Namespace
Symfony\Component\Translation\CatalogueView 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);
}
}
}
}
}