Skip to content

Commit e267a46

Browse files
committed
HSEARCH-5384 Introduce Typed*** versions of DSL factories and scopes
1 parent 0cbffc7 commit e267a46

File tree

334 files changed

+2605
-1744
lines changed

Some content is hidden

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

334 files changed

+2605
-1744
lines changed

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

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@
6363
public final class ElasticsearchExtension<SR, H, R, E, LOS>
6464
implements SearchQueryDslExtension<SR, ElasticsearchSearchQuerySelectStep<SR, R, E, LOS>, R, E, LOS>,
6565
SearchQueryExtension<ElasticsearchSearchQuery<H>, H>,
66-
SearchPredicateFactoryExtension<SR, ElasticsearchSearchPredicateFactory<SR>>,
67-
SearchSortFactoryExtension<SR, ElasticsearchSearchSortFactory<SR>>,
68-
SearchProjectionFactoryExtension<SR, ElasticsearchSearchProjectionFactory<SR, R, E>, R, E>,
69-
SearchAggregationFactoryExtension<SR, ElasticsearchSearchAggregationFactory<SR>>,
66+
SearchPredicateFactoryExtension<ElasticsearchSearchPredicateFactory<SR>>,
67+
SearchSortFactoryExtension<ElasticsearchSearchSortFactory<SR>>,
68+
SearchProjectionFactoryExtension<ElasticsearchSearchProjectionFactory<SR, R, E>, R, E>,
69+
SearchAggregationFactoryExtension<ElasticsearchSearchAggregationFactory<SR>>,
7070
IndexFieldTypeFactoryExtension<ElasticsearchIndexFieldTypeFactory>,
7171
SchemaExportExtension<ElasticsearchIndexSchemaExport> {
7272

@@ -136,10 +136,11 @@ public Optional<ElasticsearchSearchQuery<H>> extendOptional(SearchQuery<H> origi
136136
/**
137137
* {@inheritDoc}
138138
*/
139+
@SuppressWarnings("unchecked")
139140
@Override
140-
public Optional<ElasticsearchSearchPredicateFactory<SR>> extendOptional(SearchPredicateFactory<SR> original) {
141-
if ( original instanceof ElasticsearchSearchPredicateFactory ) {
142-
return Optional.of( (ElasticsearchSearchPredicateFactory<SR>) original );
141+
public Optional<ElasticsearchSearchPredicateFactory<SR>> extendOptional(SearchPredicateFactory original) {
142+
if ( original instanceof ElasticsearchSearchPredicateFactory<?> f ) {
143+
return Optional.of( (ElasticsearchSearchPredicateFactory<SR>) f );
143144
}
144145
else {
145146
return Optional.empty();
@@ -149,11 +150,11 @@ public Optional<ElasticsearchSearchPredicateFactory<SR>> extendOptional(SearchPr
149150
/**
150151
* {@inheritDoc}
151152
*/
153+
@SuppressWarnings("unchecked")
152154
@Override
153-
public Optional<ElasticsearchSearchSortFactory<SR>> extendOptional(
154-
SearchSortFactory<SR> original) {
155-
if ( original instanceof ElasticsearchSearchSortFactory ) {
156-
return Optional.of( (ElasticsearchSearchSortFactory<SR>) original );
155+
public Optional<ElasticsearchSearchSortFactory<SR>> extendOptional(SearchSortFactory original) {
156+
if ( original instanceof ElasticsearchSearchSortFactory<?> f ) {
157+
return Optional.of( (ElasticsearchSearchSortFactory<SR>) f );
157158
}
158159
else {
159160
return Optional.empty();
@@ -163,8 +164,9 @@ public Optional<ElasticsearchSearchSortFactory<SR>> extendOptional(
163164
/**
164165
* {@inheritDoc}
165166
*/
167+
@SuppressWarnings("unchecked")
166168
@Override
167-
public Optional<ElasticsearchSearchProjectionFactory<SR, R, E>> extendOptional(SearchProjectionFactory<SR, R, E> original) {
169+
public Optional<ElasticsearchSearchProjectionFactory<SR, R, E>> extendOptional(SearchProjectionFactory<R, E> original) {
168170
if ( original instanceof ElasticsearchSearchProjectionFactory ) {
169171
return Optional.of( (ElasticsearchSearchProjectionFactory<SR, R, E>) original );
170172
}
@@ -176,9 +178,9 @@ public Optional<ElasticsearchSearchProjectionFactory<SR, R, E>> extendOptional(S
176178
/**
177179
* {@inheritDoc}
178180
*/
181+
@SuppressWarnings("unchecked")
179182
@Override
180-
public Optional<ElasticsearchSearchAggregationFactory<SR>> extendOptional(
181-
SearchAggregationFactory<SR> original) {
183+
public Optional<ElasticsearchSearchAggregationFactory<SR>> extendOptional(SearchAggregationFactory original) {
182184
if ( original instanceof ElasticsearchSearchAggregationFactory ) {
183185
return Optional.of( (ElasticsearchSearchAggregationFactory<SR>) original );
184186
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import org.hibernate.search.engine.search.common.spi.SearchQueryElementFactory;
1515
import org.hibernate.search.engine.search.predicate.SearchPredicate;
1616
import org.hibernate.search.engine.search.predicate.definition.PredicateDefinition;
17-
import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory;
17+
import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory;
1818
import org.hibernate.search.engine.search.predicate.spi.NamedPredicateBuilder;
1919
import org.hibernate.search.engine.search.predicate.spi.NamedValuesBasedPredicateDefinitionContext;
2020

@@ -71,7 +71,7 @@ private static class Builder extends AbstractBuilder implements NamedPredicateBu
7171
private final PredicateDefinition definition;
7272
private final String predicateName;
7373
private final ElasticsearchSearchIndexCompositeNodeContext field;
74-
private SearchPredicateFactory<?> factory;
74+
private TypedSearchPredicateFactory<?> factory;
7575
private final Map<String, Object> params = new LinkedHashMap<>();
7676

7777
Builder(PredicateDefinition definition, String predicateName,
@@ -84,7 +84,7 @@ private static class Builder extends AbstractBuilder implements NamedPredicateBu
8484
}
8585

8686
@Override
87-
public void factory(SearchPredicateFactory<?> factory) {
87+
public void factory(TypedSearchPredicateFactory<?> factory) {
8888
this.factory = factory;
8989
}
9090

backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/projection/dsl/ElasticsearchSearchProjectionFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import org.hibernate.search.engine.search.projection.dsl.ExtendedSearchProjectionFactory;
88
import org.hibernate.search.engine.search.projection.dsl.ProjectionFinalStep;
9-
import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory;
9+
import org.hibernate.search.engine.search.projection.dsl.TypedSearchProjectionFactory;
1010

1111
import com.google.gson.JsonObject;
1212

@@ -16,7 +16,7 @@
1616
* @param <SR> Scope root type.
1717
* @param <R> The type of entity references.
1818
* @param <E> The type of entities.
19-
* @see SearchProjectionFactory
19+
* @see TypedSearchProjectionFactory
2020
*/
2121
public interface ElasticsearchSearchProjectionFactory<SR, R, E>
2222
extends ExtendedSearchProjectionFactory<SR, ElasticsearchSearchProjectionFactory<SR, R, E>, R, E> {

backend/lucene/src/main/java/org/hibernate/search/backend/lucene/LuceneExtension.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,10 @@
6666
public final class LuceneExtension<SR, H, R, E, LOS>
6767
implements SearchQueryDslExtension<SR, LuceneSearchQuerySelectStep<SR, R, E, LOS>, R, E, LOS>,
6868
SearchQueryExtension<LuceneSearchQuery<H>, H>,
69-
SearchPredicateFactoryExtension<SR, LuceneSearchPredicateFactory<SR>>,
70-
SearchSortFactoryExtension<SR, LuceneSearchSortFactory<SR>>,
71-
SearchProjectionFactoryExtension<SR, LuceneSearchProjectionFactory<SR, R, E>, R, E>,
72-
SearchAggregationFactoryExtension<SR, LuceneSearchAggregationFactory<SR>>,
69+
SearchPredicateFactoryExtension<LuceneSearchPredicateFactory<SR>>,
70+
SearchSortFactoryExtension<LuceneSearchSortFactory<SR>>,
71+
SearchProjectionFactoryExtension<LuceneSearchProjectionFactory<SR, R, E>, R, E>,
72+
SearchAggregationFactoryExtension<LuceneSearchAggregationFactory<SR>>,
7373
IndexFieldTypeFactoryExtension<LuceneIndexFieldTypeFactory>,
7474
IndexScopeExtension<LuceneIndexScope>,
7575
SchemaExportExtension<LuceneIndexSchemaExport> {
@@ -139,10 +139,11 @@ public Optional<LuceneSearchQuery<H>> extendOptional(SearchQuery<H> original,
139139
/**
140140
* {@inheritDoc}
141141
*/
142+
@SuppressWarnings("unchecked")
142143
@Override
143-
public Optional<LuceneSearchPredicateFactory<SR>> extendOptional(SearchPredicateFactory<SR> original) {
144-
if ( original instanceof LuceneSearchPredicateFactory ) {
145-
return Optional.of( (LuceneSearchPredicateFactory<SR>) original );
144+
public Optional<LuceneSearchPredicateFactory<SR>> extendOptional(SearchPredicateFactory original) {
145+
if ( original instanceof LuceneSearchPredicateFactory<?> f ) {
146+
return Optional.of( (LuceneSearchPredicateFactory<SR>) f );
146147
}
147148
else {
148149
return Optional.empty();
@@ -152,9 +153,9 @@ public Optional<LuceneSearchPredicateFactory<SR>> extendOptional(SearchPredicate
152153
/**
153154
* {@inheritDoc}
154155
*/
156+
@SuppressWarnings("unchecked")
155157
@Override
156-
public Optional<LuceneSearchSortFactory<SR>> extendOptional(
157-
SearchSortFactory<SR> original) {
158+
public Optional<LuceneSearchSortFactory<SR>> extendOptional(SearchSortFactory original) {
158159
if ( original instanceof LuceneSearchSortFactory ) {
159160
return Optional.of( (LuceneSearchSortFactory<SR>) original );
160161
}
@@ -166,8 +167,9 @@ public Optional<LuceneSearchSortFactory<SR>> extendOptional(
166167
/**
167168
* {@inheritDoc}
168169
*/
170+
@SuppressWarnings("unchecked")
169171
@Override
170-
public Optional<LuceneSearchProjectionFactory<SR, R, E>> extendOptional(SearchProjectionFactory<SR, R, E> original) {
172+
public Optional<LuceneSearchProjectionFactory<SR, R, E>> extendOptional(SearchProjectionFactory<R, E> original) {
171173
if ( original instanceof LuceneSearchProjectionFactory ) {
172174
return Optional.of( (LuceneSearchProjectionFactory<SR, R, E>) original );
173175
}
@@ -179,8 +181,9 @@ public Optional<LuceneSearchProjectionFactory<SR, R, E>> extendOptional(SearchPr
179181
/**
180182
* {@inheritDoc}
181183
*/
184+
@SuppressWarnings("unchecked")
182185
@Override
183-
public Optional<LuceneSearchAggregationFactory<SR>> extendOptional(SearchAggregationFactory<SR> original) {
186+
public Optional<LuceneSearchAggregationFactory<SR>> extendOptional(SearchAggregationFactory original) {
184187
if ( original instanceof LuceneSearchAggregationFactory ) {
185188
return Optional.of( (LuceneSearchAggregationFactory<SR>) original );
186189
}

backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/predicate/impl/LuceneNamedPredicate.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import org.hibernate.search.engine.search.common.spi.SearchQueryElementFactory;
1515
import org.hibernate.search.engine.search.predicate.SearchPredicate;
1616
import org.hibernate.search.engine.search.predicate.definition.PredicateDefinition;
17-
import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory;
17+
import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory;
1818
import org.hibernate.search.engine.search.predicate.spi.NamedPredicateBuilder;
1919
import org.hibernate.search.engine.search.predicate.spi.NamedValuesBasedPredicateDefinitionContext;
2020

@@ -70,7 +70,7 @@ private static class Builder extends AbstractBuilder implements NamedPredicateBu
7070
private final PredicateDefinition definition;
7171
private final String predicateName;
7272
private final LuceneSearchIndexCompositeNodeContext field;
73-
private SearchPredicateFactory<?> factory;
73+
private TypedSearchPredicateFactory<?> factory;
7474
private final Map<String, Object> params = new LinkedHashMap<>();
7575

7676
Builder(PredicateDefinition definition, String predicateName, LuceneSearchIndexScope<?> scope,
@@ -82,7 +82,7 @@ private static class Builder extends AbstractBuilder implements NamedPredicateBu
8282
}
8383

8484
@Override
85-
public void factory(SearchPredicateFactory<?> factory) {
85+
public void factory(TypedSearchPredicateFactory<?> factory) {
8686
this.factory = factory;
8787
}
8888

backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/projection/dsl/LuceneSearchProjectionFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import org.hibernate.search.engine.search.projection.dsl.ExtendedSearchProjectionFactory;
88
import org.hibernate.search.engine.search.projection.dsl.ProjectionFinalStep;
9-
import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory;
9+
import org.hibernate.search.engine.search.projection.dsl.TypedSearchProjectionFactory;
1010
import org.hibernate.search.util.common.annotation.Incubating;
1111

1212
import org.apache.lucene.document.Document;
@@ -18,7 +18,7 @@
1818
* @param <SR> Scope root type.
1919
* @param <R> The type of entity references.
2020
* @param <E> The type of entities.
21-
* @see SearchProjectionFactory
21+
* @see TypedSearchProjectionFactory
2222
*/
2323
public interface LuceneSearchProjectionFactory<SR, R, E>
2424
extends ExtendedSearchProjectionFactory<SR, LuceneSearchProjectionFactory<SR, R, E>, R, E> {

documentation/src/main/asciidoc/migration/index.adoc

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,8 @@ to be in a more consistent format compared with other logging categories.
119119
- Hibernate Search now uses logging categories instead of class names to log messages.
120120
See link:https://docs.jboss.org/hibernate/search/{hibernateSearchVersionShort}/reference/en-US/html_single/#logging-categories-aggregated[Appendix B: List of all available logging categories]
121121
to find out what categories are available.
122+
- The method signature changed from `SearchSortFactory#composite(Consumer<? super CompositeSortComponentsStep<SR, ?>> elementContributor)` to `SearchSortFactory#composite(Consumer<? super CompositeSortOptionsCollector<?>> elementContributor)`.
123+
This change should not affect the end user as collecting of elements still works as it was originally intended to.
122124
- With introduction of the field references (`org.hibernate.search.engine.search.reference.pass:[*]`) most of the Search DSL
123125
interfaces (`org.hibernate.search.engine.search.pass:[*].dsl.pass:[*]`) got an extra type argument `SR` (scope root type).
124126
In simple scenarios where the query is created in one go there will be no code changes required:
@@ -136,11 +138,11 @@ In scenarios where there's work with the affected Search DSL interfaces is requi
136138
[source,java,subs="+attributes"]
137139
----
138140
var scope = searchSession.scope( Book.class ); // <1>
139-
SearchScope<?, Book> scope = searchSession.scope( Book.class ); // <2>
140-
SearchScope<Book, Book> scope = searchSession.scope( Book.class ); // <3>
141-
SearchScope<ReadingMaterial, ReadingMaterial> scope = searchSession.scope( List.of( Book.class, Magazine.class ) ); // <4>
142-
SearchScope<Book__, Book> scope = searchSession.scope( Book.class ); // <5>
143-
SearchScope<SomeRandomClass, Book> scope = searchSession.scope( Book.class ); // <6>
141+
TypedSearchScope<?, Book> scope = searchSession.scope( Book.class ); // <2>
142+
TypedSearchScope<Book, Book> scope = searchSession.scope( Book.class ); // <3>
143+
TypedSearchScope<ReadingMaterial, ReadingMaterial> scope = searchSession.scope( List.of( Book.class, Magazine.class ) ); // <4>
144+
TypedSearchScope<Book__, Book> scope = searchSession.scope( Book.class ); // <5>
145+
TypedSearchScope<SomeRandomClass, Book> scope = searchSession.scope( Book.class ); // <6>
144146
----
145147
<1> Use `var` if possible. Otherwise, if you need to pass the DSL interfaces to some other methods as parameters,
146148
consider one of the following options:

documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/namedpredicate/SkuIdentifierBinder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import org.hibernate.search.engine.search.predicate.SearchPredicate;
1313
import org.hibernate.search.engine.search.predicate.definition.PredicateDefinition;
1414
import org.hibernate.search.engine.search.predicate.definition.PredicateDefinitionContext;
15-
import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory;
15+
import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory;
1616
import org.hibernate.search.mapper.pojo.bridge.PropertyBridge;
1717
import org.hibernate.search.mapper.pojo.bridge.binding.PropertyBindingContext;
1818
import org.hibernate.search.mapper.pojo.bridge.mapping.programmatic.PropertyBinder;
@@ -89,7 +89,7 @@ public void write(DocumentElement target, String skuId, PropertyBridgeWriteConte
8989
private static class SkuIdentifierMatchPredicateDefinition implements PredicateDefinition { // <1>
9090
@Override
9191
public SearchPredicate create(PredicateDefinitionContext<?> context) {
92-
SearchPredicateFactory<?> f = context.predicate(); // <2>
92+
TypedSearchPredicateFactory<?> f = context.predicate(); // <2>
9393

9494
String pattern = context.params().get( "pattern", String.class ); // <3>
9595

documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/constructorparameter/MyFieldProjectionBinder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import org.hibernate.search.engine.search.projection.SearchProjection;
88
import org.hibernate.search.engine.search.projection.definition.ProjectionDefinition;
99
import org.hibernate.search.engine.search.projection.definition.ProjectionDefinitionContext;
10-
import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory;
10+
import org.hibernate.search.engine.search.projection.dsl.TypedSearchProjectionFactory;
1111
import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBinder;
1212
import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBindingContext;
1313

@@ -31,7 +31,7 @@ private MyProjectionDefinition(String fieldName) {
3131
}
3232

3333
@Override
34-
public SearchProjection<String> create(SearchProjectionFactory<?, ?, ?> factory,
34+
public SearchProjection<String> create(TypedSearchProjectionFactory<?, ?, ?> factory,
3535
ProjectionDefinitionContext context) {
3636
return factory.field( fieldName, String.class ) // <3>
3737
.toProjection();

documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/multi/MyFieldProjectionBinder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import org.hibernate.search.engine.search.projection.SearchProjection;
1212
import org.hibernate.search.engine.search.projection.definition.ProjectionDefinition;
1313
import org.hibernate.search.engine.search.projection.definition.ProjectionDefinitionContext;
14-
import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory;
14+
import org.hibernate.search.engine.search.projection.dsl.TypedSearchProjectionFactory;
1515
import org.hibernate.search.mapper.pojo.model.PojoModelValue;
1616
import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBinder;
1717
import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBindingContext;
@@ -32,7 +32,7 @@ public void bind(ProjectionBindingContext context) {
3232
private static class MyProjectionDefinition
3333
implements ProjectionDefinition<List<String>> { // <4>
3434
@Override
35-
public SearchProjection<List<String>> create(SearchProjectionFactory<?, ?, ?> factory,
35+
public SearchProjection<List<String>> create(TypedSearchProjectionFactory<?, ?, ?> factory,
3636
ProjectionDefinitionContext context) {
3737
return factory.field( "tags", String.class )
3838
.collector( ProjectionCollector.list() ) // <4>

documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/param/annotation/MyFieldProjectionBinder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import org.hibernate.search.engine.search.projection.SearchProjection;
88
import org.hibernate.search.engine.search.projection.definition.ProjectionDefinition;
99
import org.hibernate.search.engine.search.projection.definition.ProjectionDefinitionContext;
10-
import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory;
10+
import org.hibernate.search.engine.search.projection.dsl.TypedSearchProjectionFactory;
1111
import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBinder;
1212
import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBindingContext;
1313

@@ -39,7 +39,7 @@ public MyProjectionDefinition(String fieldName) { // <2>
3939
}
4040

4141
@Override
42-
public SearchProjection<String> create(SearchProjectionFactory<?, ?, ?> factory,
42+
public SearchProjection<String> create(TypedSearchProjectionFactory<?, ?, ?> factory,
4343
ProjectionDefinitionContext context) {
4444
return factory.field( fieldName, String.class ) // <3>
4545
.toProjection();

documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/param/string/MyFieldProjectionBinder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import org.hibernate.search.engine.search.projection.SearchProjection;
88
import org.hibernate.search.engine.search.projection.definition.ProjectionDefinition;
99
import org.hibernate.search.engine.search.projection.definition.ProjectionDefinitionContext;
10-
import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory;
10+
import org.hibernate.search.engine.search.projection.dsl.TypedSearchProjectionFactory;
1111
import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBinder;
1212
import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBindingContext;
1313

@@ -32,7 +32,7 @@ public MyProjectionDefinition(String fieldName) { // <2>
3232
}
3333

3434
@Override
35-
public SearchProjection<String> create(SearchProjectionFactory<?, ?, ?> factory,
35+
public SearchProjection<String> create(TypedSearchProjectionFactory<?, ?, ?> factory,
3636
ProjectionDefinitionContext context) {
3737
return factory.field( fieldName, String.class ) // <3>
3838
.toProjection();

documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/simple/MyFieldProjectionBinder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import org.hibernate.search.engine.search.projection.SearchProjection;
88
import org.hibernate.search.engine.search.projection.definition.ProjectionDefinition;
99
import org.hibernate.search.engine.search.projection.definition.ProjectionDefinitionContext;
10-
import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory;
10+
import org.hibernate.search.engine.search.projection.dsl.TypedSearchProjectionFactory;
1111
import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBinder;
1212
import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBindingContext;
1313

@@ -29,7 +29,7 @@ public void bind(ProjectionBindingContext context) { // <2>
2929
private static class MyProjectionDefinition // <1>
3030
implements ProjectionDefinition<String> { // <2>
3131
@Override
32-
public SearchProjection<String> create(SearchProjectionFactory<?, ?, ?> factory,
32+
public SearchProjection<String> create(TypedSearchProjectionFactory<?, ?, ?> factory,
3333
ProjectionDefinitionContext context) {
3434
return factory.field( "title", String.class ) // <3>
3535
.toProjection(); // <4>

0 commit comments

Comments
 (0)