setFilter() public method

Set filter.
public setFilter ( Filter $filter ) : ConditionGroup
$filter Filter
return ConditionGroup
Example #1
0
 protected function createFilter($name, $conjunction, $context, $private, $user = null)
 {
     $filter = new Filter();
     $filter->setConjunction($conjunction);
     $filter->setContext($context);
     $filter->setChanged(new \DateTime());
     $filter->setCreated(new \DateTime());
     $filter->setPrivate($private);
     $filter->setUser($user);
     $filter->setCreator($this->getTestUser());
     $filter->setChanger($this->getTestUser());
     $trans = new FilterTranslation();
     $trans->setLocale('de');
     $trans->setName($name);
     $trans->setFilter($filter);
     $filter->addTranslation($trans);
     $conditionGroup1 = new ConditionGroup();
     $conditionGroup1->setFilter($filter);
     $conditionGroup1->addCondition($this->createCondition($conditionGroup1, DataTypes::STRING_TYPE, 'test', 'LIKE', 'name'));
     $conditionGroup2 = new ConditionGroup();
     $conditionGroup2->setFilter($filter);
     $conditionGroup2->addCondition($this->createCondition($conditionGroup2, DataTypes::NUMBER_TYPE, '2', '=', 'id'));
     $conditionGroup3 = new ConditionGroup();
     $conditionGroup3->setFilter($filter);
     $conditionGroup3->addCondition($this->createCondition($conditionGroup3, DataTypes::DATETIME_TYPE, '2015-01-01', '>', 'created'));
     $conditionGroup3->addCondition($this->createCondition($conditionGroup3, DataTypes::DATETIME_TYPE, '2015-02-02', '<', 'created'));
     $filter->addConditionGroup($conditionGroup1);
     $filter->addConditionGroup($conditionGroup2);
     $filter->addConditionGroup($conditionGroup3);
     $this->em->persist($filter);
     $this->em->persist($trans);
     $this->em->persist($conditionGroup1);
     $this->em->persist($conditionGroup2);
     $this->em->persist($conditionGroup3);
     return $filter;
 }
Example #2
0
 /**
  * Adds a condition group to the given filter.
  *
  * @param Filter $filter The filter to add the condition group to
  * @param array $conditionGroupData The array containing the data for the additional condition group
  *
  * @return bool
  *
  * @throws EntityIdAlreadySetException
  * @throws FilterDependencyNotFoundException
  */
 protected function addConditionGroup(Filter $filter, $conditionGroupData)
 {
     if (array_key_exists('id', $conditionGroupData)) {
         throw new EntityIdAlreadySetException(self::$conditionGroupEntityName, $conditionGroupData['id']);
     } elseif (array_key_exists('conditions', $conditionGroupData)) {
         $conditionGroup = new ConditionGroupEntity();
         $conditionGroup->setFilter($filter->getEntity());
         foreach ($conditionGroupData['conditions'] as $conditionData) {
             if (array_key_exists('id', $conditionData)) {
                 throw new EntityIdAlreadySetException(self::$conditionEntityName, $conditionData['id']);
             } elseif ($this->isValidConditionData($conditionData)) {
                 $condition = new ConditionEntity();
                 $condition->setType($conditionData['type']);
                 $value = $this->getValueForCondition($conditionData['value'], $conditionData['type']);
                 $condition->setValue($value);
                 $condition->setOperator($conditionData['operator']);
                 $condition->setField($conditionData['field']);
                 $condition->setConditionGroup($conditionGroup);
                 $conditionGroup->addCondition($condition);
                 $conditionGroup->setFilter($filter->getEntity());
                 $this->em->persist($condition);
             }
         }
         $filter->getEntity()->addConditionGroup($conditionGroup);
         $this->em->persist($conditionGroup);
     }
     return true;
 }