1<?php
2/**
3 * @copyright Copyright (c) 2016, ownCloud, Inc.
4 *
5 * @author Robin McCorkell <robin@mccorkell.me.uk>
6 * @author Roeland Jago Douma <roeland@famdouma.nl>
7 *
8 * @license AGPL-3.0
9 *
10 * This code is free software: you can redistribute it and/or modify
11 * it under the terms of the GNU Affero General Public License, version 3,
12 * as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU Affero General Public License for more details.
18 *
19 * You should have received a copy of the GNU Affero General Public License, version 3,
20 * along with this program. If not, see <http://www.gnu.org/licenses/>
21 *
22 */
23namespace OCA\Files_External\Lib;
24
25use OCA\Files_External\Service\BackendService;
26
27/**
28 * Trait to implement priority mechanics for a configuration class
29 */
30trait PriorityTrait {
31
32	/** @var int initial priority */
33	protected $priority = BackendService::PRIORITY_DEFAULT;
34
35	/**
36	 * @return int
37	 */
38	public function getPriority() {
39		return $this->priority;
40	}
41
42	/**
43	 * @param int $priority
44	 * @return self
45	 */
46	public function setPriority($priority) {
47		$this->priority = $priority;
48		return $this;
49	}
50
51	/**
52	 * @param PriorityTrait $a
53	 * @param PriorityTrait $b
54	 * @return int
55	 */
56	public static function priorityCompare(PriorityTrait $a, PriorityTrait $b) {
57		return ($a->getPriority() - $b->getPriority());
58	}
59}
60