Completed
Push — master ( d4e951...14a860 )
by Jean-Christophe
04:01
created

PendingRelationsRequest::addNewParser()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

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