class FilterFactory in Elasticsearch Connector 8.2
Same name and namespace in other branches
- 8.7 src/ElasticSearch/Parameters/Factory/FilterFactory.php \Drupal\elasticsearch_connector\ElasticSearch\Parameters\Factory\FilterFactory
- 8.5 src/ElasticSearch/Parameters/Factory/FilterFactory.php \Drupal\elasticsearch_connector\ElasticSearch\Parameters\Factory\FilterFactory
- 8.6 src/ElasticSearch/Parameters/Factory/FilterFactory.php \Drupal\elasticsearch_connector\ElasticSearch\Parameters\Factory\FilterFactory
Class FilterFactory.
Hierarchy
- class \Drupal\elasticsearch_connector\ElasticSearch\Parameters\Factory\FilterFactory
Expanded class hierarchy of FilterFactory
1 file declares its use of FilterFactory
- SearchBuilder.php in src/
ElasticSearch/ Parameters/ Builder/ SearchBuilder.php
File
- src/
ElasticSearch/ Parameters/ Factory/ FilterFactory.php, line 10
Namespace
Drupal\elasticsearch_connector\ElasticSearch\Parameters\FactoryView source
class FilterFactory {
/**
* Get query by Condition instance.
*
* @param Condition $condition
*
* @return array
*
* @throws \Exception
*/
public static function filterFromCondition(Condition $condition) {
// Handles "empty", "not empty" operators.
if (!$condition
->getValue()) {
switch ($condition
->getOperator()) {
case '<>':
$filter = [
'exists' => [
'field' => $condition
->getField(),
],
];
break;
case '=':
$filter = [
'not' => [
'filter' => [
'exists' => [
'field' => $condition
->getField(),
],
],
],
];
break;
default:
throw new \Exception(t('Value is empty for :field_id! Incorrect filter criteria is using for searching!', [
':field_id' => $condition
->getField(),
]));
}
}
else {
switch ($condition
->getOperator()) {
case '=':
$filter = [
'term' => [
$condition
->getField() => $condition
->getValue(),
],
];
break;
case 'IN':
$filter = [
'terms' => [
$condition
->getField() => array_values($condition
->getValue()),
],
];
break;
case '<>':
$filter = [
'not' => [
'filter' => [
'term' => [
$condition
->getField() => $condition
->getValue(),
],
],
],
];
break;
case '>':
$filter = [
'range' => [
$condition
->getField() => [
'from' => $condition
->getValue(),
'to' => NULL,
'include_lower' => FALSE,
'include_upper' => FALSE,
],
],
];
break;
case '>=':
$filter = [
'range' => [
$condition
->getField() => [
'from' => $condition
->getValue(),
'to' => NULL,
'include_lower' => TRUE,
'include_upper' => FALSE,
],
],
];
break;
case '<':
$filter = [
'range' => [
$condition
->getField() => [
'from' => NULL,
'to' => $condition
->getValue(),
'include_lower' => FALSE,
'include_upper' => FALSE,
],
],
];
break;
case '<=':
$filter = [
'range' => [
$condition
->getField() => [
'from' => NULL,
'to' => $condition
->getValue(),
'include_lower' => FALSE,
'include_upper' => TRUE,
],
],
];
break;
default:
throw new \Exception(t('Undefined operator :field_operator for :field_id field! Incorrect filter criteria is using for searching!', [
':field_operator' => $condition
->getOperator(),
':field_id' => $condition
->getField(),
]));
}
}
return $filter;
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
FilterFactory:: |
public static | function | Get query by Condition instance. |