server/src/app/Libraries/Mergers/CocoonCollectionRdfMerger.php
changeset 18 f2a40bbc27f6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/app/Libraries/Mergers/CocoonCollectionRdfMerger.php	Tue Nov 17 13:11:55 2015 +0100
@@ -0,0 +1,47 @@
+<?php
+namespace CorpusParole\Libraries\Mergers;
+
+
+class CocoonCollectionRdfMerger extends CocoonAbstractRdfMerger {
+
+    protected function getTypeMergeMethodMap() {
+        return [
+            'http://www.europeana.eu/schemas/edm/Collection' => 'mergeEdmCollection',
+            'http://www.europeana.eu/schemas/edm/Place' => 'mergeDcSpatialBlankNode'
+        ];
+    }
+
+    protected function mergeEdmCollection($baseRes, $srcRes, $uri = null) {
+
+        if(is_null($uri)) {
+            $uri = $baseRes->getUri();
+        }
+        $targetArray =& $this->mergedArray[$uri];
+
+        $this->mergeProperties([
+            "http://purl.org/dc/terms/spatial"
+        ], [
+            "http://purl.org/dc/elements/1.1/title",
+            "http://purl.org/dc/terms/available",
+            "http://purl.org/dc/terms/created",
+            "http://purl.org/dc/terms/issued",
+            "http://purl.org/dc/terms/modified"
+        ], $targetArray, $baseRes, $srcRes);
+
+    }
+
+    protected function mergeDcSpatialBlankNode($baseRes, $srcRes, $uri=null) {
+        if(is_null($uri)) {
+            $uri = $baseRes->getUri();
+        }
+        $targetArray =& $this->mergedArray[$uri];
+
+        $this->mergeProperties([],[
+            "http://www.w3.org/2003/01/geo/wgs84_pos#lat",
+            "http://www.w3.org/2003/01/geo/wgs84_pos#long",
+            "http://www.w3.org/2003/01/geo/wgs84_pos#alt",
+            "http://www.w3.org/2002/07/owl#sameAs"
+        ], $targetArray, $baseRes, $srcRes);
+    }
+
+}