1: <?php
2:
3: namespace PHPixie\ORM\Relationships\Relationship\Implementation\Preloader\Result\Multiple;
4:
5: abstract class IdMap extends \PHPixie\ORM\Relationships\Relationship\Implementation\Preloader\Result\Multiple
6: {
7: protected $idMap = array();
8:
9: protected function getMappedFor($model)
10: {
11: $modelId = $model->id();
12:
13: if(array_key_exists($modelId, $this->idMap)) {
14: $ids = $this->idMap[$model->id()];
15: }else{
16: $ids = array();
17: }
18:
19: $loader = $this->buildLoader($ids);
20: return $this->loaders->editableProxy($loader);
21: }
22:
23: protected function pushToMap($ownerId, $preloadedId)
24: {
25: if(!array_key_exists($ownerId, $this->idMap))
26: $this->idMap[$ownerId] = array();
27: $this->idMap[$ownerId][] = $preloadedId;
28: }
29: }