-
Notifications
You must be signed in to change notification settings - Fork 242
/
ElasticsearchSearchQueryOptionsStepImpl.java
71 lines (62 loc) · 3.2 KB
/
ElasticsearchSearchQueryOptionsStepImpl.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*
* Hibernate Search, full-text search for your domain model
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.search.backend.elasticsearch.search.dsl.query.impl;
import org.hibernate.search.backend.elasticsearch.ElasticsearchExtension;
import org.hibernate.search.backend.elasticsearch.search.aggregation.dsl.ElasticsearchSearchAggregationFactory;
import org.hibernate.search.backend.elasticsearch.search.dsl.predicate.ElasticsearchSearchPredicateFactory;
import org.hibernate.search.backend.elasticsearch.search.dsl.query.ElasticsearchSearchQueryOptionsStep;
import org.hibernate.search.backend.elasticsearch.search.dsl.query.ElasticsearchSearchQueryPredicateStep;
import org.hibernate.search.backend.elasticsearch.search.dsl.sort.ElasticsearchSearchSortFactory;
import org.hibernate.search.backend.elasticsearch.search.impl.ElasticsearchSearchQueryElementCollector;
import org.hibernate.search.backend.elasticsearch.search.query.ElasticsearchSearchQuery;
import org.hibernate.search.backend.elasticsearch.search.query.ElasticsearchSearchResult;
import org.hibernate.search.backend.elasticsearch.scope.impl.ElasticsearchIndexScope;
import org.hibernate.search.backend.elasticsearch.search.query.impl.ElasticsearchSearchQueryBuilder;
import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactory;
import org.hibernate.search.engine.search.dsl.predicate.SearchPredicateFactory;
import org.hibernate.search.engine.search.dsl.query.spi.AbstractExtendedSearchQueryOptionsStep;
import org.hibernate.search.engine.search.dsl.sort.SearchSortFactory;
class ElasticsearchSearchQueryOptionsStepImpl<H>
extends AbstractExtendedSearchQueryOptionsStep<
ElasticsearchSearchQueryOptionsStep<H>,
H,
ElasticsearchSearchResult<H>,
ElasticsearchSearchPredicateFactory,
ElasticsearchSearchSortFactory,
ElasticsearchSearchAggregationFactory,
ElasticsearchSearchQueryElementCollector
>
implements ElasticsearchSearchQueryPredicateStep<H>, ElasticsearchSearchQueryOptionsStep<H> {
private final ElasticsearchSearchQueryBuilder<H> searchQueryBuilder;
ElasticsearchSearchQueryOptionsStepImpl(ElasticsearchIndexScope indexSearchScope,
ElasticsearchSearchQueryBuilder<H> searchQueryBuilder) {
super( indexSearchScope, searchQueryBuilder );
this.searchQueryBuilder = searchQueryBuilder;
}
@Override
public ElasticsearchSearchQuery<H> toQuery() {
return searchQueryBuilder.build();
}
@Override
protected ElasticsearchSearchQueryOptionsStepImpl<H> thisAsS() {
return this;
}
@Override
protected ElasticsearchSearchPredicateFactory extendPredicateFactory(
SearchPredicateFactory predicateFactory) {
return predicateFactory.extension( ElasticsearchExtension.get() );
}
@Override
protected ElasticsearchSearchSortFactory extendSortFactory(
SearchSortFactory sortFactory) {
return sortFactory.extension( ElasticsearchExtension.get() );
}
@Override
protected ElasticsearchSearchAggregationFactory extendAggregationFactory(SearchAggregationFactory aggregationFactory) {
return aggregationFactory.extension( ElasticsearchExtension.get() );
}
}