aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public/Mail/Provider/Attachment.php
blob: cb7b9b0d24104fd9bf285ef294d59bd59583a680 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?php

declare(strict_types=1);

/**
 * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */
namespace OCP\Mail\Provider;

/**
 * Mail Attachment Object
 *
 * This object is used to define the parameters of a mail attachment
 *
 * @since 30.0.0
 *
 */
class Attachment implements \OCP\Mail\Provider\IAttachment {

	/**
	 * initialize the mail attachment object
	 *
	 * @since 30.0.0
	 *
	 * @param string|null $contents binary contents of file
	 * @param string|null $name file name (e.g example.txt)
	 * @param string|null $type mime type (e.g. text/plain)
	 * @param bool $embedded embedded status of the attachment, default is false
	 */
	public function __construct(
		protected ?string $contents,
		protected ?string $name,
		protected ?string $type,
		protected bool $embedded = false
	) {
	}

	/**
	 * sets the attachment file name
	 *
	 * @since 30.0.0
	 *
	 * @param string $value file name (e.g example.txt)
	 *
	 * @return self return this object for command chaining
	 */
	public function setName(string $value): self {
		$this->name = $value;
		return $this;
	}

	/**
	 * gets the attachment file name
	 *
	 * @since 30.0.0
	 *
	 * @return string | null returns the attachment file name or null if not set
	 */
	public function getName(): string|null {
		return $this->name;
	}

	/**
	 * sets the attachment mime type
	 *
	 * @since 30.0.0
	 *
	 * @param string $value mime type (e.g. text/plain)
	 *
	 * @return self return this object for command chaining
	 */
	public function setType(string $value): self {
		$this->type = $value;
		return $this;
	}

	/**
	 * gets the attachment mime type
	 *
	 * @since 30.0.0
	 *
	 * @return string | null returns the attachment mime type or null if not set
	 */
	public function getType(): string|null {
		return $this->type;
	}

	/**
	 * sets the attachment contents (actual data)
	 *
	 * @since 30.0.0
	 *
	 * @param string $value binary contents of file
	 *
	 * @return self return this object for command chaining
	 */
	public function setContents(string $value): self {
		$this->contents = $value;
		return $this;
	}

	/**
	 * gets the attachment contents (actual data)
	 *
	 * @since 30.0.0
	 *
	 * @return string | null returns the attachment contents or null if not set
	 */
	public function getContents(): string|null {
		return $this->contents;
	}

	/**
	 * sets the embedded status of the attachment
	 *
	 * @since 30.0.0
	 *
	 * @param bool $value true - embedded / false - not embedded
	 *
	 * @return self return this object for command chaining
	 */
	public function setEmbedded(bool $value): self {
		$this->embedded = $value;
		return $this;
	}

	/**
	 * gets the embedded status of the attachment
	 *
	 * @since 30.0.0
	 *
	 * @return bool embedded status of the attachment
	 */
	public function getEmbedded(): bool {
		return $this->embedded;
	}

}