Completed
Push — master ( 8b683f...7025f1 )
by Morris
29:10 queued 12:40
created

CloudFederationFactory::getCloudFederationShare()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 11
dl 0
loc 3
rs 10
c 0
b 0
f 0

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
<?php
2
/**
3
 * @copyright Copyright (c) 2018 Bjoern Schiessle <[email protected]>
4
 *
5
 * @license GNU AGPL version 3 or any later version
6
 *
7
 * This program is free software: you can redistribute it and/or modify
8
 * it under the terms of the GNU Affero General Public License as
9
 * published by the Free Software Foundation, either version 3 of the
10
 * License, or (at your option) any later version.
11
 *
12
 * This program is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 * GNU Affero General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU Affero General Public License
18
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
19
 *
20
 */
21
22
namespace OC\Federation;
23
24
use OCP\Federation\ICloudFederationFactory;
25
use OCP\Federation\ICloudFederationNotification;
26
use OCP\Federation\ICloudFederationShare;
27
28
class CloudFederationFactory implements ICloudFederationFactory {
29
30
	/**
31
	 * get a CloudFederationShare Object to prepare a share you want to send
32
	 *
33
	 * @param string $shareWith
34
	 * @param string $name resource name (e.g. document.odt)
35
	 * @param string $description share description (optional)
36
	 * @param string $providerId resource UID on the provider side
37
	 * @param string $owner provider specific UID of the user who owns the resource
38
	 * @param string $ownerDisplayName display name of the user who shared the item
39
	 * @param string $sharedBy provider specific UID of the user who shared the resource
40
	 * @param string $sharedByDisplayName display name of the user who shared the resource
41
	 * @param string $sharedSecret used to authenticate requests across servers
42
	 * @param string $shareType ('group' or 'user' share)
43
	 * @param $resourceType ('file', 'calendar',...)
44
	 * @return ICloudFederationShare
45
	 *
46
	 * @since 14.0.0
47
	 */
48
	public function getCloudFederationShare($shareWith, $name, $description, $providerId, $owner, $ownerDisplayName, $sharedBy, $sharedByDisplayName, $sharedSecret, $shareType, $resourceType) {
49
		return new CloudFederationShare($shareWith, $name, $description, $providerId, $owner, $ownerDisplayName, $sharedBy, $sharedByDisplayName, $shareType, $resourceType, $sharedSecret);
50
	}
51
52
	/**
53
	 * get a Cloud FederationNotification object to prepare a notification you
54
	 * want to send
55
	 *
56
	 * @return ICloudFederationNotification
57
	 *
58
	 * @since 14.0.0
59
	 */
60
	public function getCloudFederationNotification() {
61
		return new CloudFederationNotification();
62
	}
63
}
64