45 continue; |
45 continue; |
46 } |
46 } |
47 $this->mergedArray[$baseResource->getUri()] = $baseGraph->toRdfPhp()[$baseResource->getUri()]; |
47 $this->mergedArray[$baseResource->getUri()] = $baseGraph->toRdfPhp()[$baseResource->getUri()]; |
48 } |
48 } |
49 foreach($srcGraph->allOfType($nodeType) as $srcResource) { |
49 foreach($srcGraph->allOfType($nodeType) as $srcResource) { |
50 if($baseResource->isBNode()) { |
50 if($srcResource->isBNode()) { |
51 continue; |
51 continue; |
52 } |
52 } |
53 if(empty($baseGraph->propertyUris($srcResource->getUri()))) { |
53 if(empty($baseGraph->propertyUris($srcResource->getUri()))) { |
54 $this->mergedArray[$srcResource->getUri()] = $srcGraph->toRdfPhp()[$srcResource->getUri()]; |
54 $this->mergedArray[$srcResource->getUri()] = $srcGraph->toRdfPhp()[$srcResource->getUri()]; |
55 } |
55 } |
67 |
67 |
68 $srcUrl = isset($bnodeDef['src_url'])?$bnodeDef['src_url']:null; |
68 $srcUrl = isset($bnodeDef['src_url'])?$bnodeDef['src_url']:null; |
69 $baseUrl = isset($bnodeDef['base_url'])?$bnodeDef['base_url']:null; |
69 $baseUrl = isset($bnodeDef['base_url'])?$bnodeDef['base_url']:null; |
70 |
70 |
71 if(is_null($srcUrl) && !is_null($baseUrl)) { |
71 if(is_null($srcUrl) && !is_null($baseUrl)) { |
72 $this->mergedArray[$bnodeId] = $this->copyResource($baseGraph->toRdfPhp()[$baseUrl],CocoonAbstractRdfMerger::ORIGIN_BASE); |
72 $copyResource = $this->copyResource($baseGraph->toRdfPhp()[$baseUrl],CocoonAbstractRdfMerger::ORIGIN_BASE); |
|
73 $this->mergedArray[$bnodeId] = $copyResource; |
73 } |
74 } |
74 elseif (is_null($baseUrl) && !is_null($srcUrl)) { |
75 elseif (is_null($baseUrl) && !is_null($srcUrl)) { |
75 $this->mergedArray[$bnodeId] = $this->copyResource($srcGraph->toRdfPhp()[$srcUrl],CocoonAbstractRdfMerger::ORIGIN_SRC); |
76 $copyResource = $this->copyResource($srcGraph->toRdfPhp()[$srcUrl],CocoonAbstractRdfMerger::ORIGIN_SRC); |
|
77 $this->mergedArray[$bnodeId] = $copyResource; |
76 } |
78 } |
77 elseif (!is_null($baseUrl) && !is_null($srcUrl)) { |
79 elseif (!is_null($baseUrl) && !is_null($srcUrl)) { |
78 |
80 |
79 $baseResource = $baseGraph->resource($baseUrl); |
81 $baseResource = $baseGraph->resource($baseUrl); |
80 $srcResource = $srcGraph->resource($srcUrl); |
82 $srcResource = $srcGraph->resource($srcUrl); |
188 protected function mergeProperties($singleBNodeProperties, $singleProperties, &$targetArray, $baseRes, $srcRes) { |
190 protected function mergeProperties($singleBNodeProperties, $singleProperties, &$targetArray, $baseRes, $srcRes) { |
189 $srcRdfPhp = $this->srcGraph->toRdfPhp(); |
191 $srcRdfPhp = $this->srcGraph->toRdfPhp(); |
190 $srcArray = array_key_exists($srcRes->getUri(), $srcRdfPhp)?$srcRdfPhp[$srcRes->getUri()]:[]; |
192 $srcArray = array_key_exists($srcRes->getUri(), $srcRdfPhp)?$srcRdfPhp[$srcRes->getUri()]:[]; |
191 $baseRdfPhp = $this->baseGraph->toRdfPhp(); |
193 $baseRdfPhp = $this->baseGraph->toRdfPhp(); |
192 $baseArray = array_key_exists($baseRes->getUri(), $baseRdfPhp)?$baseRdfPhp[$baseRes->getUri()]:[]; |
194 $baseArray = array_key_exists($baseRes->getUri(), $baseRdfPhp)?$baseRdfPhp[$baseRes->getUri()]:[]; |
193 foreach($srcRes->propertyUris() as $prop) { |
195 foreach(array_unique(array_merge($srcRes->propertyUris(), $baseRes->propertyUris())) as $prop) { |
194 if(in_array($prop, $singleBNodeProperties)) { |
196 if(in_array($prop, $singleBNodeProperties)) { |
195 $this->mergePropertySingleBNode($prop, $targetArray, $baseArray, $srcArray); |
197 $this->mergePropertySingleBNode($prop, $targetArray, $baseArray, $srcArray); |
196 } |
198 } |
197 elseif(in_array($prop, $singleProperties)) { |
199 elseif(in_array($prop, $singleProperties)) { |
198 $this->mergePropertySingleValue($prop, $targetArray, $baseArray, $srcArray); |
200 $this->mergePropertySingleValue($prop, $targetArray, $baseArray, $srcArray); |