blob: 1fe9534e8e5d00521d085d6b35723b1899360230 [file] [log] [blame]
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +02001<?php
2
3/*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Symfony\Component\Translation\Catalogue;
13
14use Symfony\Component\Translation\MessageCatalogueInterface;
15
16/**
17 * Represents an operation on catalogue(s).
18 *
19 * An instance of this interface performs an operation on one or more catalogues and
20 * stores intermediate and final results of the operation.
21 *
22 * The first catalogue in its argument(s) is called the 'source catalogue' or 'source' and
23 * the following results are stored:
24 *
25 * Messages: also called 'all', are valid messages for the given domain after the operation is performed.
26 *
27 * New Messages: also called 'new' (new = all ∖ source = {x: x ∈ all ∧ x ∉ source}).
28 *
29 * Obsolete Messages: also called 'obsolete' (obsolete = source ∖ all = {x: x ∈ source ∧ x ∉ all}).
30 *
31 * Result: also called 'result', is the resulting catalogue for the given domain that holds the same messages as 'all'.
32 *
33 * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
34 */
35interface OperationInterface
36{
37 /**
38 * Returns domains affected by operation.
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +020039 */
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010040 public function getDomains(): array;
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +020041
42 /**
43 * Returns all valid messages ('all') after operation.
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +020044 */
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010045 public function getMessages(string $domain): array;
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +020046
47 /**
48 * Returns new messages ('new') after operation.
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +020049 */
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010050 public function getNewMessages(string $domain): array;
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +020051
52 /**
53 * Returns obsolete messages ('obsolete') after operation.
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +020054 */
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010055 public function getObsoleteMessages(string $domain): array;
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +020056
57 /**
58 * Returns resulting catalogue ('result').
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +020059 */
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010060 public function getResult(): MessageCatalogueInterface;
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +020061}