conditionType = $condition_type; $this->isReusable = $is_reusable; } /** * {@inheritdoc} */ protected function buildEntityQuery($match = NULL, $match_operator = 'CONTAINS') { $query = parent::buildEntityQuery($match, $match_operator); if ($this->conditionType) { /** @var \Drupal\Core\Database\Query\ConditionInterface $add_condition */ $add_condition = NULL; switch ($this->conditionType) { case 'base': $add_condition = $query; break; case 'group': $group = $query->andConditionGroup() ->exists('type'); $add_condition = $group; $query->condition($group); break; case "nested_group": $query->exists('type'); $sub_group = $query->andConditionGroup() ->exists('type'); $add_condition = $sub_group; $group = $query->andConditionGroup() ->exists('type') ->condition($sub_group); $query->condition($group); break; } if ($this->isReusable) { $add_condition->condition('reusable', 1); } else { $add_condition->condition('reusable', 0); } } return $query; } }