Skip to content

Commit bae0f47

Browse files
committed
HSEARCH-3319 Create reference traits interfaces
1 parent efc1120 commit bae0f47

35 files changed

+412
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference;
8+
9+
import org.hibernate.search.util.common.annotation.Incubating;
10+
11+
/**
12+
* The most common interface for the field reference hierarchy.
13+
* @param <SR> Containing type.
14+
*/
15+
@Incubating
16+
public interface FieldReference<SR> {
17+
18+
String absolutePath();
19+
20+
Class<SR> scopeRootType();
21+
22+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference;
8+
9+
import org.hibernate.search.engine.common.EntityReference;
10+
import org.hibernate.search.engine.mapper.scope.SearchScope;
11+
import org.hibernate.search.engine.mapper.scope.SearchScopeProvider;
12+
13+
public interface RootReferenceScope<SR, T> {
14+
Class<SR> rootReferenceType();
15+
16+
<ER extends EntityReference, S extends SearchScope<T, ER>, P extends SearchScopeProvider<ER>> S scope(P scopeProvider);
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.aggregation;
8+
9+
import org.hibernate.search.engine.search.reference.FieldReference;
10+
11+
public interface AggregationFieldReference<SR> extends FieldReference<SR> {
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.aggregation;
8+
9+
public interface RangeAggregationFieldReference<SR, T> extends TypedAggregationFieldReference<SR, T> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.aggregation;
8+
9+
public interface TermsAggregationFieldReference<SR, T> extends TypedAggregationFieldReference<SR, T> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.aggregation;
8+
9+
import org.hibernate.search.engine.search.common.ValueConvert;
10+
11+
public interface TypedAggregationFieldReference<SR, T> extends AggregationFieldReference<SR> {
12+
13+
Class<T> aggregationType();
14+
15+
default ValueConvert valueConvert() {
16+
return ValueConvert.YES;
17+
}
18+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.object;
8+
9+
public interface FlattenedFieldReference<SR> extends ObjectFieldReference<SR> {
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.object;
8+
9+
public interface NestedFieldReference<SR> extends ObjectFieldReference<SR> {
10+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.object;
8+
9+
import org.hibernate.search.engine.search.reference.FieldReference;
10+
11+
public interface ObjectFieldReference<SR> extends FieldReference<SR> {
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.predicate;
8+
9+
public interface ExistsPredicateFieldReference<SR> extends PredicateFieldReference<SR> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.predicate;
8+
9+
public interface KnnPredicateFieldReference<SR, T> extends TypedPredicateFieldReference<SR, T> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.predicate;
8+
9+
public interface MatchPredicateFieldReference<SR, T> extends TypedPredicateFieldReference<SR, T> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.predicate;
8+
9+
public interface NestedPredicateFieldReference<SR> extends PredicateFieldReference<SR> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.predicate;
8+
9+
public interface PhrasePredicateFieldReference<SR, T> extends TypedPredicateFieldReference<SR, T> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.predicate;
8+
9+
import org.hibernate.search.engine.search.reference.FieldReference;
10+
11+
public interface PredicateFieldReference<SR> extends FieldReference<SR> {
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.predicate;
8+
9+
public interface QueryStringPredicateFieldReference<SR, T> extends TypedPredicateFieldReference<SR, T> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.predicate;
8+
9+
public interface RangePredicateFieldReference<SR, T> extends TypedPredicateFieldReference<SR, T> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.predicate;
8+
9+
public interface RegexpPredicateFieldReference<SR, T> extends TypedPredicateFieldReference<SR, T> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.predicate;
8+
9+
public interface SimpleQueryStringPredicateFieldReference<SR, T> extends TypedPredicateFieldReference<SR, T> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.predicate;
8+
9+
public interface SpatialWithinBoundingBoxPredicateFieldReference<SR, T> extends TypedPredicateFieldReference<SR, T> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.predicate;
8+
9+
public interface SpatialWithinCirclePredicateFieldReference<SR, T> extends TypedPredicateFieldReference<SR, T> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.predicate;
8+
9+
public interface SpatialWithinPolygonPredicateFieldReference<SR, T> extends TypedPredicateFieldReference<SR, T> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.predicate;
8+
9+
public interface TermsPredicateFieldReference<SR, T> extends TypedPredicateFieldReference<SR, T> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.predicate;
8+
9+
import org.hibernate.search.engine.search.common.ValueConvert;
10+
import org.hibernate.search.engine.search.reference.FieldReference;
11+
12+
public interface TypedPredicateFieldReference<SR, T> extends FieldReference<SR> {
13+
14+
Class<T> predicateType();
15+
16+
default ValueConvert valueConvert() {
17+
return ValueConvert.YES;
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.predicate;
8+
9+
public interface WildcardPredicateFieldReference<SR, T> extends TypedPredicateFieldReference<SR, T> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.projection;
8+
9+
public interface DistanceProjectionFieldReference<SR, T> extends TypedProjectionFieldReference<SR, T> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.projection;
8+
9+
public interface FieldProjectionFieldReference<SR, T> extends TypedProjectionFieldReference<SR, T> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.projection;
8+
9+
public interface HighlightProjectionFieldReference<SR> extends ProjectionFieldReference<SR> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.projection;
8+
9+
public interface ObjectProjectionFieldReference<SR> extends ProjectionFieldReference<SR> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.projection;
8+
9+
import org.hibernate.search.engine.search.reference.FieldReference;
10+
11+
public interface ProjectionFieldReference<SR> extends FieldReference<SR> {
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/*
2+
* Hibernate Search, full-text search for your domain model
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.search.engine.search.reference.projection;
8+
9+
import org.hibernate.search.engine.search.common.ValueConvert;
10+
11+
public interface TypedProjectionFieldReference<SR, T> extends ProjectionFieldReference<SR> {
12+
13+
Class<T> projectionType();
14+
15+
default ValueConvert valueConvert() {
16+
return ValueConvert.YES;
17+
}
18+
}

0 commit comments

Comments
 (0)