mirror of
https://github.com/nextcloud/mail.git
synced 2026-01-13 20:23:59 +00:00
39 lines
834 B
PHP
39 lines
834 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
/**
|
|
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
*/
|
|
namespace OCA\Mail\Send;
|
|
|
|
use Horde_Imap_Client_Socket;
|
|
use OCA\Mail\Account;
|
|
use OCA\Mail\Db\LocalMessage;
|
|
|
|
abstract class AHandler {
|
|
|
|
protected ?AHandler $next = null;
|
|
public function setNext(AHandler $next): AHandler {
|
|
$this->next = $next;
|
|
return $next;
|
|
}
|
|
|
|
abstract public function process(
|
|
Account $account,
|
|
LocalMessage $localMessage,
|
|
Horde_Imap_Client_Socket $client,
|
|
): LocalMessage;
|
|
|
|
protected function processNext(
|
|
Account $account,
|
|
LocalMessage $localMessage,
|
|
Horde_Imap_Client_Socket $client,
|
|
): LocalMessage {
|
|
if ($this->next !== null) {
|
|
return $this->next->process($account, $localMessage, $client);
|
|
}
|
|
return $localMessage;
|
|
}
|
|
}
|