001package io.avaje.jsonb.spi;
002
003/**
004 * Factory that is service loaded to create the adapter for underlying json parsing and generation.
005 */
006public interface AdapterFactory {
007
008  /**
009   * Create the adapter to use for the underlying json parsing and generation.
010   *
011   * @param serializeNulls The default setting for serializing nulls
012   * @param serializeEmpty The default setting for serializing empty arrays
013   * @param failOnUnknown  The default setting for fail when deserializing unknown properties
014   * @return The adapter to use
015   */
016  JsonStreamAdapter create(boolean serializeNulls, boolean serializeEmpty, boolean failOnUnknown);
017}