HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/work.naniguide.com/vendor/php-http/message/src/Decorator/MessageDecorator.php
<?php

namespace Http\Message\Decorator;

use Psr\Http\Message\MessageInterface;
use Psr\Http\Message\StreamInterface;

/**
 * @author Márk Sági-Kazár <[email protected]>
 */
trait MessageDecorator
{
    /**
     * @var MessageInterface
     */
    private $message;

    /**
     * Returns the decorated message.
     *
     * Since the underlying Message is immutable as well
     * exposing it is not an issue, because it's state cannot be altered
     */
    public function getMessage(): MessageInterface
    {
        return $this->message;
    }

    public function getProtocolVersion(): string
    {
        return $this->message->getProtocolVersion();
    }

    public function withProtocolVersion(string $version): MessageInterface
    {
        $new = clone $this;
        $new->message = $this->message->withProtocolVersion($version);

        return $new;
    }

    public function getHeaders(): array
    {
        return $this->message->getHeaders();
    }

    public function hasHeader(string $header): bool
    {
        return $this->message->hasHeader($header);
    }

    public function getHeader(string $header): array
    {
        return $this->message->getHeader($header);
    }

    public function getHeaderLine(string $header): string
    {
        return $this->message->getHeaderLine($header);
    }

    public function withHeader(string $header, $value): MessageInterface
    {
        $new = clone $this;
        $new->message = $this->message->withHeader($header, $value);

        return $new;
    }

    public function withAddedHeader(string $header, $value): MessageInterface
    {
        $new = clone $this;
        $new->message = $this->message->withAddedHeader($header, $value);

        return $new;
    }

    public function withoutHeader(string $header): MessageInterface
    {
        $new = clone $this;
        $new->message = $this->message->withoutHeader($header);

        return $new;
    }

    public function getBody(): StreamInterface
    {
        return $this->message->getBody();
    }

    public function withBody(StreamInterface $body): MessageInterface
    {
        $new = clone $this;
        $new->message = $this->message->withBody($body);

        return $new;
    }
}