Skip to content

Commit 11f4b48

Browse files
committed
HSEARCH-3319 Create reference traits interfaces
1 parent dfef043 commit 11f4b48

36 files changed

+351
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.search.engine.search.reference;
6+
7+
import org.hibernate.search.util.common.annotation.Incubating;
8+
9+
/**
10+
* The most common interface for the field reference hierarchy.
11+
* @param <SR> Containing type.
12+
*/
13+
@Incubating
14+
public interface FieldReference<SR> {
15+
16+
String absolutePath();
17+
18+
Class<SR> scopeRootType();
19+
20+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.search.engine.search.reference;
6+
7+
import org.hibernate.search.engine.common.EntityReference;
8+
import org.hibernate.search.engine.mapper.scope.SearchScope;
9+
import org.hibernate.search.engine.mapper.scope.SearchScopeProvider;
10+
11+
public interface RootReferenceScope<SR, T> {
12+
Class<SR> rootReferenceType();
13+
14+
<ER extends EntityReference, S extends SearchScope<T, ER>, P extends SearchScopeProvider<ER>> S create(P scopeProvider);
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.search.engine.search.reference.aggregation;
6+
7+
import org.hibernate.search.engine.search.reference.FieldReference;
8+
9+
public interface AggregationFieldReference<SR> extends FieldReference<SR> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.search.engine.search.reference.aggregation;
6+
7+
public interface RangeAggregationFieldReference<SR, T> extends TypedAggregationFieldReference<SR, T> {
8+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.search.engine.search.reference.aggregation;
6+
7+
public interface TermsAggregationFieldReference<SR, T> extends TypedAggregationFieldReference<SR, T> {
8+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.search.engine.search.reference.aggregation;
6+
7+
import org.hibernate.search.engine.search.common.ValueModel;
8+
9+
public interface TypedAggregationFieldReference<SR, T> extends AggregationFieldReference<SR> {
10+
11+
Class<T> aggregationType();
12+
13+
default ValueModel valueModel() {
14+
return ValueModel.MAPPING;
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.search.engine.search.reference.object;
6+
7+
public interface FlattenedFieldReference<SR> extends ObjectFieldReference<SR> {
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.search.engine.search.reference.object;
6+
7+
public interface NestedFieldReference<SR> extends ObjectFieldReference<SR> {
8+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.search.engine.search.reference.object;
6+
7+
import org.hibernate.search.engine.search.reference.FieldReference;
8+
9+
public interface ObjectFieldReference<SR> extends FieldReference<SR> {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.search.engine.search.reference.predicate;
6+
7+
public interface ExistsPredicateFieldReference<SR> extends PredicateFieldReference<SR> {
8+
}

0 commit comments

Comments
 (0)