Skip to content

Commit 33d7e5b

Browse files
committed
HSEARCH-3319 WIP: a few changes
1 parent d7de38d commit 33d7e5b

File tree

187 files changed

+1328
-997
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

187 files changed

+1328
-997
lines changed

backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/ElasticsearchExtension.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,10 @@
6767
public final class ElasticsearchExtension<H, R, E, LOS>
6868
implements SearchQueryDslExtension<ElasticsearchSearchQuerySelectStep<R, E, LOS>, R, E, LOS>,
6969
SearchQueryExtension<ElasticsearchSearchQuery<H>, H>,
70-
SearchPredicateFactoryExtension<ElasticsearchSearchPredicateFactory>,
71-
SearchSortFactoryExtension<ElasticsearchSearchSortFactory>,
70+
SearchPredicateFactoryExtension<ElasticsearchSearchPredicateFactory<E>>,
71+
SearchSortFactoryExtension<ElasticsearchSearchSortFactory<E>>,
7272
SearchProjectionFactoryExtension<ElasticsearchSearchProjectionFactory<R, E>, R, E>,
73-
SearchAggregationFactoryExtension<ElasticsearchSearchAggregationFactory>,
73+
SearchAggregationFactoryExtension<ElasticsearchSearchAggregationFactory<E>>,
7474
IndexFieldTypeFactoryExtension<ElasticsearchIndexFieldTypeFactory>,
7575
SchemaExportExtension<ElasticsearchIndexSchemaExport> {
7676

@@ -181,8 +181,8 @@ public Optional<ElasticsearchSearchProjectionFactory<R, E>> extendOptional(Searc
181181
* {@inheritDoc}
182182
*/
183183
@Override
184-
public Optional<ElasticsearchSearchAggregationFactory> extendOptional(
185-
SearchAggregationFactory original) {
184+
public Optional<ElasticsearchSearchAggregationFactory<E>> extendOptional(
185+
SearchAggregationFactory<?> original) {
186186
if ( original instanceof ElasticsearchSearchAggregationFactory ) {
187187
return Optional.of( (ElasticsearchSearchAggregationFactory) original );
188188
}

backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/scope/model/impl/ElasticsearchSearchIndexScopeImpl.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -173,13 +173,13 @@ public <P> ElasticsearchSearchQueryBuilder<P> select(BackendSessionContext sessi
173173
}
174174

175175
@Override
176-
public ElasticsearchSearchPredicateFactory predicateFactory() {
177-
return new ElasticsearchSearchPredicateFactoryImpl( SearchPredicateDslContext.root( this ) );
176+
public <E> ElasticsearchSearchPredicateFactory<E> predicateFactory() {
177+
return new ElasticsearchSearchPredicateFactoryImpl<>( SearchPredicateDslContext.root( this ) );
178178
}
179179

180180
@Override
181-
public ElasticsearchSearchSortFactory sortFactory() {
182-
return new ElasticsearchSearchSortFactoryImpl( SearchSortDslContext
181+
public <E> ElasticsearchSearchSortFactory<E> sortFactory() {
182+
return new ElasticsearchSearchSortFactoryImpl<>( SearchSortDslContext
183183
.root( this, ElasticsearchSearchSortFactoryImpl::new, predicateFactory() ) );
184184
}
185185

@@ -189,8 +189,8 @@ public <R, E> ElasticsearchSearchProjectionFactory<R, E> projectionFactory() {
189189
}
190190

191191
@Override
192-
public ElasticsearchSearchAggregationFactory aggregationFactory() {
193-
return new ElasticsearchSearchAggregationFactoryImpl( SearchAggregationDslContext.root( this, predicateFactory() ) );
192+
public <E> ElasticsearchSearchAggregationFactory<E> aggregationFactory() {
193+
return new ElasticsearchSearchAggregationFactoryImpl<>( SearchAggregationDslContext.root( this, predicateFactory() ) );
194194
}
195195

196196
@Override

backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/aggregation/dsl/ElasticsearchSearchAggregationFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212

1313
import com.google.gson.JsonObject;
1414

15-
public interface ElasticsearchSearchAggregationFactory
16-
extends ExtendedSearchAggregationFactory<ElasticsearchSearchAggregationFactory, ElasticsearchSearchPredicateFactory> {
15+
public interface ElasticsearchSearchAggregationFactory<E>
16+
extends ExtendedSearchAggregationFactory<E, ElasticsearchSearchAggregationFactory<E>, ElasticsearchSearchPredicateFactory<E>> {
1717

1818
/**
1919
* Create an aggregation from JSON.

backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/aggregation/dsl/impl/ElasticsearchSearchAggregationFactoryImpl.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,24 @@
1515

1616
import com.google.gson.JsonObject;
1717

18-
public class ElasticsearchSearchAggregationFactoryImpl
18+
public class ElasticsearchSearchAggregationFactoryImpl<E>
1919
extends AbstractSearchAggregationFactory<
20-
ElasticsearchSearchAggregationFactory,
20+
E,
21+
ElasticsearchSearchAggregationFactory<E>,
2122
ElasticsearchSearchAggregationIndexScope<?>,
22-
ElasticsearchSearchPredicateFactory>
23-
implements ElasticsearchSearchAggregationFactory {
23+
ElasticsearchSearchPredicateFactory<E>>
24+
implements ElasticsearchSearchAggregationFactory<E> {
2425

2526
public ElasticsearchSearchAggregationFactoryImpl(
26-
SearchAggregationDslContext<ElasticsearchSearchAggregationIndexScope<?>,
27-
ElasticsearchSearchPredicateFactory> dslContext) {
27+
SearchAggregationDslContext<E,
28+
ElasticsearchSearchAggregationIndexScope<?>,
29+
ElasticsearchSearchPredicateFactory<E>> dslContext) {
2830
super( dslContext );
2931
}
3032

3133
@Override
32-
public ElasticsearchSearchAggregationFactory withRoot(String objectFieldPath) {
33-
return new ElasticsearchSearchAggregationFactoryImpl( dslContext.rescope(
34+
public ElasticsearchSearchAggregationFactory<E> withRoot(String objectFieldPath) {
35+
return new ElasticsearchSearchAggregationFactoryImpl<>( dslContext.rescope(
3436
dslContext.scope().withRoot( objectFieldPath ),
3537
dslContext.predicateFactory().withRoot( objectFieldPath ) ) );
3638
}

backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/predicate/dsl/ElasticsearchSearchPredicateFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
/**
1515
* A factory for search predicates with some Elasticsearch-specific methods.
1616
*/
17-
public interface ElasticsearchSearchPredicateFactory
18-
extends ExtendedSearchPredicateFactory<ElasticsearchSearchPredicateFactory> {
17+
public interface ElasticsearchSearchPredicateFactory<E>
18+
extends ExtendedSearchPredicateFactory<E, ElasticsearchSearchPredicateFactory<E>> {
1919

2020
/**
2121
* Create a predicate from JSON.

backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/predicate/dsl/impl/ElasticsearchSearchPredicateFactoryImpl.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,21 @@
1515

1616
import com.google.gson.JsonObject;
1717

18-
public class ElasticsearchSearchPredicateFactoryImpl
18+
public class ElasticsearchSearchPredicateFactoryImpl<E>
1919
extends AbstractSearchPredicateFactory<
20-
ElasticsearchSearchPredicateFactory,
20+
E,
21+
ElasticsearchSearchPredicateFactory<E>,
2122
ElasticsearchSearchPredicateIndexScope<?>>
22-
implements ElasticsearchSearchPredicateFactory {
23+
implements ElasticsearchSearchPredicateFactory<E> {
2324

2425
public ElasticsearchSearchPredicateFactoryImpl(
2526
SearchPredicateDslContext<ElasticsearchSearchPredicateIndexScope<?>> dslContext) {
2627
super( dslContext );
2728
}
2829

2930
@Override
30-
public ElasticsearchSearchPredicateFactory withRoot(String objectFieldPath) {
31-
return new ElasticsearchSearchPredicateFactoryImpl( dslContext.rescope(
31+
public ElasticsearchSearchPredicateFactory<E> withRoot(String objectFieldPath) {
32+
return new ElasticsearchSearchPredicateFactoryImpl<>( dslContext.rescope(
3233
dslContext.scope().withRoot( objectFieldPath ) ) );
3334
}
3435

backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/predicate/impl/ElasticsearchNamedPredicate.java

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@
2424

2525
import com.google.gson.JsonObject;
2626

27-
public class ElasticsearchNamedPredicate extends AbstractElasticsearchSingleFieldPredicate {
27+
public class ElasticsearchNamedPredicate<E> extends AbstractElasticsearchSingleFieldPredicate {
2828

2929
private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() );
3030

3131
private final ElasticsearchSearchPredicate providedPredicate;
3232

33-
private ElasticsearchNamedPredicate(Builder builder, ElasticsearchSearchPredicate providedPredicate) {
33+
private ElasticsearchNamedPredicate(Builder<E> builder, ElasticsearchSearchPredicate providedPredicate) {
3434
super( builder );
3535
this.providedPredicate = providedPredicate;
3636
}
@@ -47,40 +47,40 @@ protected JsonObject doToJsonQuery(PredicateRequestContext context,
4747
return providedPredicate.toJsonQuery( context );
4848
}
4949

50-
public static class Factory
51-
extends AbstractElasticsearchCompositeNodeSearchQueryElementFactory<NamedPredicateBuilder> {
52-
private final PredicateDefinition definition;
50+
public static class Factory<E>
51+
extends AbstractElasticsearchCompositeNodeSearchQueryElementFactory<NamedPredicateBuilder<E>> {
52+
private final PredicateDefinition<E> definition;
5353
private final String predicateName;
5454

55-
public Factory(PredicateDefinition definition, String predicateName) {
55+
public Factory(PredicateDefinition<E> definition, String predicateName) {
5656
this.definition = definition;
5757
this.predicateName = predicateName;
5858
}
5959

6060
@Override
6161
public void checkCompatibleWith(SearchQueryElementFactory<?, ?, ?> other) {
6262
super.checkCompatibleWith( other );
63-
Factory castedOther = (Factory) other;
63+
Factory<E> castedOther = (Factory<E>) other;
6464
if ( !definition.equals( castedOther.definition ) ) {
6565
throw log.differentPredicateDefinitionForQueryElement( definition, castedOther.definition );
6666
}
6767
}
6868

6969
@Override
70-
public NamedPredicateBuilder create(ElasticsearchSearchIndexScope<?> scope,
70+
public NamedPredicateBuilder<E> create(ElasticsearchSearchIndexScope<?> scope,
7171
ElasticsearchSearchIndexCompositeNodeContext node) {
72-
return new Builder( definition, predicateName, scope, node );
72+
return new Builder<>( definition, predicateName, scope, node );
7373
}
7474
}
7575

76-
private static class Builder extends AbstractBuilder implements NamedPredicateBuilder {
77-
private final PredicateDefinition definition;
76+
private static class Builder<E> extends AbstractBuilder implements NamedPredicateBuilder<E> {
77+
private final PredicateDefinition<E> definition;
7878
private final String predicateName;
7979
private final ElasticsearchSearchIndexCompositeNodeContext field;
80-
private SearchPredicateFactory factory;
80+
private SearchPredicateFactory<E> factory;
8181
private final Map<String, Object> params = new LinkedHashMap<>();
8282

83-
Builder(PredicateDefinition definition, String predicateName,
83+
Builder(PredicateDefinition<E> definition, String predicateName,
8484
ElasticsearchSearchIndexScope<?> scope,
8585
ElasticsearchSearchIndexCompositeNodeContext node) {
8686
super( scope, node );
@@ -90,7 +90,7 @@ private static class Builder extends AbstractBuilder implements NamedPredicateBu
9090
}
9191

9292
@Override
93-
public void factory(SearchPredicateFactory factory) {
93+
public void factory(SearchPredicateFactory<E> factory) {
9494
this.factory = factory;
9595
}
9696

@@ -101,13 +101,14 @@ public void param(String name, Object value) {
101101

102102
@Override
103103
public SearchPredicate build() {
104-
NamedValuesBasedPredicateDefinitionContext ctx = new NamedValuesBasedPredicateDefinitionContext( factory, params,
105-
name -> log.paramNotDefined( name, predicateName, field.eventContext() ) );
104+
NamedValuesBasedPredicateDefinitionContext<E> ctx =
105+
new NamedValuesBasedPredicateDefinitionContext<>( factory, params,
106+
name -> log.paramNotDefined( name, predicateName, field.eventContext() ) );
106107

107108
ElasticsearchSearchPredicate providedPredicate = ElasticsearchSearchPredicate.from(
108109
scope, definition.create( ctx ) );
109110

110-
return new ElasticsearchNamedPredicate( this, providedPredicate );
111+
return new ElasticsearchNamedPredicate<>( this, providedPredicate );
111112
}
112113
}
113114
}

backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/dsl/ElasticsearchSearchQueryOptionsStep.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,14 @@
1414
import org.hibernate.search.engine.search.query.dsl.SearchQueryOptionsStep;
1515
import org.hibernate.search.util.common.annotation.Incubating;
1616

17-
public interface ElasticsearchSearchQueryOptionsStep<H, LOS>
17+
public interface ElasticsearchSearchQueryOptionsStep<E, H, LOS>
1818
extends SearchQueryOptionsStep<
19-
ElasticsearchSearchQueryOptionsStep<H, LOS>,
19+
E,
20+
ElasticsearchSearchQueryOptionsStep<E, H, LOS>,
2021
H,
2122
LOS,
22-
ElasticsearchSearchSortFactory,
23-
ElasticsearchSearchAggregationFactory>,
23+
ElasticsearchSearchSortFactory<E>,
24+
ElasticsearchSearchAggregationFactory<E>>,
2425
ElasticsearchSearchFetchable<H> {
2526

2627
/**
@@ -36,7 +37,7 @@ public interface ElasticsearchSearchQueryOptionsStep<H, LOS>
3637
* @return {@code this}, for method chaining.
3738
*/
3839
@Incubating
39-
ElasticsearchSearchQueryOptionsStep<H, LOS> requestTransformer(ElasticsearchSearchRequestTransformer transformer);
40+
ElasticsearchSearchQueryOptionsStep<E, H, LOS> requestTransformer(ElasticsearchSearchRequestTransformer transformer);
4041

4142
@Override
4243
ElasticsearchSearchQuery<H> toQuery();

backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/dsl/ElasticsearchSearchQuerySelectStep.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,32 +17,32 @@
1717

1818
public interface ElasticsearchSearchQuerySelectStep<R, E, LOS>
1919
extends SearchQuerySelectStep<
20-
ElasticsearchSearchQueryOptionsStep<E, LOS>,
20+
ElasticsearchSearchQueryOptionsStep<E, E, LOS>,
2121
R,
2222
E,
2323
LOS,
2424
ElasticsearchSearchProjectionFactory<R, E>,
25-
ElasticsearchSearchPredicateFactory>,
26-
ElasticsearchSearchQueryWhereStep<E, LOS> {
25+
ElasticsearchSearchPredicateFactory<E>>,
26+
ElasticsearchSearchQueryWhereStep<E, E, LOS> {
2727

2828
@Override
29-
ElasticsearchSearchQueryWhereStep<E, LOS> selectEntity();
29+
ElasticsearchSearchQueryWhereStep<E, E, LOS> selectEntity();
3030

3131
@Override
32-
ElasticsearchSearchQueryWhereStep<R, LOS> selectEntityReference();
32+
ElasticsearchSearchQueryWhereStep<E, R, LOS> selectEntityReference();
3333

3434
@Override
35-
<P> ElasticsearchSearchQueryWhereStep<P, LOS> select(Class<P> objectClass);
35+
<P> ElasticsearchSearchQueryWhereStep<E, P, LOS> select(Class<P> objectClass);
3636

3737
@Override
38-
<P> ElasticsearchSearchQueryWhereStep<P, LOS> select(
38+
<P> ElasticsearchSearchQueryWhereStep<E, P, LOS> select(
3939
Function<? super ElasticsearchSearchProjectionFactory<R, E>,
4040
? extends ProjectionFinalStep<P>> projectionContributor);
4141

4242
@Override
43-
<P> ElasticsearchSearchQueryWhereStep<P, LOS> select(SearchProjection<P> projection);
43+
<P> ElasticsearchSearchQueryWhereStep<E, P, LOS> select(SearchProjection<P> projection);
4444

4545
@Override
46-
ElasticsearchSearchQueryWhereStep<List<?>, LOS> select(SearchProjection<?>... projections);
46+
ElasticsearchSearchQueryWhereStep<E, List<?>, LOS> select(SearchProjection<?>... projections);
4747

4848
}

backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/dsl/ElasticsearchSearchQueryWhereStep.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import org.hibernate.search.backend.elasticsearch.search.predicate.dsl.ElasticsearchSearchPredicateFactory;
1010
import org.hibernate.search.engine.search.query.dsl.SearchQueryWhereStep;
1111

12-
public interface ElasticsearchSearchQueryWhereStep<H, LOS>
13-
extends SearchQueryWhereStep<ElasticsearchSearchQueryOptionsStep<H, LOS>, H, LOS, ElasticsearchSearchPredicateFactory> {
12+
public interface ElasticsearchSearchQueryWhereStep<E, H, LOS>
13+
extends SearchQueryWhereStep<E, ElasticsearchSearchQueryOptionsStep<E, H, LOS>, H, LOS, ElasticsearchSearchPredicateFactory<E>> {
1414

1515
}

0 commit comments

Comments
 (0)