From 4a7310c8817ab89c8b5794ba7a75e9786efc31e1 Mon Sep 17 00:00:00 2001 From: marko-bekhta Date: Thu, 15 May 2025 23:53:07 +0200 Subject: [PATCH 1/3] HSEARCH-5384 Introduce Typed*** versions of DSL factories and scopes --- .../elasticsearch/ElasticsearchExtension.java | 30 +- .../impl/ElasticsearchNamedPredicate.java | 6 +- .../ElasticsearchSearchProjectionFactory.java | 4 +- .../backend/lucene/LuceneExtension.java | 25 +- .../predicate/impl/LuceneNamedPredicate.java | 6 +- .../dsl/LuceneSearchProjectionFactory.java | 4 +- .../src/main/asciidoc/migration/index.adoc | 12 +- .../namedpredicate/SkuIdentifierBinder.java | 4 +- .../MyFieldProjectionBinder.java | 4 +- .../multi/MyFieldProjectionBinder.java | 4 +- .../annotation/MyFieldProjectionBinder.java | 4 +- .../param/string/MyFieldProjectionBinder.java | 4 +- .../simple/MyFieldProjectionBinder.java | 4 +- .../HibernateOrmEntryPointsIT.java | 22 +- .../GettingStartedDefaultAnalysisIT.java | 4 +- .../search/aggregation/AggregationDslIT.java | 4 +- .../search/paths/FieldPathsIT.java | 3 +- .../search/predicate/FieldReferenceIT.java | 14 +- .../search/predicate/PredicateDslIT.java | 2 +- .../search/projection/ProjectionDslIT.java | 4 +- .../documentation/search/sort/SortDslIT.java | 4 +- .../IndexObjectFieldTypeDescriptor.java | 4 +- .../engine/backend/types/ObjectStructure.java | 4 +- .../scope/impl/MappedIndexScopeImpl.java | 18 +- .../mapper/scope/spi/MappedIndexScope.java | 22 +- .../dsl/AggregationFilterStep.java | 4 +- .../dsl/AvgAggregationFieldStep.java | 4 +- .../dsl/AvgAggregationOptionsStep.java | 4 +- .../dsl/CountAggregationFieldStep.java | 4 +- .../dsl/CountAggregationOptionsStep.java | 4 +- .../CountDistinctAggregationFieldStep.java | 4 +- .../CountDistinctAggregationOptionsStep.java | 4 +- .../dsl/ExtendedSearchAggregationFactory.java | 8 +- .../dsl/MaxAggregationFieldStep.java | 4 +- .../dsl/MaxAggregationOptionsStep.java | 4 +- .../dsl/MinAggregationFieldStep.java | 4 +- .../dsl/MinAggregationOptionsStep.java | 4 +- .../dsl/RangeAggregationFieldStep.java | 4 +- .../dsl/RangeAggregationOptionsStep.java | 4 +- .../dsl/RangeAggregationRangeMoreStep.java | 4 +- .../dsl/RangeAggregationRangeStep.java | 4 +- .../dsl/SearchAggregationFactory.java | 24 +- .../SearchAggregationFactoryExtension.java | 9 +- .../dsl/SumAggregationFieldStep.java | 4 +- .../dsl/SumAggregationOptionsStep.java | 4 +- .../dsl/TermsAggregationFieldStep.java | 4 +- .../dsl/TermsAggregationOptionsStep.java | 4 +- .../dsl/TypedSearchAggregationFactory.java | 141 +++++++++ .../dsl/impl/AvgAggregationFieldStepImpl.java | 4 +- .../impl/AvgAggregationOptionsStepImpl.java | 4 +- .../impl/CountAggregationFieldStepImpl.java | 4 +- .../impl/CountAggregationOptionsStepImpl.java | 4 +- ...CountDistinctAggregationFieldStepImpl.java | 4 +- ...untDistinctAggregationOptionsStepImpl.java | 4 +- .../dsl/impl/MaxAggregationFieldStepImpl.java | 4 +- .../impl/MaxAggregationOptionsStepImpl.java | 4 +- .../dsl/impl/MinAggregationFieldStepImpl.java | 4 +- .../impl/MinAggregationOptionsStepImpl.java | 4 +- .../impl/RangeAggregationFieldStepImpl.java | 4 +- .../impl/RangeAggregationRangeStepImpl.java | 4 +- .../dsl/impl/SumAggregationFieldStepImpl.java | 4 +- .../impl/SumAggregationOptionsStepImpl.java | 4 +- .../impl/TermsAggregationFieldStepImpl.java | 4 +- .../impl/TermsAggregationOptionsStepImpl.java | 4 +- .../spi/AbstractSearchAggregationFactory.java | 6 +- .../dsl/spi/SearchAggregationDslContext.java | 6 +- .../definition/PredicateDefinition.java | 4 +- .../PredicateDefinitionContext.java | 6 +- .../dsl/BooleanPredicateOptionsCollector.java | 10 +- .../dsl/ExtendedSearchPredicateFactory.java | 4 +- .../GenericBooleanPredicateClausesStep.java | 8 +- ...ericSimpleBooleanPredicateClausesStep.java | 2 +- .../dsl/KnnPredicateOptionsStep.java | 2 +- .../dsl/MatchAllPredicateOptionsStep.java | 2 +- .../dsl/NestedPredicateClausesCollector.java | 4 +- .../dsl/NestedPredicateClausesStep.java | 2 +- .../dsl/NestedPredicateFieldStep.java | 2 +- .../dsl/NestedPredicateNestStep.java | 4 +- .../dsl/NestedPredicateOptionsStep.java | 2 +- .../predicate/dsl/SearchPredicateFactory.java | 74 ++--- .../dsl/SearchPredicateFactoryExtension.java | 4 +- ...teFactoryExtensionIfSupportedMoreStep.java | 12 +- ...dicateFactoryExtensionIfSupportedStep.java | 8 +- ...impleBooleanPredicateClausesCollector.java | 10 +- .../dsl/TypedSearchPredicateFactory.java | 290 ++++++++++++++++++ .../AbstractBooleanPredicateClausesStep.java | 14 +- ...ractSimpleBooleanPredicateClausesStep.java | 8 +- .../impl/BooleanPredicateClausesStepImpl.java | 4 +- .../dsl/impl/KnnPredicateFieldStepImpl.java | 8 +- .../MatchAllPredicateOptionsStepImpl.java | 10 +- .../impl/NamedPredicateOptionsStepImpl.java | 4 +- .../impl/NestedPredicateClausesStepImpl.java | 4 +- .../impl/NestedPredicateFieldStepImpl.java | 8 +- .../SearchPredicateFactoryExtensionStep.java | 10 +- ...SimpleBooleanPredicateClausesStepImpl.java | 8 +- .../spi/AbstractSearchPredicateFactory.java | 4 +- .../predicate/spi/NamedPredicateBuilder.java | 4 +- ...ValuesBasedPredicateDefinitionContext.java | 8 +- .../definition/ProjectionDefinition.java | 10 +- .../ProjectionDefinitionContext.java | 6 +- .../spi/CompositeProjectionDefinition.java | 6 +- .../spi/ConstantProjectionDefinition.java | 4 +- .../spi/DistanceProjectionDefinition.java | 9 +- .../spi/FieldProjectionDefinition.java | 9 +- .../spi/ObjectProjectionDefinition.java | 8 +- .../dsl/CompositeProjectionValueStep.java | 4 +- .../dsl/ExtendedSearchProjectionFactory.java | 4 +- .../dsl/SearchProjectionFactory.java | 74 +---- .../dsl/SearchProjectionFactoryExtension.java | 4 +- ...onFactoryExtensionIfSupportedMoreStep.java | 12 +- ...ectionFactoryExtensionIfSupportedStep.java | 12 +- .../dsl/TypedSearchProjectionFactory.java | 137 +++++++++ .../CompositeProjectionInnerStepImpl.java | 10 +- .../impl/EntityProjectionOptionsStepImpl.java | 6 +- .../SearchProjectionFactoryExtensionStep.java | 10 +- .../spi/AbstractSearchProjectionFactory.java | 2 +- .../query/dsl/SearchQueryOptionsStep.java | 18 +- .../query/dsl/SearchQuerySelectStep.java | 16 +- .../query/dsl/SearchQueryWhereStep.java | 4 +- .../impl/DefaultSearchQueryOptionsStep.java | 24 +- .../impl/DefaultSearchQuerySelectStep.java | 14 +- ...stractDelegatingSearchQuerySelectStep.java | 14 +- ...bstractExtendedSearchQueryOptionsStep.java | 12 +- .../spi/AbstractSearchQueryOptionsStep.java | 12 +- .../spi/AbstractSearchQuerySelectStep.java | 8 +- .../query/spi/SearchQueryIndexScope.java | 16 +- .../sort/dsl/CompositeSortComponentsStep.java | 22 +- .../dsl/CompositeSortOptionsCollector.java | 28 ++ .../sort/dsl/DistanceSortOptionsStep.java | 4 +- .../sort/dsl/ExtendedSearchSortFactory.java | 8 +- .../sort/dsl/FieldSortOptionsGenericStep.java | 4 +- .../search/sort/dsl/FieldSortOptionsStep.java | 7 +- .../search/sort/dsl/SearchSortFactory.java | 76 +---- .../sort/dsl/SearchSortFactoryExtension.java | 5 +- ...rtFactoryExtensionIfSupportedMoreStep.java | 8 +- ...chSortFactoryExtensionIfSupportedStep.java | 6 +- .../search/sort/dsl/SortFilterStep.java | 4 +- .../engine/search/sort/dsl/SortThenStep.java | 2 +- .../sort/dsl/TypedSearchSortFactory.java | 236 ++++++++++++++ .../AbstractFieldSortOptionsGenericStep.java | 14 +- .../impl/CompositeSortComponentsStepImpl.java | 4 +- .../dsl/impl/DistanceSortOptionsStepImpl.java | 4 +- .../impl/SearchSortFactoryExtensionStep.java | 10 +- .../dsl/spi/AbstractSearchSortFactory.java | 11 +- .../sort/dsl/spi/AbstractSortThenStep.java | 4 +- .../sort/dsl/spi/SearchSortDslContext.java | 16 +- ...ticsearchKnnPredicateMultipleShardsIT.java | 8 +- .../ElasticsearchShardsFailedExceptionIT.java | 4 +- .../ElasticsearchBoolSearchPredicateIT.java | 6 +- .../util/ElasticsearchTckBackendHelper.java | 4 +- .../LuceneIndexReaderCodecLoadingIT.java | 8 +- .../reader/LuceneIndexSegmentFilesIT.java | 8 +- .../search/LuceneBoolSearchPredicateIT.java | 6 +- .../util/LuceneTckBackendHelper.java | 4 +- .../backend/tck/dynamic/FieldTemplateIT.java | 4 +- .../tck/dynamic/ObjectFieldTemplateIT.java | 4 +- .../search/aggregation/AggregationBaseIT.java | 12 +- .../RangeAggregationSpecificsIT.java | 4 +- .../SingleFieldAggregationBaseIT.java | 16 +- ...ggregationTypeCheckingAndConversionIT.java | 10 +- .../bool/BooleanSortAndRangePredicateIT.java | 9 +- ...bstractBaseQueryStringPredicateBaseIT.java | 89 +++--- ...ctBaseQueryStringPredicateSpecificsIT.java | 4 +- .../AbstractPredicateArgumentCheckingIT.java | 6 +- ...stractPredicateConfigurableAnalysisIT.java | 6 +- ...AbstractPredicateFieldInObjectFieldIT.java | 8 +- .../AbstractPredicateFieldScoreIT.java | 26 +- .../AbstractPredicateInObjectFieldIT.java | 4 +- .../AbstractPredicateInvalidFieldIT.java | 10 +- .../AbstractPredicateMultiFieldIT.java | 8 +- .../AbstractPredicateScaleCheckingIT.java | 4 +- .../predicate/AbstractPredicateScoreIT.java | 10 +- .../AbstractPredicateSearchableIT.java | 8 +- .../AbstractPredicateSimpleAnalysisIT.java | 4 +- .../AbstractPredicateSingleFieldIT.java | 6 +- ...tPredicateTypeCheckingAndConversionIT.java | 36 +-- ...ctPredicateTypeCheckingNoConversionIT.java | 6 +- .../AbstractPredicateUnsupportedTypeIT.java | 6 +- .../search/predicate/AndPredicateBaseIT.java | 18 +- .../search/predicate/BoolPredicateBaseIT.java | 10 +- .../predicate/BoolPredicateSpecificsIT.java | 6 +- .../predicate/ExistsPredicateBaseIT.java | 26 +- .../ExistsPredicateObjectsBaseIT.java | 14 +- .../ExistsPredicateObjectsSpecificsIT.java | 10 +- .../search/predicate/KnnPredicateBaseIT.java | 31 +- .../predicate/KnnPredicateSpecificsIT.java | 40 +-- .../predicate/MatchAllPredicateBaseIT.java | 12 +- .../MatchAllPredicateSpecificsIT.java | 6 +- .../predicate/MatchIdPredicateBaseIT.java | 12 +- .../MatchIdPredicateSpecificsIT.java | 4 +- .../MatchNonePredicateSpecificsIT.java | 4 +- .../predicate/MatchPredicateBaseIT.java | 55 ++-- .../predicate/MatchPredicateSpecificsIT.java | 8 +- .../predicate/NamedPredicateBaseIT.java | 14 +- .../predicate/NestedPredicateLegacyIT.java | 4 +- .../predicate/NestedPredicateSpecificsIT.java | 4 +- .../search/predicate/NotPredicateBaseIT.java | 10 +- .../predicate/NotPredicateSpecificsIT.java | 4 +- .../search/predicate/OrPredicateBaseIT.java | 18 +- .../predicate/PhrasePredicateBaseIT.java | 49 +-- .../predicate/PrefixPredicateBaseIT.java | 41 +-- .../predicate/QueryStringPredicateBaseIT.java | 4 +- .../QueryStringPredicateSpecificsIT.java | 4 +- .../predicate/RangePredicateBaseIT.java | 53 ++-- .../predicate/RegexpPredicateBaseIT.java | 41 +-- .../search/predicate/SearchPredicateIT.java | 20 +- .../SimpleQueryStringPredicateBaseIT.java | 4 +- ...SimpleQueryStringPredicateSpecificsIT.java | 4 +- ...atialWithinBoundingBoxPredicateBaseIT.java | 41 +-- .../SpatialWithinCirclePredicateBaseIT.java | 43 +-- .../SpatialWithinPolygonPredicateBaseIT.java | 41 +-- .../predicate/TermsPredicateBaseIT.java | 52 ++-- .../predicate/WildcardPredicateBaseIT.java | 41 +-- .../AbstractCompositeProjectionFromAsIT.java | 27 +- ...ctDistanceProjectionMultiValuedBaseIT.java | 10 +- ...tDistanceProjectionSingleValuedBaseIT.java | 12 +- ...bstractProjectionInObjectProjectionIT.java | 6 +- .../AbstractProjectionInvalidFieldIT.java | 10 +- .../AbstractProjectionProjectableIT.java | 10 +- .../AbstractProjectionUnsupportedTypesIT.java | 4 +- .../projection/CompositeProjectionBaseIT.java | 6 +- .../projection/DistanceProjectionBaseIT.java | 12 +- ...rojectionMultiValuedAccumulatorBaseIT.java | 10 +- .../DistanceProjectionMultiValuedBaseIT.java | 10 +- ...eProjectionParameterMultiValuedBaseIT.java | 10 +- ...ProjectionParameterSingleValuedBaseIT.java | 12 +- .../DistanceProjectionSingleValuedBaseIT.java | 12 +- .../projection/FieldProjectionBaseIT.java | 10 +- .../projection/ObjectProjectionBaseIT.java | 6 +- .../ObjectProjectionSpecificsIT.java | 6 +- .../search/projection/SearchProjectionIT.java | 12 +- .../tck/search/query/SearchQueryBaseIT.java | 12 +- .../sort/AbstractSortInvalidFieldIT.java | 10 +- .../search/sort/AbstractSortSortableIT.java | 10 +- .../sort/AbstractSortUnsupportedTypesIT.java | 4 +- .../tck/search/sort/CompositeSortIT.java | 6 +- .../tck/search/sort/DistanceSortBaseIT.java | 8 +- .../sort/DistanceSortDynamicFieldIT.java | 9 +- .../DistanceSortFilteringSpecificsIT.java | 6 +- .../search/sort/DistanceSortSpecificsIT.java | 6 +- ...stanceSortTypeCheckingAndConversionIT.java | 6 +- .../tck/search/sort/FieldSortBaseIT.java | 8 +- .../search/sort/FieldSortDynamicFieldIT.java | 6 +- .../sort/FieldSortFilteringSpecificsIT.java | 6 +- .../tck/search/sort/FieldSortSpecificsIT.java | 22 +- .../FieldSortTypeCheckingAndConversionIT.java | 8 +- .../backend/tck/search/sort/SearchSortIT.java | 17 +- .../MetricAggregationsTestCase.java | 4 +- .../RangeAggregationDescriptor.java | 12 +- .../TermsAggregationDescriptor.java | 13 +- .../expectations/AggregationScenario.java | 12 +- ...tedSingleFieldAggregationExpectations.java | 4 +- .../testsupport/util/TckBackendHelper.java | 6 +- .../RealBackendDatabaseMultitenancyIT.java | 10 +- .../orm/dynamicmap/DynamicMapBaseIT.java | 4 +- .../mapper/orm/mapping/SearchMappingIT.java | 8 +- .../mapper/orm/search/SearchQueryBaseIT.java | 12 +- ...tomConstructorMappingAnnotationBaseIT.java | 4 +- ...ethodParameterMappingAnnotationBaseIT.java | 4 +- .../AbstractProjectionConstructorIT.java | 4 +- ...jectionConstructorProjectionBindingIT.java | 8 +- ...ectionConstructorDistanceProjectionIT.java | 12 +- .../realbackend/mapping/VectorFieldIT.java | 6 +- .../orm/elasticsearch/AggregationTypesIT.java | 4 +- .../elasticsearch/EntityAsTreeSmokeIT.java | 6 +- .../orm/elasticsearch/FieldTypesIT.java | 4 +- .../orm/elasticsearch/PredicateTypesIT.java | 4 +- .../orm/elasticsearch/ProjectionTypesIT.java | 4 +- .../orm/elasticsearch/SortTypesIT.java | 4 +- .../orm/lucene/AggregationTypesIT.java | 4 +- .../orm/lucene/EntityAsTreeSmokeIT.java | 6 +- .../metamodel/orm/lucene/FieldTypesIT.java | 4 +- .../orm/lucene/PredicateTypesIT.java | 4 +- .../orm/lucene/ProjectionTypesIT.java | 4 +- .../metamodel/orm/lucene/SortTypesIT.java | 4 +- ...ationStandalonePojoSearchScopeAdapter.java | 20 +- .../backend/lucene/LuceneExtension.java | 25 +- .../predicate/impl/LuceneNamedPredicate.java | 6 +- .../dsl/LuceneSearchProjectionFactory.java | 4 +- .../orm/mapping/impl/HibernateOrmMapping.java | 28 +- .../scope/HibernateOrmRootReferenceScope.java | 2 +- .../search/mapper/orm/scope/SearchScope.java | 10 +- .../mapper/orm/scope/SearchScopeProvider.java | 26 +- .../mapper/orm/scope/TypedSearchScope.java | 118 +++++++ ...opeImpl.java => TypedSearchScopeImpl.java} | 22 +- .../mapper/orm/session/SearchSession.java | 22 +- .../session/impl/DelegatingSearchSession.java | 14 +- .../impl/HibernateOrmSearchSession.java | 18 +- ...bernateOrmSearchSessionMappingContext.java | 6 +- .../scope/impl/PojoScopeDelegateImpl.java | 18 +- .../pojo/scope/spi/PojoScopeDelegate.java | 22 +- .../binding/ProjectionBindingContext.java | 10 +- .../builtin/CompositeProjectionBinder.java | 4 +- .../builtin/DistanceProjectionBinder.java | 12 +- .../DocumentReferenceProjectionBinder.java | 6 +- .../builtin/EntityProjectionBinder.java | 6 +- .../EntityReferenceProjectionBinder.java | 6 +- .../builtin/FieldProjectionBinder.java | 8 +- .../builtin/HighlightProjectionBinder.java | 6 +- .../binding/builtin/IdProjectionBinder.java | 6 +- .../builtin/ObjectProjectionBinder.java | 3 +- .../builtin/ScoreProjectionBinder.java | 6 +- .../PojoConstructorProjectionDefinition.java | 4 +- .../pojo/standalone/scope/SearchScope.java | 24 +- .../scope/impl/SearchScopeImpl.java | 16 +- .../writer/impl/MetamodelClassWriter.java | 2 +- .../impl/StubSearchAggregationFactory.java | 6 +- .../common/impl/StubSearchIndexScope.java | 16 +- .../predicate/impl/StubSearchPredicate.java | 4 +- .../sort/dsl/impl/StubSearchSortFactory.java | 6 +- .../mapper/stub/GenericStubMappingScope.java | 16 +- .../search/engine/ProjectionConstants.java | 16 +- .../search/query/dsl/QueryBuilder.java | 18 +- ...tractConnectedMultiFieldsQueryBuilder.java | 6 +- .../query/dsl/impl/BooleanQueryBuilder.java | 4 +- .../query/dsl/impl/ConnectedAllContext.java | 4 +- ...ConnectedMultiFieldsMatchQueryBuilder.java | 4 +- ...onnectedMultiFieldsPhraseQueryBuilder.java | 4 +- ...ConnectedMultiFieldsRangeQueryBuilder.java | 4 +- ...tiFieldsSimpleQueryStringQueryBuilder.java | 4 +- ...nectedMultiFieldsWildcardQueryBuilder.java | 5 +- .../impl/ConnectedSpatialQueryBuilder.java | 4 +- .../query/dsl/impl/DiscreteFacetRequest.java | 4 +- .../query/dsl/impl/FacetingRequestImpl.java | 4 +- .../query/dsl/impl/QueryCustomizer.java | 6 +- .../query/dsl/impl/RangeFacetRequest.java | 4 +- .../query/dsl/sort/impl/SortFieldStates.java | 4 +- .../search/query/engine/impl/HSQueryImpl.java | 6 +- .../scope/spi/V5MigrationSearchScope.java | 16 +- .../org/hibernate/search/FullTextQuery.java | 4 +- .../org/hibernate/search/SearchFactory.java | 10 +- .../search/jpa/FullTextEntityManager.java | 6 +- .../hibernate/search/jpa/FullTextQuery.java | 8 +- .../V5MigrationOrmSearchScopeAdapter.java | 28 +- 334 files changed, 2598 insertions(+), 1735 deletions(-) create mode 100644 engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/TypedSearchAggregationFactory.java create mode 100644 engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/TypedSearchPredicateFactory.java create mode 100644 engine/src/main/java/org/hibernate/search/engine/search/projection/dsl/TypedSearchProjectionFactory.java create mode 100644 engine/src/main/java/org/hibernate/search/engine/search/sort/dsl/CompositeSortOptionsCollector.java create mode 100644 engine/src/main/java/org/hibernate/search/engine/search/sort/dsl/TypedSearchSortFactory.java create mode 100644 mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/TypedSearchScope.java rename mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/{SearchScopeImpl.java => TypedSearchScopeImpl.java} (86%) diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/ElasticsearchExtension.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/ElasticsearchExtension.java index e7b04f5ddf3..e0954fb2385 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/ElasticsearchExtension.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/ElasticsearchExtension.java @@ -63,10 +63,10 @@ public final class ElasticsearchExtension implements SearchQueryDslExtension, R, E, LOS>, SearchQueryExtension, H>, - SearchPredicateFactoryExtension>, - SearchSortFactoryExtension>, - SearchProjectionFactoryExtension, R, E>, - SearchAggregationFactoryExtension>, + SearchPredicateFactoryExtension>, + SearchSortFactoryExtension>, + SearchProjectionFactoryExtension, R, E>, + SearchAggregationFactoryExtension>, IndexFieldTypeFactoryExtension, SchemaExportExtension { @@ -136,10 +136,11 @@ public Optional> extendOptional(SearchQuery origi /** * {@inheritDoc} */ + @SuppressWarnings("unchecked") // TODO: use rescope here instead @Override - public Optional> extendOptional(SearchPredicateFactory original) { - if ( original instanceof ElasticsearchSearchPredicateFactory ) { - return Optional.of( (ElasticsearchSearchPredicateFactory) original ); + public Optional> extendOptional(SearchPredicateFactory original) { + if ( original instanceof ElasticsearchSearchPredicateFactory f ) { + return Optional.of( (ElasticsearchSearchPredicateFactory) f ); } else { return Optional.empty(); @@ -149,11 +150,11 @@ public Optional> extendOptional(SearchPr /** * {@inheritDoc} */ + @SuppressWarnings("unchecked") // TODO: use rescope here instead @Override - public Optional> extendOptional( - SearchSortFactory original) { - if ( original instanceof ElasticsearchSearchSortFactory ) { - return Optional.of( (ElasticsearchSearchSortFactory) original ); + public Optional> extendOptional(SearchSortFactory original) { + if ( original instanceof ElasticsearchSearchSortFactory f ) { + return Optional.of( (ElasticsearchSearchSortFactory) f ); } else { return Optional.empty(); @@ -163,8 +164,9 @@ public Optional> extendOptional( /** * {@inheritDoc} */ + @SuppressWarnings("unchecked") // TODO: use rescope here instead @Override - public Optional> extendOptional(SearchProjectionFactory original) { + public Optional> extendOptional(SearchProjectionFactory original) { if ( original instanceof ElasticsearchSearchProjectionFactory ) { return Optional.of( (ElasticsearchSearchProjectionFactory) original ); } @@ -176,9 +178,9 @@ public Optional> extendOptional(S /** * {@inheritDoc} */ + @SuppressWarnings("unchecked") // TODO: use rescope here instead @Override - public Optional> extendOptional( - SearchAggregationFactory original) { + public Optional> extendOptional(SearchAggregationFactory original) { if ( original instanceof ElasticsearchSearchAggregationFactory ) { return Optional.of( (ElasticsearchSearchAggregationFactory) original ); } diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/predicate/impl/ElasticsearchNamedPredicate.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/predicate/impl/ElasticsearchNamedPredicate.java index b024823eac4..f4b8eb37ea8 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/predicate/impl/ElasticsearchNamedPredicate.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/predicate/impl/ElasticsearchNamedPredicate.java @@ -14,7 +14,7 @@ import org.hibernate.search.engine.search.common.spi.SearchQueryElementFactory; import org.hibernate.search.engine.search.predicate.SearchPredicate; import org.hibernate.search.engine.search.predicate.definition.PredicateDefinition; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.engine.search.predicate.spi.NamedPredicateBuilder; import org.hibernate.search.engine.search.predicate.spi.NamedValuesBasedPredicateDefinitionContext; @@ -71,7 +71,7 @@ private static class Builder extends AbstractBuilder implements NamedPredicateBu private final PredicateDefinition definition; private final String predicateName; private final ElasticsearchSearchIndexCompositeNodeContext field; - private SearchPredicateFactory factory; + private TypedSearchPredicateFactory factory; private final Map params = new LinkedHashMap<>(); Builder(PredicateDefinition definition, String predicateName, @@ -84,7 +84,7 @@ private static class Builder extends AbstractBuilder implements NamedPredicateBu } @Override - public void factory(SearchPredicateFactory factory) { + public void factory(TypedSearchPredicateFactory factory) { this.factory = factory; } diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/projection/dsl/ElasticsearchSearchProjectionFactory.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/projection/dsl/ElasticsearchSearchProjectionFactory.java index f6485bfacbf..c626a0c9711 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/projection/dsl/ElasticsearchSearchProjectionFactory.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/projection/dsl/ElasticsearchSearchProjectionFactory.java @@ -6,7 +6,7 @@ import org.hibernate.search.engine.search.projection.dsl.ExtendedSearchProjectionFactory; import org.hibernate.search.engine.search.projection.dsl.ProjectionFinalStep; -import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory; +import org.hibernate.search.engine.search.projection.dsl.TypedSearchProjectionFactory; import com.google.gson.JsonObject; @@ -16,7 +16,7 @@ * @param Scope root type. * @param The type of entity references. * @param The type of entities. - * @see SearchProjectionFactory + * @see TypedSearchProjectionFactory */ public interface ElasticsearchSearchProjectionFactory extends ExtendedSearchProjectionFactory, R, E> { diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/LuceneExtension.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/LuceneExtension.java index 43a4eb1fecb..b7caf34ddb4 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/LuceneExtension.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/LuceneExtension.java @@ -66,10 +66,10 @@ public final class LuceneExtension implements SearchQueryDslExtension, R, E, LOS>, SearchQueryExtension, H>, - SearchPredicateFactoryExtension>, - SearchSortFactoryExtension>, - SearchProjectionFactoryExtension, R, E>, - SearchAggregationFactoryExtension>, + SearchPredicateFactoryExtension>, + SearchSortFactoryExtension>, + SearchProjectionFactoryExtension, R, E>, + SearchAggregationFactoryExtension>, IndexFieldTypeFactoryExtension, IndexScopeExtension, SchemaExportExtension { @@ -139,10 +139,11 @@ public Optional> extendOptional(SearchQuery original, /** * {@inheritDoc} */ + @SuppressWarnings("unchecked") // TODO: use rescope here instead @Override - public Optional> extendOptional(SearchPredicateFactory original) { - if ( original instanceof LuceneSearchPredicateFactory ) { - return Optional.of( (LuceneSearchPredicateFactory) original ); + public Optional> extendOptional(SearchPredicateFactory original) { + if ( original instanceof LuceneSearchPredicateFactory f ) { + return Optional.of( (LuceneSearchPredicateFactory) f ); } else { return Optional.empty(); @@ -152,9 +153,9 @@ public Optional> extendOptional(SearchPredicate /** * {@inheritDoc} */ + @SuppressWarnings("unchecked") // TODO: use rescope here instead @Override - public Optional> extendOptional( - SearchSortFactory original) { + public Optional> extendOptional(SearchSortFactory original) { if ( original instanceof LuceneSearchSortFactory ) { return Optional.of( (LuceneSearchSortFactory) original ); } @@ -166,8 +167,9 @@ public Optional> extendOptional( /** * {@inheritDoc} */ + @SuppressWarnings("unchecked") // TODO: use rescope here instead @Override - public Optional> extendOptional(SearchProjectionFactory original) { + public Optional> extendOptional(SearchProjectionFactory original) { if ( original instanceof LuceneSearchProjectionFactory ) { return Optional.of( (LuceneSearchProjectionFactory) original ); } @@ -179,8 +181,9 @@ public Optional> extendOptional(SearchPr /** * {@inheritDoc} */ + @SuppressWarnings("unchecked") // TODO: use rescope here instead @Override - public Optional> extendOptional(SearchAggregationFactory original) { + public Optional> extendOptional(SearchAggregationFactory original) { if ( original instanceof LuceneSearchAggregationFactory ) { return Optional.of( (LuceneSearchAggregationFactory) original ); } diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/predicate/impl/LuceneNamedPredicate.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/predicate/impl/LuceneNamedPredicate.java index 8da0453254e..a37b3074ad5 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/predicate/impl/LuceneNamedPredicate.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/predicate/impl/LuceneNamedPredicate.java @@ -14,7 +14,7 @@ import org.hibernate.search.engine.search.common.spi.SearchQueryElementFactory; import org.hibernate.search.engine.search.predicate.SearchPredicate; import org.hibernate.search.engine.search.predicate.definition.PredicateDefinition; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.engine.search.predicate.spi.NamedPredicateBuilder; import org.hibernate.search.engine.search.predicate.spi.NamedValuesBasedPredicateDefinitionContext; @@ -70,7 +70,7 @@ private static class Builder extends AbstractBuilder implements NamedPredicateBu private final PredicateDefinition definition; private final String predicateName; private final LuceneSearchIndexCompositeNodeContext field; - private SearchPredicateFactory factory; + private TypedSearchPredicateFactory factory; private final Map params = new LinkedHashMap<>(); Builder(PredicateDefinition definition, String predicateName, LuceneSearchIndexScope scope, @@ -82,7 +82,7 @@ private static class Builder extends AbstractBuilder implements NamedPredicateBu } @Override - public void factory(SearchPredicateFactory factory) { + public void factory(TypedSearchPredicateFactory factory) { this.factory = factory; } diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/projection/dsl/LuceneSearchProjectionFactory.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/projection/dsl/LuceneSearchProjectionFactory.java index 94d8717e4c0..6e6222c30ac 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/projection/dsl/LuceneSearchProjectionFactory.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/projection/dsl/LuceneSearchProjectionFactory.java @@ -6,7 +6,7 @@ import org.hibernate.search.engine.search.projection.dsl.ExtendedSearchProjectionFactory; import org.hibernate.search.engine.search.projection.dsl.ProjectionFinalStep; -import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory; +import org.hibernate.search.engine.search.projection.dsl.TypedSearchProjectionFactory; import org.hibernate.search.util.common.annotation.Incubating; import org.apache.lucene.document.Document; @@ -18,7 +18,7 @@ * @param Scope root type. * @param The type of entity references. * @param The type of entities. - * @see SearchProjectionFactory + * @see TypedSearchProjectionFactory */ public interface LuceneSearchProjectionFactory extends ExtendedSearchProjectionFactory, R, E> { diff --git a/documentation/src/main/asciidoc/migration/index.adoc b/documentation/src/main/asciidoc/migration/index.adoc index 2578af3fcef..be5420427ab 100644 --- a/documentation/src/main/asciidoc/migration/index.adoc +++ b/documentation/src/main/asciidoc/migration/index.adoc @@ -119,6 +119,8 @@ to be in a more consistent format compared with other logging categories. - Hibernate Search now uses logging categories instead of class names to log messages. 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] to find out what categories are available. +- The method signature changed from `SearchSortFactory#composite(Consumer> elementContributor)` to `SearchSortFactory#composite(Consumer> elementContributor)`. +This change should not affect the end user as collecting of elements still works as it was originally intended to. - With introduction of the field references (`org.hibernate.search.engine.search.reference.pass:[*]`) most of the Search DSL interfaces (`org.hibernate.search.engine.search.pass:[*].dsl.pass:[*]`) got an extra type argument `SR` (scope root type). 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 [source,java,subs="+attributes"] ---- var scope = searchSession.scope( Book.class ); // <1> -SearchScope scope = searchSession.scope( Book.class ); // <2> -SearchScope scope = searchSession.scope( Book.class ); // <3> -SearchScope scope = searchSession.scope( List.of( Book.class, Magazine.class ) ); // <4> -SearchScope scope = searchSession.scope( Book.class ); // <5> -SearchScope scope = searchSession.scope( Book.class ); // <6> +TypedSearchScope scope = searchSession.scope( Book.class ); // <2> +TypedSearchScope scope = searchSession.scope( Book.class ); // <3> +TypedSearchScope scope = searchSession.scope( List.of( Book.class, Magazine.class ) ); // <4> +TypedSearchScope scope = searchSession.scope( Book.class ); // <5> +TypedSearchScope scope = searchSession.scope( Book.class ); // <6> ---- <1> Use `var` if possible. Otherwise, if you need to pass the DSL interfaces to some other methods as parameters, consider one of the following options: diff --git a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/namedpredicate/SkuIdentifierBinder.java b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/namedpredicate/SkuIdentifierBinder.java index da1f2cb468f..a5623545a32 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/namedpredicate/SkuIdentifierBinder.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/namedpredicate/SkuIdentifierBinder.java @@ -12,7 +12,7 @@ import org.hibernate.search.engine.search.predicate.SearchPredicate; import org.hibernate.search.engine.search.predicate.definition.PredicateDefinition; import org.hibernate.search.engine.search.predicate.definition.PredicateDefinitionContext; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.mapper.pojo.bridge.PropertyBridge; import org.hibernate.search.mapper.pojo.bridge.binding.PropertyBindingContext; import org.hibernate.search.mapper.pojo.bridge.mapping.programmatic.PropertyBinder; @@ -89,7 +89,7 @@ public void write(DocumentElement target, String skuId, PropertyBridgeWriteConte private static class SkuIdentifierMatchPredicateDefinition implements PredicateDefinition { // <1> @Override public SearchPredicate create(PredicateDefinitionContext context) { - SearchPredicateFactory f = context.predicate(); // <2> + TypedSearchPredicateFactory f = context.predicate(); // <2> String pattern = context.params().get( "pattern", String.class ); // <3> diff --git a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/constructorparameter/MyFieldProjectionBinder.java b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/constructorparameter/MyFieldProjectionBinder.java index b7ecbd508bc..7ae8c3862d4 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/constructorparameter/MyFieldProjectionBinder.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/constructorparameter/MyFieldProjectionBinder.java @@ -7,7 +7,7 @@ import org.hibernate.search.engine.search.projection.SearchProjection; import org.hibernate.search.engine.search.projection.definition.ProjectionDefinition; import org.hibernate.search.engine.search.projection.definition.ProjectionDefinitionContext; -import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory; +import org.hibernate.search.engine.search.projection.dsl.TypedSearchProjectionFactory; import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBinder; import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBindingContext; @@ -31,7 +31,7 @@ private MyProjectionDefinition(String fieldName) { } @Override - public SearchProjection create(SearchProjectionFactory factory, + public SearchProjection create(TypedSearchProjectionFactory factory, ProjectionDefinitionContext context) { return factory.field( fieldName, String.class ) // <3> .toProjection(); diff --git a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/multi/MyFieldProjectionBinder.java b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/multi/MyFieldProjectionBinder.java index b45d0c8f3ad..34aa18e3d99 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/multi/MyFieldProjectionBinder.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/multi/MyFieldProjectionBinder.java @@ -11,7 +11,7 @@ import org.hibernate.search.engine.search.projection.SearchProjection; import org.hibernate.search.engine.search.projection.definition.ProjectionDefinition; import org.hibernate.search.engine.search.projection.definition.ProjectionDefinitionContext; -import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory; +import org.hibernate.search.engine.search.projection.dsl.TypedSearchProjectionFactory; import org.hibernate.search.mapper.pojo.model.PojoModelValue; import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBinder; import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBindingContext; @@ -32,7 +32,7 @@ public void bind(ProjectionBindingContext context) { private static class MyProjectionDefinition implements ProjectionDefinition> { // <4> @Override - public SearchProjection> create(SearchProjectionFactory factory, + public SearchProjection> create(TypedSearchProjectionFactory factory, ProjectionDefinitionContext context) { return factory.field( "tags", String.class ) .collector( ProjectionCollector.list() ) // <4> diff --git a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/param/annotation/MyFieldProjectionBinder.java b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/param/annotation/MyFieldProjectionBinder.java index 5c3317e60fb..75b991222ca 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/param/annotation/MyFieldProjectionBinder.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/param/annotation/MyFieldProjectionBinder.java @@ -7,7 +7,7 @@ import org.hibernate.search.engine.search.projection.SearchProjection; import org.hibernate.search.engine.search.projection.definition.ProjectionDefinition; import org.hibernate.search.engine.search.projection.definition.ProjectionDefinitionContext; -import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory; +import org.hibernate.search.engine.search.projection.dsl.TypedSearchProjectionFactory; import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBinder; import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBindingContext; @@ -39,7 +39,7 @@ public MyProjectionDefinition(String fieldName) { // <2> } @Override - public SearchProjection create(SearchProjectionFactory factory, + public SearchProjection create(TypedSearchProjectionFactory factory, ProjectionDefinitionContext context) { return factory.field( fieldName, String.class ) // <3> .toProjection(); diff --git a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/param/string/MyFieldProjectionBinder.java b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/param/string/MyFieldProjectionBinder.java index f98e6497247..def528a7913 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/param/string/MyFieldProjectionBinder.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/param/string/MyFieldProjectionBinder.java @@ -7,7 +7,7 @@ import org.hibernate.search.engine.search.projection.SearchProjection; import org.hibernate.search.engine.search.projection.definition.ProjectionDefinition; import org.hibernate.search.engine.search.projection.definition.ProjectionDefinitionContext; -import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory; +import org.hibernate.search.engine.search.projection.dsl.TypedSearchProjectionFactory; import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBinder; import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBindingContext; @@ -32,7 +32,7 @@ public MyProjectionDefinition(String fieldName) { // <2> } @Override - public SearchProjection create(SearchProjectionFactory factory, + public SearchProjection create(TypedSearchProjectionFactory factory, ProjectionDefinitionContext context) { return factory.field( fieldName, String.class ) // <3> .toProjection(); diff --git a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/simple/MyFieldProjectionBinder.java b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/simple/MyFieldProjectionBinder.java index e8b3cfdecc2..b9e9458695b 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/simple/MyFieldProjectionBinder.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/binding/projectionbinder/simple/MyFieldProjectionBinder.java @@ -7,7 +7,7 @@ import org.hibernate.search.engine.search.projection.SearchProjection; import org.hibernate.search.engine.search.projection.definition.ProjectionDefinition; import org.hibernate.search.engine.search.projection.definition.ProjectionDefinitionContext; -import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory; +import org.hibernate.search.engine.search.projection.dsl.TypedSearchProjectionFactory; import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBinder; import org.hibernate.search.mapper.pojo.search.definition.binding.ProjectionBindingContext; @@ -29,7 +29,7 @@ public void bind(ProjectionBindingContext context) { // <2> private static class MyProjectionDefinition // <1> implements ProjectionDefinition { // <2> @Override - public SearchProjection create(SearchProjectionFactory factory, + public SearchProjection create(TypedSearchProjectionFactory factory, ProjectionDefinitionContext context) { return factory.field( "title", String.class ) // <3> .toProjection(); // <4> diff --git a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/entrypoints/HibernateOrmEntryPointsIT.java b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/entrypoints/HibernateOrmEntryPointsIT.java index e1c8df2b9f3..0e595591c13 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/entrypoints/HibernateOrmEntryPointsIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/entrypoints/HibernateOrmEntryPointsIT.java @@ -19,7 +19,7 @@ import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.mapper.orm.entity.SearchIndexedEntity; import org.hibernate.search.mapper.orm.mapping.SearchMapping; -import org.hibernate.search.mapper.orm.scope.SearchScope; +import org.hibernate.search.mapper.orm.scope.TypedSearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.junit.jupiter.api.BeforeEach; @@ -102,13 +102,13 @@ void searchScope_fromSearchMapping() { // end::searchScope-fromSearchMapping[] Search.mapping( theSessionFactory ); // tag::searchScope-fromSearchMapping[] - SearchScope bookScope = searchMapping.scope( Book.class ); // <2> - SearchScope associateAndManagerScope = + TypedSearchScope bookScope = searchMapping.scope( Book.class ); // <2> + TypedSearchScope associateAndManagerScope = searchMapping.scope( Arrays.asList( Associate.class, Manager.class ) ); // <3> - SearchScope personScope = searchMapping.scope( Person.class ); // <4> - SearchScope personSubTypesScope = searchMapping.scope( Person.class, + TypedSearchScope personScope = searchMapping.scope( Person.class ); // <4> + TypedSearchScope personSubTypesScope = searchMapping.scope( Person.class, Arrays.asList( "Manager", "Associate" ) ); // <5> - SearchScope allScope = searchMapping.scope( Object.class ); // <6> + TypedSearchScope allScope = searchMapping.scope( Object.class ); // <6> // end::searchScope-fromSearchMapping[] assertThat( bookScope.includedTypes() ) .extracting( SearchIndexedEntity::jpaName ) @@ -135,13 +135,13 @@ void searchScope_fromSearchSession() { // end::searchScope-fromSearchSession[] Search.session( theSession ); // tag::searchScope-fromSearchSession[] - SearchScope bookScope = searchSession.scope( Book.class ); // <2> - SearchScope associateAndManagerScope = + TypedSearchScope bookScope = searchSession.scope( Book.class ); // <2> + TypedSearchScope associateAndManagerScope = searchSession.scope( Arrays.asList( Associate.class, Manager.class ) ); // <3> - SearchScope personScope = searchSession.scope( Person.class ); // <4> - SearchScope personSubTypesScope = searchSession.scope( Person.class, + TypedSearchScope personScope = searchSession.scope( Person.class ); // <4> + TypedSearchScope personSubTypesScope = searchSession.scope( Person.class, Arrays.asList( "Manager", "Associate" ) ); // <5> - SearchScope allScope = searchSession.scope( Object.class ); // <6> + TypedSearchScope allScope = searchSession.scope( Object.class ); // <6> // end::searchScope-fromSearchSession[] assertThat( bookScope.includedTypes() ) .extracting( SearchIndexedEntity::jpaName ) diff --git a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/gettingstarted/withhsearch/defaultanalysis/GettingStartedDefaultAnalysisIT.java b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/gettingstarted/withhsearch/defaultanalysis/GettingStartedDefaultAnalysisIT.java index 9ac10fc6ffd..884809c2439 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/gettingstarted/withhsearch/defaultanalysis/GettingStartedDefaultAnalysisIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/gettingstarted/withhsearch/defaultanalysis/GettingStartedDefaultAnalysisIT.java @@ -19,7 +19,7 @@ import org.hibernate.search.engine.search.query.SearchResult; import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.mapper.orm.massindexing.MassIndexer; -import org.hibernate.search.mapper.orm.scope.SearchScope; +import org.hibernate.search.mapper.orm.scope.TypedSearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.util.impl.integrationtest.common.TestConfigurationProvider; @@ -99,7 +99,7 @@ void test() { // Not shown: get the entity manager and open a transaction SearchSession searchSession = Search.session( entityManager ); // <1> - SearchScope scope = searchSession.scope( Book.class ); // <2> + TypedSearchScope scope = searchSession.scope( Book.class ); // <2> SearchResult result = searchSession.search( scope ) // <3> .where( scope.predicate().match() // <4> diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/aggregation/AggregationDslIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/aggregation/AggregationDslIT.java index 8b1dcd7b601..452ffd1d842 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/aggregation/AggregationDslIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/aggregation/AggregationDslIT.java @@ -25,7 +25,7 @@ import org.hibernate.search.engine.search.common.ValueModel; import org.hibernate.search.engine.search.query.SearchResult; import org.hibernate.search.mapper.orm.Search; -import org.hibernate.search.mapper.orm.scope.SearchScope; +import org.hibernate.search.mapper.orm.scope.TypedSearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.util.common.data.Range; import org.hibernate.search.util.common.data.RangeBoundInclusion; @@ -85,7 +85,7 @@ void entryPoint() { Search.session( entityManager ); // tag::entryPoint-objects[] - SearchScope scope = searchSession.scope( Book.class ); + TypedSearchScope scope = searchSession.scope( Book.class ); AggregationKey> countsByGenreKey = AggregationKey.of( "countsByGenre" ); diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/paths/FieldPathsIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/paths/FieldPathsIT.java index b8cb092ad01..5aba58750ef 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/paths/FieldPathsIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/paths/FieldPathsIT.java @@ -16,6 +16,7 @@ import org.hibernate.search.documentation.testsupport.DocumentationSetupHelper; import org.hibernate.search.engine.search.predicate.SearchPredicate; import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.mapper.orm.session.SearchSession; @@ -114,7 +115,7 @@ void withRoot() { } // tag::withRoot_method[] - private SearchPredicate matchFirstAndLastName(SearchPredicateFactory f, + private SearchPredicate matchFirstAndLastName(SearchPredicateFactory f, String firstName, String lastName) { return f.and( f.match().field( "firstName" ) // <1> diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/FieldReferenceIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/FieldReferenceIT.java index 2ee82df3b42..100b270dac6 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/FieldReferenceIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/FieldReferenceIT.java @@ -24,7 +24,7 @@ import org.hibernate.search.engine.backend.types.Projectable; import org.hibernate.search.engine.search.common.ValueModel; import org.hibernate.search.engine.search.predicate.dsl.PredicateFinalStep; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.engine.search.reference.object.ObjectFieldReference; import org.hibernate.search.engine.search.reference.predicate.ExistsPredicateFieldReference; import org.hibernate.search.engine.search.reference.predicate.MatchPredicateFieldReference; @@ -32,8 +32,8 @@ import org.hibernate.search.engine.search.reference.projection.FieldProjectionFieldReference; import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.mapper.orm.scope.HibernateOrmRootReferenceScope; -import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.scope.SearchScopeProvider; +import org.hibernate.search.mapper.orm.scope.TypedSearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.FullTextField; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.GenericField; @@ -64,7 +64,7 @@ void setup() { void smoke() { withinSearchSession( searchSession -> { - SearchScope scope = ContainingA__.INDEX.scope( searchSession ); + TypedSearchScope scope = ContainingA__.INDEX.scope( searchSession ); assertThat( searchSession.search( scope ) @@ -96,13 +96,13 @@ void smoke() { public static > PredicateFinalStep utilMethodForPredicate( - SearchPredicateFactory factory, ContainingA_e1_e2_Intersection reference) { + TypedSearchPredicateFactory factory, ContainingA_e1_e2_Intersection reference) { return factory.match().field( reference.a() ).matching( "a" ); } public static PredicateFinalStep utilMethodForPredicateNoProjection( - SearchPredicateFactory factory, ContainingA_e1_e2_e3_Intersection reference) { + TypedSearchPredicateFactory factory, ContainingA_e1_e2_e3_Intersection reference) { return factory.match().field( reference.a() ).matching( "a" ); } @@ -110,7 +110,7 @@ public static PredicateFinalStep utilMethodForPredica void smoke2() { withinSearchSession( searchSession -> { - SearchScope scope = searchSession.scope( List.of( ContainingA.class ) ); + TypedSearchScope scope = searchSession.scope( List.of( ContainingA.class ) ); assertThat( searchSession.search( scope ) @@ -293,7 +293,7 @@ public ContainingA__() { } @Override - public SearchScope scope(SearchScopeProvider scopeProvider) { + public TypedSearchScope scope(SearchScopeProvider scopeProvider) { return scopeProvider.scope( ContainingA.class ); } diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/PredicateDslIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/PredicateDslIT.java index b74f6b0f333..382f16f035b 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/PredicateDslIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/PredicateDslIT.java @@ -118,7 +118,7 @@ void entryPoint() { Search.session( entityManager ); // tag::entryPoint-objects[] - SearchScope scope = searchSession.scope( Book.class ); + SearchScope scope = searchSession.scope( Book.class ); List result = searchSession.search( scope ) .where( scope.predicate().match().field( "title" ) diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/projection/ProjectionDslIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/projection/ProjectionDslIT.java index 1b822f0bc26..a64945fa518 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/projection/ProjectionDslIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/projection/ProjectionDslIT.java @@ -32,7 +32,7 @@ import org.hibernate.search.engine.spatial.DistanceUnit; import org.hibernate.search.engine.spatial.GeoPoint; import org.hibernate.search.mapper.orm.Search; -import org.hibernate.search.mapper.orm.scope.SearchScope; +import org.hibernate.search.mapper.orm.scope.TypedSearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.mapper.pojo.common.spi.PojoEntityReference; import org.hibernate.search.util.common.SearchException; @@ -96,7 +96,7 @@ void entryPoint() { Search.session( entityManager ); // tag::entryPoint-objects[] - SearchScope scope = searchSession.scope( Book.class ); + TypedSearchScope scope = searchSession.scope( Book.class ); List result = searchSession.search( scope ) .select( scope.projection().field( "title", String.class ) diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java index dd974590a56..894650153ed 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java @@ -19,7 +19,7 @@ import org.hibernate.search.engine.search.sort.dsl.SortOrder; import org.hibernate.search.engine.spatial.GeoPoint; import org.hibernate.search.mapper.orm.Search; -import org.hibernate.search.mapper.orm.scope.SearchScope; +import org.hibernate.search.mapper.orm.scope.TypedSearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.junit.jupiter.api.BeforeEach; @@ -74,7 +74,7 @@ void entryPoint() { Search.session( entityManager ); // tag::entryPoint-objects[] - SearchScope scope = searchSession.scope( Book.class ); + TypedSearchScope scope = searchSession.scope( Book.class ); List result = searchSession.search( scope ) .where( scope.predicate().matchAll().toPredicate() ) diff --git a/engine/src/main/java/org/hibernate/search/engine/backend/metamodel/IndexObjectFieldTypeDescriptor.java b/engine/src/main/java/org/hibernate/search/engine/backend/metamodel/IndexObjectFieldTypeDescriptor.java index c65807090d8..788922072c4 100644 --- a/engine/src/main/java/org/hibernate/search/engine/backend/metamodel/IndexObjectFieldTypeDescriptor.java +++ b/engine/src/main/java/org/hibernate/search/engine/backend/metamodel/IndexObjectFieldTypeDescriptor.java @@ -4,7 +4,7 @@ */ package org.hibernate.search.engine.backend.metamodel; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; /** * The type of an "object" field in the index, @@ -16,7 +16,7 @@ public interface IndexObjectFieldTypeDescriptor extends IndexFieldTypeDescriptor /** * @return {@code true} if this object field is represented internally as a nested document, - * enabling features such as the {@link SearchPredicateFactory#nested(String) nested predicate}. + * enabling features such as the {@link TypedSearchPredicateFactory#nested(String) nested predicate}. */ boolean nested(); diff --git a/engine/src/main/java/org/hibernate/search/engine/backend/types/ObjectStructure.java b/engine/src/main/java/org/hibernate/search/engine/backend/types/ObjectStructure.java index 6d32ad3af55..8120ca0d7fd 100644 --- a/engine/src/main/java/org/hibernate/search/engine/backend/types/ObjectStructure.java +++ b/engine/src/main/java/org/hibernate/search/engine/backend/types/ObjectStructure.java @@ -4,7 +4,7 @@ */ package org.hibernate.search.engine.backend.types; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; /** * Defines how the structure of an object field is preserved upon indexing. @@ -70,7 +70,7 @@ public enum ObjectStructure { * but has the advantage of preserving the original structure. * Note however that access to that information when querying * requires special care. - * See in particular the {@link SearchPredicateFactory#nested(String) "nested" predicate}. + * See in particular the {@link TypedSearchPredicateFactory#nested(String) "nested" predicate}. */ NESTED diff --git a/engine/src/main/java/org/hibernate/search/engine/mapper/scope/impl/MappedIndexScopeImpl.java b/engine/src/main/java/org/hibernate/search/engine/mapper/scope/impl/MappedIndexScopeImpl.java index 73666e53d9b..55acdbccdcc 100644 --- a/engine/src/main/java/org/hibernate/search/engine/mapper/scope/impl/MappedIndexScopeImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/mapper/scope/impl/MappedIndexScopeImpl.java @@ -8,14 +8,14 @@ import org.hibernate.search.engine.backend.scope.spi.IndexScope; import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.mapper.scope.spi.MappedIndexScope; -import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactory; +import org.hibernate.search.engine.search.aggregation.dsl.TypedSearchAggregationFactory; import org.hibernate.search.engine.search.highlighter.dsl.SearchHighlighterFactory; import org.hibernate.search.engine.search.loading.spi.SearchLoadingContextBuilder; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; -import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; +import org.hibernate.search.engine.search.projection.dsl.TypedSearchProjectionFactory; import org.hibernate.search.engine.search.query.dsl.SearchQuerySelectStep; import org.hibernate.search.engine.search.query.dsl.impl.DefaultSearchQuerySelectStep; -import org.hibernate.search.engine.search.sort.dsl.SearchSortFactory; +import org.hibernate.search.engine.search.sort.dsl.TypedSearchSortFactory; class MappedIndexScopeImpl implements MappedIndexScope { @@ -31,29 +31,29 @@ public String toString() { } @Override - public SearchQuerySelectStep, ?> search( + public SearchQuerySelectStep, ?> search( BackendSessionContext sessionContext, SearchLoadingContextBuilder loadingContextBuilder) { return new DefaultSearchQuerySelectStep<>( delegate.searchScope(), sessionContext, loadingContextBuilder ); } @Override - public SearchPredicateFactory predicate() { + public TypedSearchPredicateFactory predicate() { return delegate.searchScope().predicateFactory(); } @Override - public SearchSortFactory sort() { + public TypedSearchSortFactory sort() { return delegate.searchScope().sortFactory(); } @Override - public SearchProjectionFactory projection() { + public TypedSearchProjectionFactory projection() { return delegate.searchScope().projectionFactory(); } @Override - public SearchAggregationFactory aggregation() { + public TypedSearchAggregationFactory aggregation() { return delegate.searchScope().aggregationFactory(); } diff --git a/engine/src/main/java/org/hibernate/search/engine/mapper/scope/spi/MappedIndexScope.java b/engine/src/main/java/org/hibernate/search/engine/mapper/scope/spi/MappedIndexScope.java index c9e85aaf2a0..8b3fcc9be93 100644 --- a/engine/src/main/java/org/hibernate/search/engine/mapper/scope/spi/MappedIndexScope.java +++ b/engine/src/main/java/org/hibernate/search/engine/mapper/scope/spi/MappedIndexScope.java @@ -6,22 +6,22 @@ import org.hibernate.search.engine.backend.scope.IndexScopeExtension; import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; -import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactory; +import org.hibernate.search.engine.search.aggregation.dsl.TypedSearchAggregationFactory; import org.hibernate.search.engine.search.highlighter.dsl.SearchHighlighterFactory; import org.hibernate.search.engine.search.loading.spi.SearchLoadingContextBuilder; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; -import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; +import org.hibernate.search.engine.search.projection.dsl.TypedSearchProjectionFactory; import org.hibernate.search.engine.search.query.dsl.SearchQuerySelectStep; -import org.hibernate.search.engine.search.sort.dsl.SearchSortFactory; +import org.hibernate.search.engine.search.sort.dsl.TypedSearchSortFactory; /** * @param Scope root type. * @param The type of entity references, i.e. the type of hits returned by * {@link SearchQuerySelectStep#selectEntityReference() reference queries}, - * or the type of objects returned for {@link SearchProjectionFactory#entityReference() entity reference projections}. + * or the type of objects returned for {@link TypedSearchProjectionFactory#entityReference() entity reference projections}. * @param The type of entities, i.e. the type of hits returned by * {@link SearchQuerySelectStep#selectEntity() entity queries} - * or the type of objects returned for {@link SearchProjectionFactory#entity() entity projections}. + * or the type of objects returned for {@link TypedSearchProjectionFactory#entity() entity projections}. */ public interface MappedIndexScope { @@ -31,22 +31,22 @@ public interface MappedIndexScope { * will be wrong. * In particular, we cannot accept a LoadingContextBuilder with any T. */ - SearchQuerySelectStep, ?> search( + SearchQuerySelectStep, ?> search( BackendSessionContext sessionContext, SearchLoadingContextBuilder loadingContextBuilder); - SearchPredicateFactory predicate(); + TypedSearchPredicateFactory predicate(); - SearchSortFactory sort(); + TypedSearchSortFactory sort(); /* * IMPLEMENTATION NOTE: we *must* return a factory with the same R/E type arguments as this class, * otherwise some casts in EntityProjectionOptionsStepImpl and EntityReferenceProjectionOptionsStepImpl * will be wrong. */ - SearchProjectionFactory projection(); + TypedSearchProjectionFactory projection(); - SearchAggregationFactory aggregation(); + TypedSearchAggregationFactory aggregation(); SearchHighlighterFactory highlighter(); diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/AggregationFilterStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/AggregationFilterStep.java index 09fc32d46a6..66adeadcae5 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/AggregationFilterStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/AggregationFilterStep.java @@ -8,7 +8,7 @@ import org.hibernate.search.engine.search.predicate.SearchPredicate; import org.hibernate.search.engine.search.predicate.dsl.PredicateFinalStep; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; /** * The step in an aggregation definition where a filter can be set @@ -18,7 +18,7 @@ * @param The "self" type (the actual exposed type of this step) * @param The type of factory used to create predicates in {@link #filter(Function)}. */ -public interface AggregationFilterStep> { +public interface AggregationFilterStep> { /** * Filter nested objects from which values will be extracted for this aggregation. diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/AvgAggregationFieldStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/AvgAggregationFieldStep.java index cac31d11066..c85815f9c3f 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/AvgAggregationFieldStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/AvgAggregationFieldStep.java @@ -7,7 +7,7 @@ import java.util.function.Function; import org.hibernate.search.engine.search.common.ValueModel; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.engine.search.reference.aggregation.AvgAggregationFieldReference; import org.hibernate.search.util.common.annotation.Incubating; @@ -18,7 +18,7 @@ * @param The type of factory used to create predicates in {@link AggregationFilterStep#filter(Function)}. */ @Incubating -public interface AvgAggregationFieldStep> { +public interface AvgAggregationFieldStep> { /** * Target the given field in the avg aggregation. diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/AvgAggregationOptionsStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/AvgAggregationOptionsStep.java index bfc1d01cab9..562bf4feaa3 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/AvgAggregationOptionsStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/AvgAggregationOptionsStep.java @@ -6,7 +6,7 @@ import java.util.function.Function; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.annotation.Incubating; /** @@ -21,7 +21,7 @@ public interface AvgAggregationOptionsStep< SR, S extends AvgAggregationOptionsStep, - PDF extends SearchPredicateFactory, + PDF extends TypedSearchPredicateFactory, F> extends AggregationFinalStep, AggregationFilterStep { diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountAggregationFieldStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountAggregationFieldStep.java index dfaef44d371..a2ccf66f9f9 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountAggregationFieldStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountAggregationFieldStep.java @@ -6,7 +6,7 @@ import java.util.function.Function; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.engine.search.reference.aggregation.CountAggregationFieldReference; import org.hibernate.search.util.common.annotation.Incubating; @@ -17,7 +17,7 @@ * @param The type of factory used to create predicates in {@link AggregationFilterStep#filter(Function)}. */ @Incubating -public interface CountAggregationFieldStep> { +public interface CountAggregationFieldStep> { /** * Target the given field in the count aggregation. diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountAggregationOptionsStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountAggregationOptionsStep.java index 9b613d7c239..1e960e720f5 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountAggregationOptionsStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountAggregationOptionsStep.java @@ -6,7 +6,7 @@ import java.util.function.Function; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.annotation.Incubating; /** @@ -20,7 +20,7 @@ public interface CountAggregationOptionsStep< SR, S extends CountAggregationOptionsStep, - PDF extends SearchPredicateFactory> + PDF extends TypedSearchPredicateFactory> extends AggregationFinalStep, AggregationFilterStep { } diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountDistinctAggregationFieldStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountDistinctAggregationFieldStep.java index cb29d9fee3a..ab189dde2b3 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountDistinctAggregationFieldStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountDistinctAggregationFieldStep.java @@ -6,7 +6,7 @@ import java.util.function.Function; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.engine.search.reference.aggregation.CountAggregationFieldReference; import org.hibernate.search.util.common.annotation.Incubating; @@ -17,7 +17,7 @@ * @param The type of factory used to create predicates in {@link AggregationFilterStep#filter(Function)}. */ @Incubating -public interface CountDistinctAggregationFieldStep> { +public interface CountDistinctAggregationFieldStep> { /** * Target the given field in the count distinct aggregation. diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountDistinctAggregationOptionsStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountDistinctAggregationOptionsStep.java index 52744c8be00..2aca785be30 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountDistinctAggregationOptionsStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountDistinctAggregationOptionsStep.java @@ -6,7 +6,7 @@ import java.util.function.Function; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.annotation.Incubating; /** @@ -20,7 +20,7 @@ public interface CountDistinctAggregationOptionsStep< SR, S extends CountDistinctAggregationOptionsStep, - PDF extends SearchPredicateFactory> + PDF extends TypedSearchPredicateFactory> extends AggregationFinalStep, AggregationFilterStep { } diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/ExtendedSearchAggregationFactory.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/ExtendedSearchAggregationFactory.java index 87c1385cffe..35d76c953f1 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/ExtendedSearchAggregationFactory.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/ExtendedSearchAggregationFactory.java @@ -6,10 +6,10 @@ import java.util.function.Function; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; /** - * A base interface for subtypes of {@link SearchAggregationFactory} allowing to + * A base interface for subtypes of {@link TypedSearchAggregationFactory} allowing to * easily override the self type and predicate factory type for all relevant methods. *

* Warning: Generic parameters of this type are subject to change, @@ -22,8 +22,8 @@ public interface ExtendedSearchAggregationFactory< SR, S extends ExtendedSearchAggregationFactory, - PDF extends SearchPredicateFactory> - extends SearchAggregationFactory { + PDF extends TypedSearchPredicateFactory> + extends TypedSearchAggregationFactory { @Override S withRoot(String objectFieldPath); diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MaxAggregationFieldStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MaxAggregationFieldStep.java index 705630ed9cf..3d2c8bf4977 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MaxAggregationFieldStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MaxAggregationFieldStep.java @@ -7,7 +7,7 @@ import java.util.function.Function; import org.hibernate.search.engine.search.common.ValueModel; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.engine.search.reference.aggregation.MaxAggregationFieldReference; import org.hibernate.search.util.common.annotation.Incubating; @@ -18,7 +18,7 @@ * @param The type of factory used to create predicates in {@link AggregationFilterStep#filter(Function)}. */ @Incubating -public interface MaxAggregationFieldStep> { +public interface MaxAggregationFieldStep> { /** * Target the given field in the min aggregation. diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MaxAggregationOptionsStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MaxAggregationOptionsStep.java index 4b6918dd3d2..8da7b0a7690 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MaxAggregationOptionsStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MaxAggregationOptionsStep.java @@ -6,7 +6,7 @@ import java.util.function.Function; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.annotation.Incubating; /** @@ -21,7 +21,7 @@ public interface MaxAggregationOptionsStep< SR, S extends MaxAggregationOptionsStep, - PDF extends SearchPredicateFactory, + PDF extends TypedSearchPredicateFactory, F> extends AggregationFinalStep, AggregationFilterStep { diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MinAggregationFieldStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MinAggregationFieldStep.java index 60063f5432d..22e9a6991fa 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MinAggregationFieldStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MinAggregationFieldStep.java @@ -7,7 +7,7 @@ import java.util.function.Function; import org.hibernate.search.engine.search.common.ValueModel; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.engine.search.reference.aggregation.MinAggregationFieldReference; import org.hibernate.search.util.common.annotation.Incubating; @@ -18,7 +18,7 @@ * @param The type of factory used to create predicates in {@link AggregationFilterStep#filter(Function)}. */ @Incubating -public interface MinAggregationFieldStep> { +public interface MinAggregationFieldStep> { /** * Target the given field in the min aggregation. diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MinAggregationOptionsStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MinAggregationOptionsStep.java index 65a868f3b32..4e3e22c78af 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MinAggregationOptionsStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MinAggregationOptionsStep.java @@ -6,7 +6,7 @@ import java.util.function.Function; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.annotation.Incubating; /** @@ -21,7 +21,7 @@ public interface MinAggregationOptionsStep< SR, S extends MinAggregationOptionsStep, - PDF extends SearchPredicateFactory, + PDF extends TypedSearchPredicateFactory, F> extends AggregationFinalStep, AggregationFilterStep { diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/RangeAggregationFieldStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/RangeAggregationFieldStep.java index 9968ef35d0e..6c4c05a3a63 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/RangeAggregationFieldStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/RangeAggregationFieldStep.java @@ -7,7 +7,7 @@ import java.util.function.Function; import org.hibernate.search.engine.search.common.ValueModel; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.engine.search.reference.aggregation.RangeAggregationFieldReference; /** @@ -16,7 +16,7 @@ * @param Scope root type. * @param The type of factory used to create predicates in {@link AggregationFilterStep#filter(Function)}. */ -public interface RangeAggregationFieldStep> { +public interface RangeAggregationFieldStep> { /** * Target the given field in the range aggregation. diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/RangeAggregationOptionsStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/RangeAggregationOptionsStep.java index 2f6cef5c793..f0a23af7110 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/RangeAggregationOptionsStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/RangeAggregationOptionsStep.java @@ -6,7 +6,7 @@ import java.util.function.Function; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; /** * The final step in a "range" aggregation definition, where optional parameters can be set. @@ -20,7 +20,7 @@ public interface RangeAggregationOptionsStep< SR, S extends RangeAggregationOptionsStep, - PDF extends SearchPredicateFactory, + PDF extends TypedSearchPredicateFactory, F, A> extends AggregationFinalStep, AggregationFilterStep { diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/RangeAggregationRangeMoreStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/RangeAggregationRangeMoreStep.java index 3e04669fedd..a9ec19feda3 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/RangeAggregationRangeMoreStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/RangeAggregationRangeMoreStep.java @@ -7,7 +7,7 @@ import java.util.Map; import java.util.function.Function; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.data.Range; /** @@ -25,7 +25,7 @@ public interface RangeAggregationRangeMoreStep< SR, S extends RangeAggregationRangeMoreStep, N extends RangeAggregationOptionsStep, Long>>, - PDF extends SearchPredicateFactory, + PDF extends TypedSearchPredicateFactory, F> extends RangeAggregationOptionsStep, Long>>, RangeAggregationRangeStep { diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/RangeAggregationRangeStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/RangeAggregationRangeStep.java index 2bfb337ce9b..42e99fc17dd 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/RangeAggregationRangeStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/RangeAggregationRangeStep.java @@ -7,7 +7,7 @@ import java.util.Collection; import java.util.function.Function; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.data.Range; /** @@ -21,7 +21,7 @@ public interface RangeAggregationRangeStep< SR, N extends RangeAggregationRangeMoreStep, - PDF extends SearchPredicateFactory, + PDF extends TypedSearchPredicateFactory, F> { /** diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SearchAggregationFactory.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SearchAggregationFactory.java index 3e7f6f466c0..d2cac72618b 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SearchAggregationFactory.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SearchAggregationFactory.java @@ -36,11 +36,9 @@ * Such reference provides the information on which search capabilities the particular index field possesses, and allows switching between different * {@link org.hibernate.search.engine.search.common.ValueModel value model representations}. * - * @param Scope root type. - * * @author Emmanuel Bernard emmanuel@hibernate.org */ -public interface SearchAggregationFactory { +public interface SearchAggregationFactory { /** * Perform aggregation in range buckets. @@ -55,7 +53,7 @@ public interface SearchAggregationFactory { * * @return The next step. */ - RangeAggregationFieldStep range(); + RangeAggregationFieldStep range(); /** * Perform aggregation in term buckets. @@ -70,7 +68,7 @@ public interface SearchAggregationFactory { * * @return The next step. */ - TermsAggregationFieldStep terms(); + TermsAggregationFieldStep terms(); /** * Perform the sum metric aggregation. @@ -78,7 +76,7 @@ public interface SearchAggregationFactory { * @return The next step. */ @Incubating - SumAggregationFieldStep sum(); + SumAggregationFieldStep sum(); /** * Perform the min metric aggregation. @@ -86,7 +84,7 @@ public interface SearchAggregationFactory { * @return The next step. */ @Incubating - MinAggregationFieldStep min(); + MinAggregationFieldStep min(); /** * Perform the max metric aggregation. @@ -94,7 +92,7 @@ public interface SearchAggregationFactory { * @return The next step. */ @Incubating - MaxAggregationFieldStep max(); + MaxAggregationFieldStep max(); /** * Perform the count metric aggregation. @@ -102,7 +100,7 @@ public interface SearchAggregationFactory { * @return The next step. */ @Incubating - CountAggregationFieldStep count(); + CountAggregationFieldStep count(); /** * Perform the count distinct metric aggregation. @@ -110,7 +108,7 @@ public interface SearchAggregationFactory { * @return The next step. */ @Incubating - CountDistinctAggregationFieldStep countDistinct(); + CountDistinctAggregationFieldStep countDistinct(); /** * Perform the avg metric aggregation. @@ -118,7 +116,7 @@ public interface SearchAggregationFactory { * @return the next step. */ @Incubating - AvgAggregationFieldStep avg(); + AvgAggregationFieldStep avg(); /** * Delegating aggregation that creates the actual aggregation at query create time and provides access to query parameters. @@ -141,7 +139,7 @@ AggregationFinalStep withParameters( * @return The extended factory. * @throws SearchException If the extension cannot be applied (wrong underlying backend, ...). */ - T extension(SearchAggregationFactoryExtension extension); + T extension(SearchAggregationFactoryExtension extension); /** * Create a new aggregation factory whose root for all paths passed to the DSL @@ -153,7 +151,7 @@ AggregationFinalStep withParameters( * @return A new aggregation factory using the given object field as root. */ @Incubating - SearchAggregationFactory withRoot(String objectFieldPath); + SearchAggregationFactory withRoot(String objectFieldPath); /** * @param relativeFieldPath The path to a field, relative to the {@link #withRoot(String) root} of this factory. diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SearchAggregationFactoryExtension.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SearchAggregationFactoryExtension.java index c0efcede5cd..142476a654c 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SearchAggregationFactoryExtension.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SearchAggregationFactoryExtension.java @@ -14,14 +14,13 @@ * In short, users are only expected to get instances of this type from an API ({@code SomeExtension.get()}) * and pass it to another API. * - * @param Scope root type. * @param The type of extended aggregation factories. Should generally extend - * {@link SearchAggregationFactory}. + * {@link TypedSearchAggregationFactory}. * - * @see SearchAggregationFactory#extension(SearchAggregationFactoryExtension) + * @see TypedSearchAggregationFactory#extension(SearchAggregationFactoryExtension) * @see ExtendedSearchAggregationFactory */ -public interface SearchAggregationFactoryExtension { +public interface SearchAggregationFactoryExtension { /** * Attempt to extend a given factory, returning an empty {@link Optional} in case of failure. @@ -32,6 +31,6 @@ public interface SearchAggregationFactoryExtension { * @return An optional containing the extended aggregation factory ({@link T}) in case * of success, or an empty optional otherwise. */ - Optional extendOptional(SearchAggregationFactory original); + Optional extendOptional(SearchAggregationFactory original); } diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SumAggregationFieldStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SumAggregationFieldStep.java index 140eb514abd..9d7e1aba7c5 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SumAggregationFieldStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SumAggregationFieldStep.java @@ -7,7 +7,7 @@ import java.util.function.Function; import org.hibernate.search.engine.search.common.ValueModel; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.engine.search.reference.aggregation.SumAggregationFieldReference; import org.hibernate.search.util.common.annotation.Incubating; @@ -18,7 +18,7 @@ * @param The type of factory used to create predicates in {@link AggregationFilterStep#filter(Function)}. */ @Incubating -public interface SumAggregationFieldStep> { +public interface SumAggregationFieldStep> { /** * Target the given field in the sum aggregation. diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SumAggregationOptionsStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SumAggregationOptionsStep.java index e4a0cb6eba2..6f37fe37d83 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SumAggregationOptionsStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SumAggregationOptionsStep.java @@ -6,7 +6,7 @@ import java.util.function.Function; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.annotation.Incubating; /** @@ -21,7 +21,7 @@ public interface SumAggregationOptionsStep< SR, S extends SumAggregationOptionsStep, - PDF extends SearchPredicateFactory, + PDF extends TypedSearchPredicateFactory, F> extends AggregationFinalStep, AggregationFilterStep { diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/TermsAggregationFieldStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/TermsAggregationFieldStep.java index b3039772faf..6d4ae9fd595 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/TermsAggregationFieldStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/TermsAggregationFieldStep.java @@ -8,7 +8,7 @@ import java.util.function.Function; import org.hibernate.search.engine.search.common.ValueModel; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.engine.search.reference.aggregation.TermsAggregationFieldReference; /** @@ -17,7 +17,7 @@ * @param Scope root type. * @param The type of factory used to create predicates in {@link AggregationFilterStep#filter(Function)}. */ -public interface TermsAggregationFieldStep> { +public interface TermsAggregationFieldStep> { /** * Target the given field in the terms aggregation. diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/TermsAggregationOptionsStep.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/TermsAggregationOptionsStep.java index 22fbf84f1ca..eb899180394 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/TermsAggregationOptionsStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/TermsAggregationOptionsStep.java @@ -6,7 +6,7 @@ import java.util.function.Function; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; /** * The final step in a "terms" aggregation definition, where optional parameters can be set. @@ -19,7 +19,7 @@ public interface TermsAggregationOptionsStep< SR, S extends TermsAggregationOptionsStep, - PDF extends SearchPredicateFactory, + PDF extends TypedSearchPredicateFactory, F, A> extends AggregationFinalStep, AggregationFilterStep { diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/TypedSearchAggregationFactory.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/TypedSearchAggregationFactory.java new file mode 100644 index 00000000000..517e72a8e4d --- /dev/null +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/TypedSearchAggregationFactory.java @@ -0,0 +1,141 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * Copyright Red Hat Inc. and Hibernate Authors + */ +package org.hibernate.search.engine.search.aggregation.dsl; + + +import org.hibernate.search.util.common.annotation.Incubating; + +/** + * A factory for search aggregations. + * + *

Field paths

+ * + * By default, field paths passed to this DSL are interpreted as absolute, + * i.e. relative to the index root. + *

+ * However, a new, "relative" factory can be created with {@link #withRoot(String)}: + * the new factory interprets paths as relative to the object field passed as argument to the method. + *

+ * This can be useful when calling reusable methods that can apply the same aggregation + * on different object fields that have same structure (same sub-fields). + *

+ * Such a factory can also transform relative paths into absolute paths using {@link #toAbsolutePath(String)}; + * this can be useful for native aggregations in particular. + * + *

Field references

+ * + * A {@link org.hibernate.search.engine.search.reference field reference} is always represented by the absolute field path and, + * if applicable, i.e. when a field reference is typed, a combination of the {@link org.hibernate.search.engine.search.common.ValueModel} and the type. + *

+ * Field references are usually accessed from the generated Hibernate Search's static metamodel classes that describe the index structure. + * Such reference provides the information on which search capabilities the particular index field possesses, and allows switching between different + * {@link org.hibernate.search.engine.search.common.ValueModel value model representations}. + * + * @param Scope root type. + * + * @author Emmanuel Bernard emmanuel@hibernate.org + */ +public interface TypedSearchAggregationFactory extends SearchAggregationFactory { + + /** + * Perform aggregation in range buckets. + *

+ * Given a field and one or more ranges of values, + * this aggregation creates one bucket per range, + * and puts in each bucket every document for which + * the given field has a value that falls into the corresponding range. + *

+ * For each bucket, the document count is computed, + * or more complex metrics or sub-aggregations for backends that support it. + * + * @return The next step. + */ + @Override + RangeAggregationFieldStep range(); + + /** + * Perform aggregation in term buckets. + *

+ * Given a field, + * this aggregation creates one bucket per term of that field in the index, + * and puts in each bucket every document for which + * the given field matches the corresponding term. + *

+ * For each bucket, the document count is computed, + * or more complex metrics or sub-aggregations for backends that support it. + * + * @return The next step. + */ + @Override + TermsAggregationFieldStep terms(); + + /** + * Perform the sum metric aggregation. + * + * @return The next step. + */ + @Override + @Incubating + SumAggregationFieldStep sum(); + + /** + * Perform the min metric aggregation. + * + * @return The next step. + */ + @Override + @Incubating + MinAggregationFieldStep min(); + + /** + * Perform the max metric aggregation. + * + * @return The next step. + */ + @Override + @Incubating + MaxAggregationFieldStep max(); + + /** + * Perform the count metric aggregation. + * + * @return The next step. + */ + @Override + @Incubating + CountAggregationFieldStep count(); + + /** + * Perform the count distinct metric aggregation. + * + * @return The next step. + */ + @Override + @Incubating + CountDistinctAggregationFieldStep countDistinct(); + + /** + * Perform the avg metric aggregation. + * + * @return the next step. + */ + @Override + @Incubating + AvgAggregationFieldStep avg(); + + /** + * Create a new aggregation factory whose root for all paths passed to the DSL + * will be the given object field. + *

+ * See here for more information. + * + * @param objectFieldPath The path from the current root to an object field that will become the new root. + * @return A new aggregation factory using the given object field as root. + */ + @Override + @Incubating + TypedSearchAggregationFactory withRoot(String objectFieldPath); + +} diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/AvgAggregationFieldStepImpl.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/AvgAggregationFieldStepImpl.java index e6fef4958f9..757d27634f0 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/AvgAggregationFieldStepImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/AvgAggregationFieldStepImpl.java @@ -10,10 +10,10 @@ import org.hibernate.search.engine.search.aggregation.spi.AggregationTypeKeys; import org.hibernate.search.engine.search.aggregation.spi.FieldMetricAggregationBuilder; import org.hibernate.search.engine.search.common.ValueModel; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.impl.Contracts; -public class AvgAggregationFieldStepImpl> +public class AvgAggregationFieldStepImpl> implements AvgAggregationFieldStep { private final SearchAggregationDslContext dslContext; diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/AvgAggregationOptionsStepImpl.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/AvgAggregationOptionsStepImpl.java index f3f0107bc70..4daba642002 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/AvgAggregationOptionsStepImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/AvgAggregationOptionsStepImpl.java @@ -12,9 +12,9 @@ import org.hibernate.search.engine.search.aggregation.spi.FieldMetricAggregationBuilder; import org.hibernate.search.engine.search.predicate.SearchPredicate; import org.hibernate.search.engine.search.predicate.dsl.PredicateFinalStep; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; -class AvgAggregationOptionsStepImpl, F> +class AvgAggregationOptionsStepImpl, F> implements AvgAggregationOptionsStep, PDF, F> { private final FieldMetricAggregationBuilder builder; private final SearchAggregationDslContext dslContext; diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/CountAggregationFieldStepImpl.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/CountAggregationFieldStepImpl.java index 40ae2f5d268..4a2ee3c98dd 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/CountAggregationFieldStepImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/CountAggregationFieldStepImpl.java @@ -9,9 +9,9 @@ import org.hibernate.search.engine.search.aggregation.dsl.spi.SearchAggregationDslContext; import org.hibernate.search.engine.search.aggregation.spi.AggregationTypeKeys; import org.hibernate.search.engine.search.aggregation.spi.SearchFilterableAggregationBuilder; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; -public class CountAggregationFieldStepImpl> +public class CountAggregationFieldStepImpl> implements CountAggregationFieldStep { private final SearchAggregationDslContext dslContext; diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/CountAggregationOptionsStepImpl.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/CountAggregationOptionsStepImpl.java index 17c8d374869..58cb8bad195 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/CountAggregationOptionsStepImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/CountAggregationOptionsStepImpl.java @@ -12,9 +12,9 @@ import org.hibernate.search.engine.search.aggregation.spi.SearchFilterableAggregationBuilder; import org.hibernate.search.engine.search.predicate.SearchPredicate; import org.hibernate.search.engine.search.predicate.dsl.PredicateFinalStep; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; -class CountAggregationOptionsStepImpl> +class CountAggregationOptionsStepImpl> implements CountAggregationOptionsStep, PDF> { private final SearchFilterableAggregationBuilder builder; private final SearchAggregationDslContext dslContext; diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/CountDistinctAggregationFieldStepImpl.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/CountDistinctAggregationFieldStepImpl.java index 239db8baf53..fd67730f29f 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/CountDistinctAggregationFieldStepImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/CountDistinctAggregationFieldStepImpl.java @@ -9,9 +9,9 @@ import org.hibernate.search.engine.search.aggregation.dsl.spi.SearchAggregationDslContext; import org.hibernate.search.engine.search.aggregation.spi.AggregationTypeKeys; import org.hibernate.search.engine.search.aggregation.spi.SearchFilterableAggregationBuilder; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; -public class CountDistinctAggregationFieldStepImpl> +public class CountDistinctAggregationFieldStepImpl> implements CountDistinctAggregationFieldStep { private final SearchAggregationDslContext dslContext; diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/CountDistinctAggregationOptionsStepImpl.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/CountDistinctAggregationOptionsStepImpl.java index 9bc23a51cb2..293349b2e5a 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/CountDistinctAggregationOptionsStepImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/CountDistinctAggregationOptionsStepImpl.java @@ -12,9 +12,9 @@ import org.hibernate.search.engine.search.aggregation.spi.SearchFilterableAggregationBuilder; import org.hibernate.search.engine.search.predicate.SearchPredicate; import org.hibernate.search.engine.search.predicate.dsl.PredicateFinalStep; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; -class CountDistinctAggregationOptionsStepImpl> +class CountDistinctAggregationOptionsStepImpl> implements CountDistinctAggregationOptionsStep, PDF> { private final SearchFilterableAggregationBuilder builder; private final SearchAggregationDslContext dslContext; diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/MaxAggregationFieldStepImpl.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/MaxAggregationFieldStepImpl.java index fc960180ff6..787f624b00e 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/MaxAggregationFieldStepImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/MaxAggregationFieldStepImpl.java @@ -10,10 +10,10 @@ import org.hibernate.search.engine.search.aggregation.spi.AggregationTypeKeys; import org.hibernate.search.engine.search.aggregation.spi.FieldMetricAggregationBuilder; import org.hibernate.search.engine.search.common.ValueModel; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.impl.Contracts; -public class MaxAggregationFieldStepImpl> +public class MaxAggregationFieldStepImpl> implements MaxAggregationFieldStep { private final SearchAggregationDslContext dslContext; diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/MaxAggregationOptionsStepImpl.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/MaxAggregationOptionsStepImpl.java index f1b35a74b97..94be31e94fe 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/MaxAggregationOptionsStepImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/MaxAggregationOptionsStepImpl.java @@ -12,9 +12,9 @@ import org.hibernate.search.engine.search.aggregation.spi.FieldMetricAggregationBuilder; import org.hibernate.search.engine.search.predicate.SearchPredicate; import org.hibernate.search.engine.search.predicate.dsl.PredicateFinalStep; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; -class MaxAggregationOptionsStepImpl, F> +class MaxAggregationOptionsStepImpl, F> implements MaxAggregationOptionsStep, PDF, F> { private final FieldMetricAggregationBuilder builder; private final SearchAggregationDslContext dslContext; diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/MinAggregationFieldStepImpl.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/MinAggregationFieldStepImpl.java index edd21456f76..45e4503e5ec 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/MinAggregationFieldStepImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/MinAggregationFieldStepImpl.java @@ -10,10 +10,10 @@ import org.hibernate.search.engine.search.aggregation.spi.AggregationTypeKeys; import org.hibernate.search.engine.search.aggregation.spi.FieldMetricAggregationBuilder; import org.hibernate.search.engine.search.common.ValueModel; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.impl.Contracts; -public class MinAggregationFieldStepImpl> +public class MinAggregationFieldStepImpl> implements MinAggregationFieldStep { private final SearchAggregationDslContext dslContext; diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/MinAggregationOptionsStepImpl.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/MinAggregationOptionsStepImpl.java index bcbd2a66241..6cc90fecb00 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/MinAggregationOptionsStepImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/MinAggregationOptionsStepImpl.java @@ -12,9 +12,9 @@ import org.hibernate.search.engine.search.aggregation.spi.FieldMetricAggregationBuilder; import org.hibernate.search.engine.search.predicate.SearchPredicate; import org.hibernate.search.engine.search.predicate.dsl.PredicateFinalStep; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; -class MinAggregationOptionsStepImpl, F> +class MinAggregationOptionsStepImpl, F> implements MinAggregationOptionsStep, PDF, F> { private final FieldMetricAggregationBuilder builder; private final SearchAggregationDslContext dslContext; diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/RangeAggregationFieldStepImpl.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/RangeAggregationFieldStepImpl.java index f97b7f07088..dcfb149186d 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/RangeAggregationFieldStepImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/RangeAggregationFieldStepImpl.java @@ -10,10 +10,10 @@ import org.hibernate.search.engine.search.aggregation.spi.AggregationTypeKeys; import org.hibernate.search.engine.search.aggregation.spi.RangeAggregationBuilder; import org.hibernate.search.engine.search.common.ValueModel; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.impl.Contracts; -public class RangeAggregationFieldStepImpl> +public class RangeAggregationFieldStepImpl> implements RangeAggregationFieldStep { private final SearchAggregationDslContext dslContext; diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/RangeAggregationRangeStepImpl.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/RangeAggregationRangeStepImpl.java index 454a6c00ac2..ff5e3c575f3 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/RangeAggregationRangeStepImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/RangeAggregationRangeStepImpl.java @@ -15,11 +15,11 @@ import org.hibernate.search.engine.search.aggregation.spi.RangeAggregationBuilder; import org.hibernate.search.engine.search.predicate.SearchPredicate; import org.hibernate.search.engine.search.predicate.dsl.PredicateFinalStep; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.data.Range; import org.hibernate.search.util.common.impl.Contracts; -class RangeAggregationRangeStepImpl, F> +class RangeAggregationRangeStepImpl, F> implements RangeAggregationRangeStep, PDF, F>, RangeAggregationRangeMoreStep, diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/SumAggregationFieldStepImpl.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/SumAggregationFieldStepImpl.java index 18aa188b708..d1a2e04387f 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/SumAggregationFieldStepImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/SumAggregationFieldStepImpl.java @@ -10,10 +10,10 @@ import org.hibernate.search.engine.search.aggregation.spi.AggregationTypeKeys; import org.hibernate.search.engine.search.aggregation.spi.FieldMetricAggregationBuilder; import org.hibernate.search.engine.search.common.ValueModel; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.impl.Contracts; -public class SumAggregationFieldStepImpl> +public class SumAggregationFieldStepImpl> implements SumAggregationFieldStep { private final SearchAggregationDslContext dslContext; diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/SumAggregationOptionsStepImpl.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/SumAggregationOptionsStepImpl.java index 7c3ef7bca3e..ccdbf14d258 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/SumAggregationOptionsStepImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/SumAggregationOptionsStepImpl.java @@ -12,9 +12,9 @@ import org.hibernate.search.engine.search.aggregation.spi.FieldMetricAggregationBuilder; import org.hibernate.search.engine.search.predicate.SearchPredicate; import org.hibernate.search.engine.search.predicate.dsl.PredicateFinalStep; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; -class SumAggregationOptionsStepImpl, F> +class SumAggregationOptionsStepImpl, F> implements SumAggregationOptionsStep, PDF, F> { private final FieldMetricAggregationBuilder builder; private final SearchAggregationDslContext dslContext; diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/TermsAggregationFieldStepImpl.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/TermsAggregationFieldStepImpl.java index a0d735b13fa..6f4d7ac29af 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/TermsAggregationFieldStepImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/TermsAggregationFieldStepImpl.java @@ -12,10 +12,10 @@ import org.hibernate.search.engine.search.aggregation.spi.AggregationTypeKeys; import org.hibernate.search.engine.search.aggregation.spi.TermsAggregationBuilder; import org.hibernate.search.engine.search.common.ValueModel; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.impl.Contracts; -public class TermsAggregationFieldStepImpl> +public class TermsAggregationFieldStepImpl> implements TermsAggregationFieldStep { private final SearchAggregationDslContext dslContext; diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/TermsAggregationOptionsStepImpl.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/TermsAggregationOptionsStepImpl.java index e0ddea57e2f..687a58cb583 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/TermsAggregationOptionsStepImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/impl/TermsAggregationOptionsStepImpl.java @@ -13,10 +13,10 @@ import org.hibernate.search.engine.search.aggregation.spi.TermsAggregationBuilder; import org.hibernate.search.engine.search.predicate.SearchPredicate; import org.hibernate.search.engine.search.predicate.dsl.PredicateFinalStep; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.impl.Contracts; -class TermsAggregationOptionsStepImpl, F> +class TermsAggregationOptionsStepImpl, F> implements TermsAggregationOptionsStep, PDF, F, Map> { private final TermsAggregationBuilder builder; private final SearchAggregationDslContext dslContext; diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/spi/AbstractSearchAggregationFactory.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/spi/AbstractSearchAggregationFactory.java index ad14244c2f6..61c1d352c07 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/spi/AbstractSearchAggregationFactory.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/spi/AbstractSearchAggregationFactory.java @@ -29,13 +29,13 @@ import org.hibernate.search.engine.search.aggregation.dsl.impl.WithParametersAggregationFinalStep; import org.hibernate.search.engine.search.aggregation.spi.SearchAggregationIndexScope; import org.hibernate.search.engine.search.common.NamedValues; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; public abstract class AbstractSearchAggregationFactory< SR, S extends ExtendedSearchAggregationFactory, SC extends SearchAggregationIndexScope, - PDF extends SearchPredicateFactory> + PDF extends TypedSearchPredicateFactory> implements ExtendedSearchAggregationFactory { protected final SearchAggregationDslContext dslContext; @@ -90,7 +90,7 @@ public AggregationFinalStep withParameters( } @Override - public T extension(SearchAggregationFactoryExtension extension) { + public T extension(SearchAggregationFactoryExtension extension) { return DslExtensionState.returnIfSupported( extension, extension.extendOptional( this ) ); } diff --git a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/spi/SearchAggregationDslContext.java b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/spi/SearchAggregationDslContext.java index aaff67aded2..e969ad1e87c 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/spi/SearchAggregationDslContext.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/spi/SearchAggregationDslContext.java @@ -7,7 +7,7 @@ import java.util.function.Function; import org.hibernate.search.engine.search.aggregation.spi.SearchAggregationIndexScope; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.engine.search.sort.dsl.FieldSortOptionsStep; /** @@ -21,11 +21,11 @@ public class SearchAggregationDslContext< SR, SC extends SearchAggregationIndexScope, - PDF extends SearchPredicateFactory> { + PDF extends TypedSearchPredicateFactory> { public static < SR, SC extends SearchAggregationIndexScope, - PDF extends SearchPredicateFactory> SearchAggregationDslContext root(SC scope, + PDF extends TypedSearchPredicateFactory> SearchAggregationDslContext root(SC scope, PDF predicateFactory) { return new SearchAggregationDslContext<>( scope, predicateFactory ); } diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/definition/PredicateDefinition.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/definition/PredicateDefinition.java index 421aee77969..47455b72caf 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/definition/PredicateDefinition.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/definition/PredicateDefinition.java @@ -5,7 +5,7 @@ package org.hibernate.search.engine.search.predicate.definition; import org.hibernate.search.engine.search.predicate.SearchPredicate; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.annotation.Incubating; /** @@ -25,7 +25,7 @@ public interface PredicateDefinition { /** * Creates a predicate. - * @param context The context, exposing in particular a {@link SearchPredicateFactory}. + * @param context The context, exposing in particular a {@link TypedSearchPredicateFactory}. * @return The created {@link SearchPredicate}. */ SearchPredicate create(PredicateDefinitionContext context); diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/definition/PredicateDefinitionContext.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/definition/PredicateDefinitionContext.java index 2992f94043d..9f7400a6869 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/definition/PredicateDefinitionContext.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/definition/PredicateDefinitionContext.java @@ -8,7 +8,7 @@ import org.hibernate.search.engine.search.common.NamedValues; import org.hibernate.search.engine.search.predicate.dsl.NamedPredicateOptionsStep; -import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; +import org.hibernate.search.engine.search.predicate.dsl.TypedSearchPredicateFactory; import org.hibernate.search.util.common.SearchException; import org.hibernate.search.util.common.annotation.Incubating; @@ -26,9 +26,9 @@ public interface PredicateDefinitionContext { * this factory expects field paths to be provided relative to that same object field. * This factory is only valid in the present context and must not be used after * {@link PredicateDefinition#create(PredicateDefinitionContext)} returns. - * @see SearchPredicateFactory + * @see TypedSearchPredicateFactory */ - SearchPredicateFactory predicate(); + TypedSearchPredicateFactory predicate(); /** * @param name The name of the parameter. diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/BooleanPredicateOptionsCollector.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/BooleanPredicateOptionsCollector.java index 1f2c3c00031..78a9a476443 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/BooleanPredicateOptionsCollector.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/BooleanPredicateOptionsCollector.java @@ -10,7 +10,7 @@ import org.hibernate.search.engine.search.predicate.SearchPredicate; /** - * An object where the clauses and options of a {@link SearchPredicateFactory#bool() boolean predicate} can be set. + * An object where the clauses and options of a {@link TypedSearchPredicateFactory#bool() boolean predicate} can be set. *

* Different types of clauses have different effects, see below. * @@ -167,7 +167,7 @@ default S filter(PredicateFinalStep dslFinalStep) { * Should generally be a lambda expression. * @return {@code this}, for method chaining. */ - S must(Function, ? extends PredicateFinalStep> clauseContributor); + S must(Function, ? extends PredicateFinalStep> clauseContributor); /** * Add a "must not" clause to be defined by the given function. @@ -179,7 +179,7 @@ default S filter(PredicateFinalStep dslFinalStep) { * Should generally be a lambda expression. * @return {@code this}, for method chaining. */ - S mustNot(Function, ? extends PredicateFinalStep> clauseContributor); + S mustNot(Function, ? extends PredicateFinalStep> clauseContributor); /** * Add a "should" clause to be defined by the given function. @@ -191,7 +191,7 @@ default S filter(PredicateFinalStep dslFinalStep) { * Should generally be a lambda expression. * @return {@code this}, for method chaining. */ - S should(Function, ? extends PredicateFinalStep> clauseContributor); + S should(Function, ? extends PredicateFinalStep> clauseContributor); /** * Add a "filter" clause to be defined by the given function. @@ -203,7 +203,7 @@ default S filter(PredicateFinalStep dslFinalStep) { * Should generally be a lambda expression. * @return {@code this}, for method chaining. */ - S filter(Function, ? extends PredicateFinalStep> clauseContributor); + S filter(Function, ? extends PredicateFinalStep> clauseContributor); /** * Checks if this predicate contains at least one clause. diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/ExtendedSearchPredicateFactory.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/ExtendedSearchPredicateFactory.java index 111ee223fc6..cbe87594957 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/ExtendedSearchPredicateFactory.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/ExtendedSearchPredicateFactory.java @@ -5,7 +5,7 @@ package org.hibernate.search.engine.search.predicate.dsl; /** - * A base interface for subtypes of {@link SearchPredicateFactory} allowing to + * A base interface for subtypes of {@link TypedSearchPredicateFactory} allowing to * easily override the self type for all relevant methods. *

* Warning: Generic parameters of this type are subject to change, @@ -15,7 +15,7 @@ * @param The self type, i.e. the exposed type of this factory. */ public interface ExtendedSearchPredicateFactory> - extends SearchPredicateFactory { + extends TypedSearchPredicateFactory { @Override S withRoot(String objectFieldPath); diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/GenericBooleanPredicateClausesStep.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/GenericBooleanPredicateClausesStep.java index e7f6a93e6ee..3b089058346 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/GenericBooleanPredicateClausesStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/GenericBooleanPredicateClausesStep.java @@ -62,16 +62,16 @@ default S filter(PredicateFinalStep dslFinalStep) { } @Override - S must(Function, ? extends PredicateFinalStep> clauseContributor); + S must(Function, ? extends PredicateFinalStep> clauseContributor); @Override - S mustNot(Function, ? extends PredicateFinalStep> clauseContributor); + S mustNot(Function, ? extends PredicateFinalStep> clauseContributor); @Override - S should(Function, ? extends PredicateFinalStep> clauseContributor); + S should(Function, ? extends PredicateFinalStep> clauseContributor); @Override - S filter(Function, ? extends PredicateFinalStep> clauseContributor); + S filter(Function, ? extends PredicateFinalStep> clauseContributor); @Override default S minimumShouldMatchNumber(int matchingClausesNumber) { diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/GenericSimpleBooleanPredicateClausesStep.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/GenericSimpleBooleanPredicateClausesStep.java index 4255dd5e7dc..0da8349e8e2 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/GenericSimpleBooleanPredicateClausesStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/GenericSimpleBooleanPredicateClausesStep.java @@ -33,7 +33,7 @@ default S add(PredicateFinalStep searchPredicate) { S add(SearchPredicate searchPredicate); @Override - S add(Function, ? extends PredicateFinalStep> clauseContributor); + S add(Function, ? extends PredicateFinalStep> clauseContributor); @Override S with(Consumer contributor); diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/KnnPredicateOptionsStep.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/KnnPredicateOptionsStep.java index 549672973e0..4c1eef1a5c9 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/KnnPredicateOptionsStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/KnnPredicateOptionsStep.java @@ -22,7 +22,7 @@ default KnnPredicateOptionsStep filter(PredicateFinalStep searchPredicate) { } KnnPredicateOptionsStep filter( - Function, ? extends PredicateFinalStep> clauseContributor); + Function, ? extends PredicateFinalStep> clauseContributor); /** * @param similarity A similarity limit: documents with vectors distance to which, according to the configured similarity function, diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/MatchAllPredicateOptionsStep.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/MatchAllPredicateOptionsStep.java index fa672272cf5..ee5144b93da 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/MatchAllPredicateOptionsStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/MatchAllPredicateOptionsStep.java @@ -61,6 +61,6 @@ default S except(PredicateFinalStep dslFinalStep) { * Should generally be a lambda expression. * @return {@code this}, for method chaining. */ - S except(Function, ? extends PredicateFinalStep> clauseContributor); + S except(Function, ? extends PredicateFinalStep> clauseContributor); } diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateClausesCollector.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateClausesCollector.java index 03912dc4ec0..d91d0ea5bf7 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateClausesCollector.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateClausesCollector.java @@ -6,10 +6,10 @@ /** * An object where the clauses - * of a {@link SearchPredicateFactory#nested(String) nested predicate} can be set. + * of a {@link TypedSearchPredicateFactory#nested(String) nested predicate} can be set. *

* The resulting nested predicate must match all inner clauses, - * similarly to an {@link SearchPredicateFactory#and() "and" predicate}. + * similarly to an {@link TypedSearchPredicateFactory#and() "and" predicate}. * * @param Scope root type. */ diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateClausesStep.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateClausesStep.java index af61eb2b7de..4e66dee9b5c 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateClausesStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateClausesStep.java @@ -9,7 +9,7 @@ * clauses can be added. *

* The resulting nested predicate must match all inner clauses, - * similarly to an {@link SearchPredicateFactory#and() "and" predicate}. + * similarly to an {@link TypedSearchPredicateFactory#and() "and" predicate}. * * @param Scope root type. * @param The "self" type (the actual exposed type of this step). diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateFieldStep.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateFieldStep.java index cda439347be..914e48bed10 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateFieldStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateFieldStep.java @@ -12,7 +12,7 @@ * * @param Scope root type. * @param The type of the next step. - * @deprecated Use {@link SearchPredicateFactory#nested(String)} instead. + * @deprecated Use {@link TypedSearchPredicateFactory#nested(String)} instead. */ @Deprecated(since = "6.2") public interface NestedPredicateFieldStep> { diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateNestStep.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateNestStep.java index 42d5927f5e8..4184e058db4 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateNestStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateNestStep.java @@ -12,7 +12,7 @@ * The step in a "nested" predicate definition where the predicate to nest can be set. * * @param The type of the next step. - * @deprecated Use {@link SearchPredicateFactory#nested(String)} instead. + * @deprecated Use {@link TypedSearchPredicateFactory#nested(String)} instead. */ @Deprecated(since = "6.2") public interface NestedPredicateNestStep> { @@ -65,6 +65,6 @@ default N nest(PredicateFinalStep dslFinalStep) { * Should generally be a lambda expression. * @return The next step. */ - N nest(Function, ? extends PredicateFinalStep> predicateContributor); + N nest(Function, ? extends PredicateFinalStep> predicateContributor); } diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateOptionsStep.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateOptionsStep.java index 565b1bfec00..ca4881f67b0 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateOptionsStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/NestedPredicateOptionsStep.java @@ -8,7 +8,7 @@ * The final step in an "nested" predicate definition, where optional parameters can be set. * * @param The "self" type (the actual exposed type of this step). - * @deprecated Use {@link SearchPredicateFactory#nested(String)} instead. + * @deprecated Use {@link TypedSearchPredicateFactory#nested(String)} instead. */ @Deprecated(since = "6.2") public interface NestedPredicateOptionsStep> diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SearchPredicateFactory.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SearchPredicateFactory.java index 2e29a4c24c5..2a83058463b 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SearchPredicateFactory.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SearchPredicateFactory.java @@ -11,7 +11,6 @@ import org.hibernate.search.engine.search.common.BooleanOperator; import org.hibernate.search.engine.search.common.NamedValues; import org.hibernate.search.engine.search.predicate.SearchPredicate; -import org.hibernate.search.engine.search.reference.predicate.NestedPredicateFieldReference; import org.hibernate.search.util.common.SearchException; import org.hibernate.search.util.common.annotation.Incubating; @@ -33,19 +32,8 @@ *

* Such a factory can also transform relative paths into absolute paths using {@link #toAbsolutePath(String)}; * this can be useful for native predicates in particular. - * - *

Field references

- * - * A {@link org.hibernate.search.engine.search.reference field reference} is always represented by the absolute field path and, - * if applicable, i.e. when a field reference is typed, a combination of the {@link org.hibernate.search.engine.search.common.ValueModel} and the type. - *

- * Field references are usually accessed from the generated Hibernate Search's static metamodel classes that describe the index structure. - * Such reference provides the information on which search capabilities the particular index field possesses, and allows switching between different - * {@link org.hibernate.search.engine.search.common.ValueModel value model representations}. - * - * @param Scope root type. */ -public interface SearchPredicateFactory { +public interface SearchPredicateFactory { /** * Match all documents. @@ -53,7 +41,7 @@ public interface SearchPredicateFactory { * @return The initial step of a DSL where the "match all" predicate can be defined. * @see MatchAllPredicateOptionsStep */ - MatchAllPredicateOptionsStep matchAll(); + MatchAllPredicateOptionsStep matchAll(); /** * Match none of the documents. @@ -77,7 +65,7 @@ public interface SearchPredicateFactory { * @return The initial step of a DSL where the "boolean" predicate can be defined. * @see BooleanPredicateClausesStep */ - BooleanPredicateClausesStep bool(); + BooleanPredicateClausesStep bool(); /** * Match documents if they match a combination of boolean clauses, @@ -92,7 +80,7 @@ public interface SearchPredicateFactory { * @see BooleanPredicateClausesStep#with(Consumer) */ @Deprecated(since = "6.2") - PredicateFinalStep bool(Consumer> clauseContributor); + PredicateFinalStep bool(Consumer> clauseContributor); /** * Match documents if they match all inner clauses. @@ -100,7 +88,7 @@ public interface SearchPredicateFactory { * @return The initial step of a DSL where predicates that must match can be added and options can be set. * @see GenericSimpleBooleanPredicateClausesStep */ - SimpleBooleanPredicateClausesStep and(); + SimpleBooleanPredicateClausesStep and(); /** * Match documents if they match all previously-built {@link SearchPredicate}. @@ -125,7 +113,7 @@ SimpleBooleanPredicateOptionsStep and(PredicateFinalStep firstSearchPredicate * @return The initial step of a DSL where predicates that should match can be added and options can be set. * @see GenericSimpleBooleanPredicateClausesStep */ - SimpleBooleanPredicateClausesStep or(); + SimpleBooleanPredicateClausesStep or(); /** * Match documents if they match any previously-built {@link SearchPredicate}. @@ -173,7 +161,7 @@ SimpleBooleanPredicateOptionsStep or(PredicateFinalStep firstSearchPredicate, * @return The initial step of a DSL where the "match" predicate can be defined. * @see MatchPredicateFieldStep */ - MatchPredicateFieldStep match(); + MatchPredicateFieldStep match(); /** * Match documents where targeted fields have a value within lower and upper bounds. @@ -181,7 +169,7 @@ SimpleBooleanPredicateOptionsStep or(PredicateFinalStep firstSearchPredicate, * @return The initial step of a DSL where the "range" predicate can be defined. * @see RangePredicateFieldStep */ - RangePredicateFieldStep range(); + RangePredicateFieldStep range(); /** * Match documents where targeted fields have a value that contains a given phrase. @@ -189,7 +177,7 @@ SimpleBooleanPredicateOptionsStep or(PredicateFinalStep firstSearchPredicate, * @return The initial step of a DSL where the "phrase" predicate can be defined. * @see PhrasePredicateFieldStep */ - PhrasePredicateFieldStep phrase(); + PhrasePredicateFieldStep phrase(); /** * Match documents where targeted fields contain a term that matches a given pattern, @@ -202,7 +190,7 @@ SimpleBooleanPredicateOptionsStep or(PredicateFinalStep firstSearchPredicate, * @return The initial step of a DSL where the "wildcard" predicate can be defined. * @see WildcardPredicateFieldStep */ - WildcardPredicateFieldStep wildcard(); + WildcardPredicateFieldStep wildcard(); /** * Match documents where targeted fields have a value that starts with a given string. @@ -210,7 +198,7 @@ SimpleBooleanPredicateOptionsStep or(PredicateFinalStep firstSearchPredicate, * @return The initial step of a DSL where the "prefix" predicate can be defined. * @see PrefixPredicateFieldStep */ - PrefixPredicateFieldStep prefix(); + PrefixPredicateFieldStep prefix(); /** * Match documents where targeted fields contain a term that matches a given regular expression. @@ -218,7 +206,7 @@ SimpleBooleanPredicateOptionsStep or(PredicateFinalStep firstSearchPredicate, * @return The initial step of a DSL where the "regexp" predicate can be defined. * @see RegexpPredicateFieldStep */ - RegexpPredicateFieldStep regexp(); + RegexpPredicateFieldStep regexp(); /** * Match documents where targeted fields contain a term that matches some terms of a given series of terms. @@ -226,7 +214,7 @@ SimpleBooleanPredicateOptionsStep or(PredicateFinalStep firstSearchPredicate, * @return The initial step of a DSL where the "terms" predicate can be defined. * @see TermsPredicateFieldStep */ - TermsPredicateFieldStep terms(); + TermsPredicateFieldStep terms(); /** * Match documents where a {@link ObjectStructure#NESTED nested object} matches a given predicate. @@ -236,7 +224,7 @@ SimpleBooleanPredicateOptionsStep or(PredicateFinalStep firstSearchPredicate, * @deprecated Use {@link #nested(String)} instead. */ @Deprecated(since = "6.2") - NestedPredicateFieldStep nested(); + NestedPredicateFieldStep nested(); /** * Match documents where a {@link ObjectStructure#NESTED nested object} matches inner predicates @@ -249,23 +237,7 @@ SimpleBooleanPredicateOptionsStep or(PredicateFinalStep firstSearchPredicate, * @return The initial step of a DSL where the "nested" predicate can be defined. * @see NestedPredicateFieldStep */ - NestedPredicateClausesStep nested(String objectFieldPath); - - /** - * Match documents where a {@link ObjectStructure#NESTED nested object} matches inner predicates - * to be defined in the next steps. - *

- * The resulting nested predicate must match all inner clauses, - * similarly to an {@link #and() "and" predicate}. - * - * @param fieldReference The field reference representing a definition of the object field - * to apply the predicate on. - * @return The initial step of a DSL where the "nested" predicate can be defined. - * @see NestedPredicateFieldStep - */ - default NestedPredicateClausesStep nested(NestedPredicateFieldReference fieldReference) { - return nested( fieldReference.absolutePath() ); - } + NestedPredicateClausesStep nested(String objectFieldPath); /** * Match documents according to a given query string, @@ -279,7 +251,7 @@ SimpleBooleanPredicateOptionsStep or(PredicateFinalStep firstSearchPredicate, * @return The initial step of a DSL where the "simple query string" predicate can be defined. * @see SimpleQueryStringPredicateFieldStep */ - SimpleQueryStringPredicateFieldStep simpleQueryString(); + SimpleQueryStringPredicateFieldStep simpleQueryString(); /** * Match documents according to a given query string, @@ -293,7 +265,7 @@ SimpleBooleanPredicateOptionsStep or(PredicateFinalStep firstSearchPredicate, * @return The initial step of a DSL where the "query string" predicate can be defined. * @see QueryStringPredicateFieldStep */ - QueryStringPredicateFieldStep queryString(); + QueryStringPredicateFieldStep queryString(); /** * Match documents where a given field exists. @@ -303,7 +275,7 @@ SimpleBooleanPredicateOptionsStep or(PredicateFinalStep firstSearchPredicate, * @return The initial step of a DSL where the "exists" predicate can be defined. * @see ExistsPredicateFieldStep */ - ExistsPredicateFieldStep exists(); + ExistsPredicateFieldStep exists(); /** * Access the different types of spatial predicates. @@ -311,7 +283,7 @@ SimpleBooleanPredicateOptionsStep or(PredicateFinalStep firstSearchPredicate, * @return The initial step of a DSL where spatial predicates can be defined. * @see SpatialPredicateInitialStep */ - SpatialPredicateInitialStep spatial(); + SpatialPredicateInitialStep spatial(); /** * Match documents if they match a combination of defined named predicate clauses. @@ -335,7 +307,7 @@ SimpleBooleanPredicateOptionsStep or(PredicateFinalStep firstSearchPredicate, * @see KnnPredicateVectorStep * @see KnnPredicateOptionsStep */ - KnnPredicateFieldStep knn(int k); + KnnPredicateFieldStep knn(int k); /** * Delegating predicate that creates the actual predicate at query create time and provides access to query parameters. @@ -358,7 +330,7 @@ PredicateFinalStep withParameters( * @return The extended factory. * @throws SearchException If the extension cannot be applied (wrong underlying backend, ...). */ - T extension(SearchPredicateFactoryExtension extension); + T extension(SearchPredicateFactoryExtension extension); /** * Create a DSL step allowing multiple attempts to apply extensions one after the other, @@ -369,7 +341,7 @@ PredicateFinalStep withParameters( * * @return A DSL step. */ - SearchPredicateFactoryExtensionIfSupportedStep extension(); + SearchPredicateFactoryExtensionIfSupportedStep extension(); /** * Create a new predicate factory whose root for all paths passed to the DSL @@ -382,7 +354,7 @@ PredicateFinalStep withParameters( * @return A new predicate factory using the given object field as root. */ @Incubating - SearchPredicateFactory withRoot(String objectFieldPath); + SearchPredicateFactory withRoot(String objectFieldPath); /** * @param relativeFieldPath The path to a field, relative to the {@link #withRoot(String) root} of this factory. diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SearchPredicateFactoryExtension.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SearchPredicateFactoryExtension.java index 77ee8c42cd6..b5e89395dc5 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SearchPredicateFactoryExtension.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SearchPredicateFactoryExtension.java @@ -20,7 +20,7 @@ * @see SearchPredicateFactory#extension(SearchPredicateFactoryExtension) * @see ExtendedSearchPredicateFactory */ -public interface SearchPredicateFactoryExtension { +public interface SearchPredicateFactoryExtension { /** * Attempt to extend a given factory, returning an empty {@link Optional} in case of failure. @@ -31,6 +31,6 @@ public interface SearchPredicateFactoryExtension { * @return An optional containing the extended search predicate factory ({@link T}) in case * of success, or an empty optional otherwise. */ - Optional extendOptional(SearchPredicateFactory original); + Optional extendOptional(SearchPredicateFactory original); } diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SearchPredicateFactoryExtensionIfSupportedMoreStep.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SearchPredicateFactoryExtensionIfSupportedMoreStep.java index 52a14e107b2..0cc205ba253 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SearchPredicateFactoryExtensionIfSupportedMoreStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SearchPredicateFactoryExtensionIfSupportedMoreStep.java @@ -10,16 +10,16 @@ /** * The second and later step when attempting to apply multiple extensions - * to a {@link SearchPredicateFactory}. + * to a {@link TypedSearchPredicateFactory}. * - * @see SearchPredicateFactory#extension() + * @see TypedSearchPredicateFactory#extension() */ public interface SearchPredicateFactoryExtensionIfSupportedMoreStep extends SearchPredicateFactoryExtensionIfSupportedStep { /** - * If no extension passed to {@link #ifSupported(SearchPredicateFactoryExtension, Function)} - * was supported so far, apply the given consumer to the current (non-extended) {@link SearchPredicateFactory}; + * If no extension passed to {@link #ifSupported(TypedSearchPredicateFactoryExtension, Function)} + * was supported so far, apply the given consumer to the current (non-extended) {@link TypedSearchPredicateFactory}; * otherwise return the predicate created in the first succeeding {@code ifSupported} call. * * @param predicateContributor A function called if no extension was successfully applied; @@ -29,10 +29,10 @@ public interface SearchPredicateFactoryExtensionIfSupportedMoreStep * @return The final step in the DSL of the resulting predicate. */ PredicateFinalStep orElse( - Function, ? extends PredicateFinalStep> predicateContributor); + Function, ? extends PredicateFinalStep> predicateContributor); /** - * If no extension passed to {@link #ifSupported(SearchPredicateFactoryExtension, Function)} + * If no extension passed to {@link #ifSupported(TypedSearchPredicateFactoryExtension, Function)} * was supported so far, throw an exception; * otherwise return the predicate created in the first succeeding {@code ifSupported} call. * diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SearchPredicateFactoryExtensionIfSupportedStep.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SearchPredicateFactoryExtensionIfSupportedStep.java index ecbc144c4ee..c6a21704873 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SearchPredicateFactoryExtensionIfSupportedStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SearchPredicateFactoryExtensionIfSupportedStep.java @@ -8,15 +8,15 @@ /** * The initial step when attempting to apply multiple extensions - * to a {@link SearchPredicateFactory}. + * to a {@link TypedSearchPredicateFactory}. * - * @see SearchPredicateFactory#extension() + * @see TypedSearchPredicateFactory#extension() */ public interface SearchPredicateFactoryExtensionIfSupportedStep { /** * If the given extension is supported, and none of the previous extensions passed to - * {@link #ifSupported(SearchPredicateFactoryExtension, Function)} + * {@link #ifSupported(TypedSearchPredicateFactoryExtension, Function)} * was supported, extend the current factory with this extension, * apply the given function to the extended factory, and store the resulting predicate for later retrieval. *

@@ -32,7 +32,7 @@ public interface SearchPredicateFactoryExtensionIfSupportedStep { * @return The next step. */ SearchPredicateFactoryExtensionIfSupportedMoreStep ifSupported( - SearchPredicateFactoryExtension extension, + SearchPredicateFactoryExtension extension, Function predicateContributor ); diff --git a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SimpleBooleanPredicateClausesCollector.java b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SimpleBooleanPredicateClausesCollector.java index ff1ffd83bc0..3be391cd940 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SimpleBooleanPredicateClausesCollector.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/predicate/dsl/SimpleBooleanPredicateClausesCollector.java @@ -12,7 +12,7 @@ /** * An object where the clauses and options of a simple boolean predicate - * ({@link SearchPredicateFactory#and() and}, {@link SearchPredicateFactory#or() or}) + * ({@link TypedSearchPredicateFactory#and() and}, {@link TypedSearchPredicateFactory#or() or}) * can be set. * *

Clauses

@@ -22,15 +22,15 @@ * or any clause: *