Merge "Add more test field types to TestIndexedFields"
diff --git a/java/com/google/gerrit/index/IndexedField.java b/java/com/google/gerrit/index/IndexedField.java
index 74b82f5..99004bb 100644
--- a/java/com/google/gerrit/index/IndexedField.java
+++ b/java/com/google/gerrit/index/IndexedField.java
@@ -369,7 +369,12 @@
/** Optional description of the field data. */
public abstract Optional<String> description();
- /** True if this field is mandatory. Default is false. */
+ /**
+ * True if this field is mandatory. Default is false.
+ *
+ * <p>This property is not enforced by the common indexing logic. It is up to the index
+ * implementations to enforce that the field is required.
+ */
public abstract boolean required();
/** Allow reading the actual data from the index. Default is false. */
@@ -382,6 +387,9 @@
* Optional size constrain on the field. The size is not constrained if this property is {@link
* Optional#empty()}
*
+ * <p>This property is not enforced by the common indexing logic. It is up to the index
+ * implementations to enforce the size.
+ *
* <p>If the field is {@link #repeatable()}, the constraint applies to each element separately.
*/
public abstract Optional<Integer> size();
diff --git a/java/com/google/gerrit/index/Schema.java b/java/com/google/gerrit/index/Schema.java
index 9f07cab..25d7cf3 100644
--- a/java/com/google/gerrit/index/Schema.java
+++ b/java/com/google/gerrit/index/Schema.java
@@ -209,7 +209,10 @@
return indexedFields;
}
- /** Returns all fields in this schema where {@link FieldDef#isStored()} is true. */
+ /**
+ * Returns names of {@link SchemaField} fields in this schema where {@link SchemaField#isStored()}
+ * is true.
+ */
public final ImmutableSet<String> getStoredFields() {
return storedFields;
}
diff --git a/java/com/google/gerrit/index/testing/TestIndexedFields.java b/java/com/google/gerrit/index/testing/TestIndexedFields.java
index 7a120b7..51440fb 100644
--- a/java/com/google/gerrit/index/testing/TestIndexedFields.java
+++ b/java/com/google/gerrit/index/testing/TestIndexedFields.java
@@ -164,6 +164,12 @@
public static final IndexedField<TestIndexedData, String>.SearchSpec STRING_FIELD_SPEC =
STRING_FIELD.fullText("string_test");
+ public static final IndexedField<TestIndexedData, String>.SearchSpec PREFIX_STRING_FIELD_SPEC =
+ STRING_FIELD.prefix("prefix_string_test");
+
+ public static final IndexedField<TestIndexedData, String>.SearchSpec EXACT_STRING_FIELD_SPEC =
+ STRING_FIELD.exact("exact_string_test");
+
public static final IndexedField<TestIndexedData, Iterable<byte[]>> ITERABLE_STORED_BYTE_FIELD =
IndexedField.<TestIndexedData>iterableByteArrayBuilder("IterableByteTestField")
.stored()
diff --git a/javatests/com/google/gerrit/server/index/IndexedFieldTest.java b/javatests/com/google/gerrit/server/index/IndexedFieldTest.java
index 6a62ed1..dacc37d 100644
--- a/javatests/com/google/gerrit/server/index/IndexedFieldTest.java
+++ b/javatests/com/google/gerrit/server/index/IndexedFieldTest.java
@@ -16,6 +16,7 @@
import static com.google.common.collect.ImmutableList.toImmutableList;
import static com.google.common.truth.Truth.assertThat;
+import static com.google.gerrit.index.testing.TestIndexedFields.EXACT_STRING_FIELD_SPEC;
import static com.google.gerrit.index.testing.TestIndexedFields.INTEGER_FIELD;
import static com.google.gerrit.index.testing.TestIndexedFields.INTEGER_FIELD_SPEC;
import static com.google.gerrit.index.testing.TestIndexedFields.INTEGER_RANGE_FIELD_SPEC;
@@ -31,6 +32,7 @@
import static com.google.gerrit.index.testing.TestIndexedFields.ITERABLE_STRING_FIELD_SPEC;
import static com.google.gerrit.index.testing.TestIndexedFields.LONG_FIELD_SPEC;
import static com.google.gerrit.index.testing.TestIndexedFields.LONG_RANGE_FIELD_SPEC;
+import static com.google.gerrit.index.testing.TestIndexedFields.PREFIX_STRING_FIELD_SPEC;
import static com.google.gerrit.index.testing.TestIndexedFields.STORED_BYTE_FIELD;
import static com.google.gerrit.index.testing.TestIndexedFields.STORED_BYTE_SPEC;
import static com.google.gerrit.index.testing.TestIndexedFields.STORED_PROTO_FIELD;
@@ -78,6 +80,8 @@
.put(ITERABLE_LONG_RANGE_FIELD_SPEC, ImmutableList.of(123456L, 654321L))
.put(TIMESTAMP_FIELD_SPEC, new Timestamp(1234567L))
.put(STRING_FIELD_SPEC, "123456")
+ .put(PREFIX_STRING_FIELD_SPEC, "123456")
+ .put(EXACT_STRING_FIELD_SPEC, "123456")
.put(ITERABLE_STRING_FIELD_SPEC, ImmutableList.of("123456"))
.put(
ITERABLE_STORED_BYTE_SPEC,