Skip to content

Commit b7a6e14

Browse files
committed
fixed native image support
1 parent 044af33 commit b7a6e14

File tree

6 files changed

+295
-103
lines changed

6 files changed

+295
-103
lines changed

src/main/java/com/arangodb/entity/InvertedIndexPrimarySort.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,14 @@ public Field(String field, Direction direction) {
6868
this.direction = direction;
6969
}
7070

71+
public String getField() {
72+
return field;
73+
}
74+
75+
public Direction getDirection() {
76+
return direction;
77+
}
78+
7179
@Override
7280
public boolean equals(Object o) {
7381
if (this == o) return true;

src/main/java/com/arangodb/internal/velocypack/VPackDriverModule.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,9 @@ public <C extends VPackSetupContext<C>> void setup(final C context) {
8181
context.registerSerializer(ArangoSearchPropertiesOptions.class, VPackSerializers.ARANGO_SEARCH_PROPERTIES_OPTIONS);
8282
context.registerSerializer(ArangoSearchProperties.class, VPackSerializers.ARANGO_SEARCH_PROPERTIES);
8383
context.registerSerializer(SearchAliasProperties.class, VPackSerializers.SEARCH_ALIAS_PROPERTIES);
84+
context.registerSerializer(SearchAliasIndex.class, VPackSerializers.SEARCH_ALIAS_INDEX);
85+
context.registerSerializer(StoredValue.class, VPackSerializers.STORED_VALUE);
86+
context.registerSerializer(InvertedIndexPrimarySort.Field.class, VPackSerializers.PRIMARY_SORT_FIELD);
8487
context.registerSerializer(ConsolidationType.class, VPackSerializers.CONSOLIDATE_TYPE);
8588
context.registerSerializer(CollectionSchema.class, VPackSerializers.COLLECTION_VALIDATION);
8689
context.registerSerializer(ZKDIndexOptions.FieldValueTypes.class, VPackSerializers.ZKD_FIELD_VALUE_TYPES);

src/main/java/com/arangodb/internal/velocypack/VPackSerializers.java

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -221,16 +221,7 @@ public class VPackSerializers {
221221
if (!storedValues.isEmpty()) {
222222
builder.add("storedValues", ValueType.ARRAY); // open array
223223
for (final StoredValue storedValue : storedValues) {
224-
builder.add(ValueType.OBJECT); // open object
225-
builder.add("fields", ValueType.ARRAY);
226-
for (final String field : storedValue.getFields()) {
227-
builder.add(field);
228-
}
229-
builder.close();
230-
if (storedValue.getCompression() != null) {
231-
builder.add("compression", storedValue.getCompression().getValue());
232-
}
233-
builder.close(); // close object
224+
context.serialize(builder, null, storedValue);
234225
}
235226
builder.close(); // close array
236227
}
@@ -246,6 +237,34 @@ public class VPackSerializers {
246237
builder.close();
247238
};
248239

240+
public static final VPackSerializer<SearchAliasIndex> SEARCH_ALIAS_INDEX = (builder, attribute, value, context) -> {
241+
builder.add(ValueType.OBJECT);
242+
builder.add("collection", value.getCollection());
243+
builder.add("index", value.getIndex());
244+
context.serialize(builder, "operation", value.getOperation());
245+
builder.close();
246+
};
247+
248+
public static final VPackSerializer<StoredValue> STORED_VALUE = (builder, attribute, value, context) -> {
249+
builder.add(ValueType.OBJECT); // open object
250+
builder.add("fields", ValueType.ARRAY);
251+
for (final String field : value.getFields()) {
252+
builder.add(field);
253+
}
254+
builder.close();
255+
if (value.getCompression() != null) {
256+
builder.add("compression", value.getCompression().getValue());
257+
}
258+
builder.close(); // close object
259+
};
260+
261+
public static final VPackSerializer<InvertedIndexPrimarySort.Field> PRIMARY_SORT_FIELD = (builder, attribute, value, context) -> {
262+
builder.add(ValueType.OBJECT);
263+
builder.add("field", value.getField());
264+
builder.add("direction", value.getDirection().toString());
265+
builder.close();
266+
};
267+
249268
private static void serializeFieldLinks(final VPackBuilder builder, final Collection<FieldLink> links) {
250269
if (!links.isEmpty()) {
251270
builder.add("fields", ValueType.OBJECT);

0 commit comments

Comments
 (0)