Passed
Push — master ( 342297...3e384a )
by Jean-Christophe
03:02
created

PendingRelationsRequest::addPartObject()   A

Complexity

Conditions 5
Paths 6

Size

Total Lines 12
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 30

Importance

Changes 0
Metric Value
cc 5
eloc 9
nc 6
nop 3
dl 0
loc 12
ccs 0
cts 12
cp 0
crap 30
rs 9.6111
c 0
b 0
f 0
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
	public function __construct(){
17
		$this->addNewParser();
18
	}
19
	
20
	public function addPartObject($object,$condition,$value){
21
		$inserted=false;$i=0;$count=sizeof($this->objectsConditionParsers);
22
		while(!$inserted && $i<$count){
23
			$objectsConditionParser=$this->objectsConditionParsers[$i];
24
			if($objectsConditionParser->hasParam($value)){
25
				$objectsConditionParser->addObject($object);
26
				$inserted=true;
27
			}
28
			$i++;
29
		}
30
		if(!$inserted){
31
			$this->getActiveParser()->addPartObject($object, $condition, $value);
32
		}
33
	}
34
	
35
	protected function addNewParser(){
36
		$this->activeObjectsParser=new ObjectsConditionParser();
37
		return $this->objectsConditionParsers[]=$this->activeObjectsParser;
38
	}
39
	
40
	protected function getActiveParser(){
41
		if($this->activeObjectsParser->isFull()){
42
			return $this->addNewParser();
43
		}
44
		return $this->activeObjectsParser;
45
	}
46
	/**
47
	 * @return \Ubiquity\orm\core\ObjectsConditionParser[] 
48
	 */
49
	public function getObjectsConditionParsers() {
50
		return $this->objectsConditionParsers;
51
	}
52
53
}
54
55