Definitions::rewind()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 3
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 2
1
<?php
2
namespace gossi\swagger\collections;
3
4
use gossi\swagger\Schema;
5
use phootwork\collection\CollectionUtils;
6
use phootwork\collection\Map;
7
use phootwork\lang\Arrayable;
8
use gossi\swagger\AbstractModel;
9
10
class Definitions extends AbstractModel implements Arrayable, \Iterator {
11
12
	/** @var Map */
13
	private $definitions;
14
15 13
	public function __construct($contents = []) {
16 13
		$this->parse($contents === null ? [] : $contents);
17 13
	}
18
19 13
	private function parse($contents) {
20 13
		$data = CollectionUtils::toMap($contents);
21
22 13
		$this->definitions = new Map();
23 13
		foreach ($data as $name => $prop) {
24 6
			$this->definitions->set($name, new Schema($prop));
25 13
		}
26 13
	}
27
28 11
	public function toArray() {
29 11
		return CollectionUtils::toArrayRecursive($this->definitions);
30
	}
31
32 1
	public function size() {
33 1
		return $this->definitions->size();
34
	}
35
36
	/**
37
	 * Returns the schema for the given field
38
	 *
39
	 * @param string $name
40
	 * @return Schema
41
	 */
42 1
	public function get($name) {
43 1
		if (!$this->definitions->has($name)) {
44
			$this->definitions->set($name, new Schema());
45
		}
46 1
		return $this->definitions->get($name);
47
	}
48
49
	/**
50
	 * Sets the field
51
	 *
52
	 * @param string name
53
	 * @param Schema $schame
0 ignored issues
show
Bug introduced by
There is no parameter named $schame. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
54
	 */
55 1
	public function set($name, Schema $schema) {
56 1
		$this->definitions->set($name, $schema);
57 1
	}
58
59
	/**
60
	 * Sets all definitions from another definitions collection. Will overwrite existing ones.
61
	 *
62
	 * @param Definitions $definitions
63
	 */
64
	public function setAll(Definitions $definitions) {
65
		foreach ($definitions as $name => $schema) {
66
			$this->set($name, $schema);
67
		}
68
	}
69
70
	/**
71
	 * Removes the given field
72
	 *
73
	 * @param string $name
74
	 */
75 1
	public function remove($name) {
76 1
		$this->definitions->remove($name);
77 1
	}
78
79
	/**
80
	 * Returns definitions has a schema with the given name
81
	 *
82
	 * @param string $name
83
	 * @return bool
84
	 */
85 1
	public function has($name) {
86 1
		return $this->definitions->has($name);
87
	}
88
89
	/**
90
	 * Returns whether the given schema exists
91
	 *
92
	 * @param Schema $schema
93
	 * @return bool
94
	 */
95 1
	public function contains(Schema $schema) {
96 1
		return $this->definitions->contains($schema);
97
	}
98
99
	public function current() {
100
		return $this->definitions->current();
101
	}
102
103
	public function key() {
104
		return $this->definitions->key();
105
	}
106
107
	public function next() {
108
		return $this->definitions->next();
109
	}
110
111
	public function rewind() {
112
		return $this->definitions->rewind();
113
	}
114
115
	public function valid() {
116
		return $this->definitions->valid();
117
	}
118
}
119