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

PendingRelationsRequest   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

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

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
	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