server/src/app/Models/GeoResource.php
author Chloe Laisne <chloe.laisne@gmail.com>
Thu, 25 Aug 2016 19:10:41 +0200
changeset 270 6ddc52965fb8
parent 171 f4f558f04f37
child 277 bd4bc1db4f40
permissions -rw-r--r--
Remove participants doubles
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
namespace CorpusParole\Models;
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
use CorpusParole\Libraries\RdfModel\RdfModelResource;
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
use CorpusParole\Libraries\Utils;
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
use JsonSerializable;
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
use Log;
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
/**
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
 */
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
class GeoResource extends RdfModelResource implements JsonSerializable {
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    public function __construct($uri, $graph) {
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
        parent::__construct($uri, $graph);
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    }
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
171
f4f558f04f37 georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents: 169
diff changeset
    17
    private $refLocs = null;
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    private $notes = null;
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
    public function clearMemoizationCache() {
171
f4f558f04f37 georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents: 169
diff changeset
    21
        $this->refLocs = null;
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
        $this->notes = null;
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
    }
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
171
f4f558f04f37 georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents: 169
diff changeset
    25
    public function getRefLocs() {
f4f558f04f37 georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents: 169
diff changeset
    26
        if(is_null($this->refLocs)) {
f4f558f04f37 georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents: 169
diff changeset
    27
            $refLocs = $this->allResources("<http://www.w3.org/2002/07/owl#sameAs>");
f4f558f04f37 georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents: 169
diff changeset
    28
            $this->refLocs = array_map(function($refLoc) { return $refLoc->getUri();}, $refLocs);
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
        }
171
f4f558f04f37 georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents: 169
diff changeset
    30
        return $this->refLocs;
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
    }
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
    public function getNotes() {
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
        if(is_null($this->notes)) {
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
            $this->notes = $this->all('<http://www.w3.org/2004/02/skos/core#note>');
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
        }
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
        return $this->notes;
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
    }
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
    public function jsonSerialize() {
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
        $notes = array_map(
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
            function($note) { return Utils::processLiteralResourceOrString($note); },
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
            $this->getNotes()
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
        );
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        return [
171
f4f558f04f37 georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents: 169
diff changeset
    46
            'ref-locs' => $this->getRefLocs(),
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
            'notes' => $notes
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
        ];
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
    }
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
}