Completed
Push — master ( 5afe3b...44ee0c )
by Jean-Christophe
05:18
created

PendingRelationsRequest::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 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 multitype:\Ubiquity\orm\core\ObjectsConditionParser 
0 ignored issues
show
Documentation introduced by
The doc-type multitype:\Ubiquity\orm\...\ObjectsConditionParser could not be parsed: Unknown type name "multitype:\Ubiquity\orm\core\ObjectsConditionParser" at position 0. (view supported doc-types)

This check marks PHPDoc comments that could not be parsed by our parser. To see which comment annotations we can parse, please refer to our documentation on supported doc-types.

Loading history...
48
	 */
49
	public function getObjectsConditionParsers() {
50
		return $this->objectsConditionParsers;
51
	}
52
53
}
54
55