/**
  * (non-PHPdoc)
  * @see \oat\generis\model\data\RdfInterface::add()
  */
 public function add(\core_kernel_classes_Triple $triple)
 {
     if (!in_array($triple->modelid, $this->model->getReadableModels())) {
         $this->model->addReadableModel($triple->modelid);
     }
     $query = "INSERT INTO statements ( modelId, subject, predicate, object, l_language, epoch) VALUES ( ? , ? , ? , ? , ? , ?);";
     $success = $this->getPersistence()->exec($query, array($triple->modelid, $triple->subject, $triple->predicate, $triple->object, is_null($triple->lg) ? '' : $triple->lg, $this->getPersistence()->getPlatForm()->getNowExpression()));
     if ($triple->predicate == RDFS_SUBCLASSOF || $triple->predicate == RDF_TYPE) {
         $eventManager = $this->getServiceManager()->get(EventManager::CONFIG_ID);
         $eventManager->trigger(new ResourceCreated(new core_kernel_classes_Resource($triple->subject)));
     }
     return $success;
 }
Beispiel #2
0
 /**
  * Build where part of filter query
  * @param SmoothModel $model
  * @param array|string $class list of types (classes)
  * @return string
  */
 public static function buildWhereQuery(SmoothModel $model, $class)
 {
     $persistence = $model->getPersistence();
     $result = 'WHERE s.predicate = ' . $persistence->quote(RDF_TYPE) . PHP_EOL;
     if (is_array($class) === false) {
         $class = [$class];
     }
     $typeConditions = [];
     foreach ($class as $type) {
         $typeConditions[] = 's.object ' . self::buildSearchPattern($persistence, $type, false);
     }
     $result .= 'AND (' . implode(' OR ', $typeConditions) . ')' . PHP_EOL;
     $result .= 'AND s.modelid IN (' . implode(',', $model->getReadableModels()) . ')';
     return $result;
 }
Beispiel #3
0
 protected function getModelReadSqlCondition()
 {
     return 'modelid IN (' . implode(',', $this->model->getReadableModels()) . ')';
 }