--- a/server/src/app/Repositories/RdfDocumentRepository.php Fri Feb 12 23:46:15 2016 +0100
+++ b/server/src/app/Repositories/RdfDocumentRepository.php Fri Feb 19 21:18:12 2016 +0100
@@ -7,6 +7,7 @@
use CorpusParole\Models\Document;
use CorpusParole\Libraries\CorpusParoleException;
use CorpusParole\Libraries\Sparql\SparqlClient;
+use CorpusParole\Services\LexvoResolverInterface;
use EasyRdf\Graph;
@@ -20,9 +21,11 @@
class RdfDocumentRepository implements DocumentRepository {
private $sparqlClient;
+ private $lexvoResolver;
- public function __construct(SparqlClient $sparqlClient) {
+ public function __construct(SparqlClient $sparqlClient, LexvoResolverInterface $lexvoResolver) {
$this->sparqlClient = $sparqlClient;
+ $this->lexvoResolver = $lexvoResolver;
}
public function getSparqlClient() {
@@ -168,5 +171,33 @@
]);
}
+ /**
+ * Resolve lexvo id for all documents in the list
+ * this allow to optimise the call of lexvo repository
+ * @param $docList Array: a list (Array) of document to resolve
+ */
+ public function resolveLexvo(Array $docList) {
+
+ $languageIds = [];
+ #get the list pf language needing resolving
+ foreach ($docList as $doc) {
+ if($doc->getLanguageValue() && is_null($doc->getLanguageResolved())) {
+ $languageIds[$doc->getLanguageValue()] = true;
+ }
+ }
+
+ # call LexvoResolver
+ $langNames = $this->lexvoResolver->getNames(array_keys($languageIds));
+
+ foreach ($docList as $doc) {
+ if($doc->getLanguageValue() && is_null($doc->getLanguageResolved())) {
+ $doc->setLanguageResolved($langNames[$doc->getLanguageValue()]);
+ }
+ }
+
+ return $docList;
+ }
+
+
}