TypeReader   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 5
lcom 0
cbo 1
dl 0
loc 27
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B readFromStream() 0 19 5
1
<?php
2
namespace evseevnn\Cassandra\Protocol\Response\DataStream;
3
use evseevnn\Cassandra\Enum\DataTypeEnum;
4
use evseevnn\Cassandra\Protocol\Response\DataStream;
5
6
final class TypeReader {
7
8
	/**
9
	 * @param DataStream $stream
10
	 * @return mixed
11
	 */
12
	public static function readFromStream(DataStream $stream) {
13
		$data = [
14
			'type' => $stream->readShort()
15
		];
16
		switch ($data['type']) {
17
			case DataTypeEnum::CUSTOM:
18
				$data['name'] = $stream->readString();
19
				break;
20
			case DataTypeEnum::COLLECTION_LIST:
21
			case DataTypeEnum::COLLECTION_SET:
22
				$data['value'] = self::readFromStream($stream);
23
				break;
24
			case DataTypeEnum::COLLECTION_MAP:
25
				$data['key'] = self::readFromStream($stream);
26
				$data['value'] = self::readFromStream($stream);
27
				break;
28
		}
29
		return $data;
30
	}
31
32
}