server/src/app/Libraries/Mergers/CocoonAbstractRdfMerger.php
changeset 169 8fddc113095e
parent 19 eadaf0b8f02e
equal deleted inserted replaced
168:17f10b56c079 169:8fddc113095e
    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);