/**
  * Inserts the given UrlWildcard
  *
  * @param \eZ\Publish\SPI\Persistence\Content\UrlWildcard $urlWildcard
  *
  * @return mixed
  */
 public function insertUrlWildcard(UrlWildcard $urlWildcard)
 {
     /** @var $query \ezcQueryInsert */
     $query = $this->dbHandler->createInsertQuery();
     $query->insertInto($this->dbHandler->quoteTable("ezurlwildcard"))->set($this->dbHandler->quoteColumn("destination_url"), $query->bindValue(trim($urlWildcard->destinationUrl, "/ "), null, \PDO::PARAM_STR))->set($this->dbHandler->quoteColumn("id"), $this->dbHandler->getAutoIncrementValue("ezurlwildcard", "id"))->set($this->dbHandler->quoteColumn("source_url"), $query->bindValue(trim($urlWildcard->sourceUrl, "/ "), null, \PDO::PARAM_STR))->set($this->dbHandler->quoteColumn("type"), $query->bindValue($urlWildcard->forward ? 1 : 2, null, \PDO::PARAM_INT));
     $query->prepare()->execute();
     return $this->dbHandler->lastInsertId($this->dbHandler->getSequenceName("ezurlwildcard", "id"));
 }
 /**
  * Inserts a new object state group into database
  *
  * @param \eZ\Publish\SPI\Persistence\Content\ObjectState\Group $objectStateGroup
  */
 public function insertObjectStateGroup(Group $objectStateGroup)
 {
     $query = $this->dbHandler->createInsertQuery();
     $query->insertInto($this->dbHandler->quoteTable('ezcobj_state_group'))->set($this->dbHandler->quoteColumn('id'), $this->dbHandler->getAutoIncrementValue('ezcobj_state_group', 'id'))->set($this->dbHandler->quoteColumn('default_language_id'), $query->bindValue($this->maskGenerator->generateLanguageIndicator($objectStateGroup->defaultLanguage, false), null, \PDO::PARAM_INT))->set($this->dbHandler->quoteColumn('identifier'), $query->bindValue($objectStateGroup->identifier))->set($this->dbHandler->quoteColumn('language_mask'), $query->bindValue($this->generateLanguageMask($objectStateGroup->languageCodes), null, \PDO::PARAM_INT));
     $query->prepare()->execute();
     $objectStateGroup->id = (int) $this->dbHandler->lastInsertId($this->dbHandler->getSequenceName('ezcobj_state_group', 'id'));
     $this->insertObjectStateGroupTranslations($objectStateGroup);
 }
 /**
  * Adds limitations to an existing policy
  *
  * @param int $policyId
  * @param array $limitations
  *
  * @return void
  */
 public function addPolicyLimitations($policyId, array $limitations)
 {
     foreach ($limitations as $identifier => $values) {
         $query = $this->handler->createInsertQuery();
         $query->insertInto($this->handler->quoteTable('ezpolicy_limitation'))->set($this->handler->quoteColumn('id'), $this->handler->getAutoIncrementValue('ezpolicy_limitation', 'id'))->set($this->handler->quoteColumn('identifier'), $query->bindValue($identifier))->set($this->handler->quoteColumn('policy_id'), $query->bindValue($policyId, null, \PDO::PARAM_INT));
         $query->prepare()->execute();
         $limitationId = $this->handler->lastInsertId($this->handler->getSequenceName('ezpolicy_limitation', 'id'));
         foreach ($values as $value) {
             $query = $this->handler->createInsertQuery();
             $query->insertInto($this->handler->quoteTable('ezpolicy_limitation_value'))->set($this->handler->quoteColumn('id'), $this->handler->getAutoIncrementValue('ezpolicy_limitation_value', 'id'))->set($this->handler->quoteColumn('value'), $query->bindValue($value))->set($this->handler->quoteColumn('limitation_id'), $query->bindValue($limitationId, null, \PDO::PARAM_INT));
             $query->prepare()->execute();
         }
     }
 }