Passed
Push — master ( ed813f...432706 )
by Jean-Christophe
02:43
created

PendingRelationsRequest   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 10
eloc 20
dl 0
loc 46
ccs 23
cts 23
cp 1
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 2 1
A addNewParser() 0 3 1
A addPartObject() 0 12 5
A getObjectsConditionParsers() 0 2 1
A getActiveParser() 0 5 2
1
<?php
2
3
namespace Ubiquity\orm\core;
4
5
class PendingRelationsRequest {
6
	public static $MAX_ROW_COUNT=30;
7
	/**
8
	 * @var ObjectsConditionParser[]
9
	 */
10
	protected $objectsConditionParsers=[];
11
	/**
12
	 * @var ObjectsConditionParser
13
	 */
14
	protected $activeObjectsParser;
15
	
16 4
	public function __construct(){
17 4
		$this->addNewParser();
18 4
	}
19
	
20 4
	public function addPartObject($object,$condition,$value){
21 4
		$inserted=false;$i=0;$count=sizeof($this->objectsConditionParsers);
22 4
		while(!$inserted && $i<$count){
23 4
			$objectsConditionParser=$this->objectsConditionParsers[$i];
24 4
			if($objectsConditionParser->hasParam($value)){
25 3
				$objectsConditionParser->addObject($object);
26 3
				$inserted=true;
27
			}
28 4
			$i++;
29
		}
30 4
		if(!$inserted){
31 4
			$this->getActiveParser()->addPartObject($object, $condition, $value);
32
		}
33 4
	}
34
	
35 4
	protected function addNewParser(){
36 4
		$this->activeObjectsParser=new ObjectsConditionParser();
37 4
		return $this->objectsConditionParsers[]=$this->activeObjectsParser;
38
	}
39
	
40 4
	protected function getActiveParser(){
41 4
		if($this->activeObjectsParser->isFull()){
42 1
			return $this->addNewParser();
43
		}
44 4
		return $this->activeObjectsParser;
45
	}
46
	/**
47
	 * @return \Ubiquity\orm\core\ObjectsConditionParser[] 
48
	 */
49 4
	public function getObjectsConditionParsers() {
50 4
		return $this->objectsConditionParsers;
51
	}
52
53
}
54
55