@@ -184,6 +184,7 @@ public class VPackSerializers {
184
184
builder .add ("storeValues" , storeValues .name ().toLowerCase (Locale .ENGLISH ));
185
185
}
186
186
serializeFieldLinks (builder , collectionLink .getFields ());
187
+ serializeNested (builder , collectionLink .getNested ());
187
188
builder .close ();
188
189
}
189
190
builder .close ();
@@ -229,31 +230,44 @@ public class VPackSerializers {
229
230
private static void serializeFieldLinks (final VPackBuilder builder , final Collection <FieldLink > links ) {
230
231
if (!links .isEmpty ()) {
231
232
builder .add ("fields" , ValueType .OBJECT );
232
- for ( final FieldLink fieldLink : links ) {
233
- builder .add ( fieldLink . getName (), ValueType . OBJECT );
234
- final Collection < String > analyzers = fieldLink . getAnalyzers ();
235
- if (! analyzers . isEmpty ()) {
236
- builder . add ( "analyzers" , ValueType . ARRAY );
237
- for (final String analyzer : analyzers ) {
238
- builder . add ( analyzer );
239
- }
240
- builder . close ( );
241
- }
242
- final Boolean includeAllFields = fieldLink . getIncludeAllFields ();
243
- if ( includeAllFields != null ) {
244
- builder . add ( "includeAllFields" , includeAllFields );
245
- }
246
- final Boolean trackListPositions = fieldLink . getTrackListPositions ();
247
- if ( trackListPositions != null ) {
248
- builder . add ( "trackListPositions" , trackListPositions );
249
- }
250
- final StoreValuesType storeValues = fieldLink . getStoreValues ( );
251
- if ( storeValues != null ) {
252
- builder .add ("storeValues" , storeValues . name (). toLowerCase ( Locale . ENGLISH ) );
233
+ serializeFields ( builder , links );
234
+ builder .close ( );
235
+ }
236
+ }
237
+
238
+ private static void serializeNested (final VPackBuilder builder , final Collection < FieldLink > nested ) {
239
+ if (! nested . isEmpty ()) {
240
+ builder . add ( "nested" , ValueType . OBJECT );
241
+ serializeFields ( builder , nested );
242
+ builder . close ();
243
+ }
244
+ }
245
+
246
+ private static void serializeFields ( final VPackBuilder builder , final Collection < FieldLink > links ){
247
+ for ( final FieldLink fieldLink : links ) {
248
+ builder . add ( fieldLink . getName (), ValueType . OBJECT );
249
+ final Collection < String > analyzers = fieldLink . getAnalyzers ( );
250
+ if (! analyzers . isEmpty ()) {
251
+ builder . add ( "analyzers" , ValueType . ARRAY );
252
+ for ( final String analyzer : analyzers ) {
253
+ builder .add (analyzer );
253
254
}
254
- serializeFieldLinks (builder , fieldLink .getFields ());
255
255
builder .close ();
256
256
}
257
+ final Boolean includeAllFields = fieldLink .getIncludeAllFields ();
258
+ if (includeAllFields != null ) {
259
+ builder .add ("includeAllFields" , includeAllFields );
260
+ }
261
+ final Boolean trackListPositions = fieldLink .getTrackListPositions ();
262
+ if (trackListPositions != null ) {
263
+ builder .add ("trackListPositions" , trackListPositions );
264
+ }
265
+ final StoreValuesType storeValues = fieldLink .getStoreValues ();
266
+ if (storeValues != null ) {
267
+ builder .add ("storeValues" , storeValues .name ().toLowerCase (Locale .ENGLISH ));
268
+ }
269
+ serializeFieldLinks (builder , fieldLink .getFields ());
270
+ serializeNested (builder , fieldLink .getNested ());
257
271
builder .close ();
258
272
}
259
273
}
0 commit comments