code: protected <C> List<List<C>> deserializeIntoList( JsonReader reader, JsonDeserializationContext ctx, JsonDeserializer<C> deserializer,
                                                       JsonDeserializerParameters params ) {
          List<List<C>> list;
  
          reader.beginArray();
          JsonToken token = reader.peek();
  
          if ( JsonToken.END_ARRAY == token ) {
  
              // empty array, no need to create a list
              list = Collections.emptyList();
  
          } else {
  
              list = doDeserializeIntoList( reader, ctx, deserializer, params, token );
  
          }
  
          reader.endArray();
          return list;
      }
docs: Deserializes the array into a {@link List}. We need the length of the array before creating it.
  
  @param reader reader
  @param ctx context of the deserialization process
  @param deserializer deserializer for element inside the array
  @param params Parameters for the deserializer
  @param <C> type of the element inside the array
  @return a list containing all the elements of the array