クラス AbstractJacksonHttpMessageConverter<T extends tools.jackson.databind.ObjectMapper>

型パラメーター:
T - ObjectMapper の型
実装されているすべてのインターフェース:
HttpMessageConverter<ObjectSE>, SmartHttpMessageConverter<ObjectSE>
既知の直属サブクラス
JacksonCborHttpMessageConverter, JacksonJsonHttpMessageConverter, JacksonSmileHttpMessageConverter, JacksonXmlHttpMessageConverter, JacksonYamlHttpMessageConverter

public abstract class AbstractJacksonHttpMessageConverter<T extends tools.jackson.databind.ObjectMapper> extends AbstractSmartHttpMessageConverter<ObjectSE>
Jackson ベースおよびコンテンツ型に依存しない HttpMessageConverter 実装の抽象基本クラス。

次のヒントエントリがサポートされています。

  • com.fasterxml.jackson.annotation.JsonView キーと、JSON ビューのクラス名を値として持つ JSON ビュー。
  • tools.jackson.databind.ser.FilterProvider キーとフィルタープロバイダークラス名を値として持つフィルタープロバイダー。
導入:
7.0
作成者:
Sebastien Deleuze
関連事項:
  • フィールドの詳細

    • defaultMapper

      protected final T extends tools.jackson.databind.ObjectMapper defaultMapper
  • コンストラクターの詳細

    • AbstractJacksonHttpMessageConverter

      protected AbstractJacksonHttpMessageConverter(tools.jackson.databind.cfg.MapperBuilder<T,?> builder, MediaType supportedMediaType)
      提供された builder を MapperBuilder.findModules(ClassLoader) と MediaType によって見つかった JacksonModule でカスタマイズして、新しいインスタンスを構築します。
    • AbstractJacksonHttpMessageConverter

      protected AbstractJacksonHttpMessageConverter(tools.jackson.databind.cfg.MapperBuilder<T,?> builder, MediaType... supportedMediaTypes)
      MapperBuilder.findModules(ClassLoader) と MediaType によって見つかった JacksonModule でカスタマイズされた、提供された builder を使用して新しいインスタンスを構築します。
    • AbstractJacksonHttpMessageConverter

      protected AbstractJacksonHttpMessageConverter(T mapper)
      提供された ObjectMapper を使用して新しいインスタンスを構築します。
    • AbstractJacksonHttpMessageConverter

      protected AbstractJacksonHttpMessageConverter(T mapper, MediaType supportedMediaType)
      提供された ObjectMapper と MediaType を使用して新しいインスタンスを構築します。
    • AbstractJacksonHttpMessageConverter

      protected AbstractJacksonHttpMessageConverter(T mapper, MediaType... supportedMediaTypes)
      提供された ObjectMapper および MediaType を使用して新しいインスタンスを構築します。
  • メソッドの詳細

    • setSupportedMediaTypes

      public void setSupportedMediaTypes(ListSE<MediaType> supportedMediaTypes)
      クラスからコピーされた説明: AbstractHttpMessageConverter
      このコンバーターによってサポートされる MediaType オブジェクトのリストを設定します。
      オーバーライド:
      クラス AbstractHttpMessageConverter<ObjectSE>setSupportedMediaTypes 
    • getMapper

      public T getMapper()
      使用中のメイン ObjectMapper を返却してください。
    • registerMappersForType

      public void registerMappersForType(ClassSE<?> clazz, ConsumerSE<MapSE<MediaType, T>> registrar)
      指定された ClassSE に使用する ObjectMapper インスタンスを設定します。これは、default の ObjectMapper から逸脱させたい場合や、ObjectMapper を MediaType によって変化させたい場合に便利です。

      注意 : このメソッドを使用すると、特定のクラスのデフォルトの ObjectMapper および supportedMediaTypes の使用が事実上オフになります。ここで構成されたマッピングは、特定のクラスでサポートする必要があるすべての MediaType を include に設定することが重要です。

      パラメーター:
      clazz - ObjectMapper インスタンスを登録するオブジェクトの型
      registrar - 指定されたクラスの MediaType と ObjectMapper の関連付けを設定または更新するコンシューマー
    • getMappersForType

      public MapSE<MediaType, T> getMappersForType(ClassSE<?> clazz)
      指定されたクラスの ObjectMapper 登録があれば、それを返します。
      パラメーター:
      clazz - 登録を検索するクラス
      戻り値:
      MediaType から ObjectMapper への登録が登録されているマップ、または特定のクラスの登録がない場合は空。
    • getSupportedMediaTypes

      public ListSE<MediaType> getSupportedMediaTypes(ClassSE<?> clazz)
      インターフェースからコピーされた説明: HttpMessageConverter
      指定されたクラスについて、このコンバーターでサポートされているメディア型のリストを返します。コンバーターが特定のクラスをサポートしていない場合、またはメディア型のサブセットに対してのみサポートしている場合、リストは HttpMessageConverter.getSupportedMediaTypes() とは異なる場合があります。
      パラメーター:
      clazz - チェックするクラスの型
      戻り値:
      特定のクラスでサポートされているメディア型のリスト
    • getMediaTypesForProblemDetail

      protected ListSE<MediaType> getMediaTypesForProblemDetail()
      ProblemDetail でサポートされているメディア型を返します。サブクラスでオーバーライドされない限り、デフォルトでは空のリストです。
    • canRead

      public boolean canRead(ResolvableType type, @Nullable MediaType mediaType)
      インターフェースからコピーされた説明: SmartHttpMessageConverter
      指定された型がこのコンバーターで読み取れるかどうかを示します。このメソッドは、ジェネリクス型に関連する追加のチェックを使用して HttpMessageConverter.canRead(Class, MediaType) と同じチェックを実行する必要があります。
      次で指定:
      インターフェース SmartHttpMessageConverter<T extends tools.jackson.databind.ObjectMapper>canRead 
      オーバーライド:
      クラス AbstractSmartHttpMessageConverter<ObjectSE>canRead 
      パラメーター:
      type - 読みやすさをテストする (潜在的にジェネリクスな) 型。型ソースは、関連する場合、追加情報 (たとえば、関連するメソッドシグネチャー) を取得するために使用されることがあります。
      mediaType - 読み取るメディア型。指定されていない場合は null にすることができます。通常、Content-Type ヘッダーの値。
      戻り値:
      読み取り可能な場合は true。それ以外の場合は false 
    • canWrite

      public boolean canWrite(ClassSE<?> clazz, @Nullable MediaType mediaType)
      クラスからコピーされた説明: AbstractHttpMessageConverter
      この実装は、指定されたクラスがサポートされているかどうか、およびサポートされているメディア型に指定されたメディア型が含まれているかどうかをチェックします。
      次で指定:
      インターフェース HttpMessageConverter<T extends tools.jackson.databind.ObjectMapper>canWrite 
      次で指定:
      インターフェース SmartHttpMessageConverter<T extends tools.jackson.databind.ObjectMapper>canWrite 
      オーバーライド:
      クラス AbstractHttpMessageConverter<ObjectSE>canWrite 
      パラメーター:
      clazz - 書き込み可能性をテストするクラス
      mediaType - 書き込むメディア型(指定しない場合は null にすることができます); 通常、Accept ヘッダーの値。
      戻り値:
      書き込み可能な場合は true。それ以外の場合は false 
    • read

      インターフェースからコピーされた説明: SmartHttpMessageConverter
      指定された入力メッセージから指定された型のオブジェクトを読み取り、それを返します。
      パラメーター:
      type - 返されるオブジェクトの (潜在的にジェネリクスな) 型。この型は、このインターフェースの canRead メソッドに以前に渡され、true を返している必要があります。型ソースは、関連する場合、追加情報 (たとえば、関連するメソッドシグネチャー) を取得するために使用されることがあります。
      inputMessage - 読み込む HTTP 入力メッセージ
      hints - エンコード方法に関する追加情報
      戻り値:
      変換されたオブジェクト
      例外:
      IOExceptionSE - I/O エラーの場合
      HttpMessageNotReadableException - 変換エラーの場合
    • readInternal

      protected ObjectSE readInternal(ClassSE<?> clazz, HttpInputMessage inputMessage) throws IOExceptionSE, HttpMessageNotReadableException
      クラスからコピーされた説明: AbstractHttpMessageConverter
      実際のオブジェクトを読み取る抽象テンプレートメソッド。AbstractHttpMessageConverter.read(Class, HttpInputMessage) から呼び出されます。
      オーバーライド:
      クラス AbstractSmartHttpMessageConverter<ObjectSE>readInternal 
      パラメーター:
      clazz - 返すオブジェクトの型
      inputMessage - 読み込む HTTP 入力メッセージ
      戻り値:
      変換されたオブジェクト
      例外:
      IOExceptionSE - I/O エラーの場合
      HttpMessageNotReadableException - 変換エラーの場合
    • customizeReader

      protected tools.jackson.databind.ObjectReader customizeReader(tools.jackson.databind.ObjectReader reader, tools.jackson.databind.JavaType javaType)
      サブクラスはこのメソッドを使用して、値の読み取りに使用される ObjectReader をカスタマイズできます。
      パラメーター:
      reader - カスタマイズするリーダーインスタンス
      javaType - 読み取る要素値の種類
      戻り値:
      カスタマイズされた ObjectReader
    • getCharset

      protected CharsetSE getCharset(@Nullable MediaType contentType)
      JSON 入力に使用する文字セットを決定します。

      デフォルトでは入力の文字セット MediaType、それ以外の場合は UTF-8 になります。サブクラスでオーバーライドできます。

      パラメーター:
      contentType - HTTP 入力メッセージのコンテンツ型
      戻り値:
      使用する文字セット
    • writeInternal

      protected void writeInternal(ObjectSE object, ResolvableType resolvableType, HttpOutputMessage outputMessage, @Nullable MapSE<StringSE,ObjectSE> hints) throws IOExceptionSE, HttpMessageNotWritableException
      クラスからコピーされた説明: AbstractSmartHttpMessageConverter
      実際の本文を書き込む抽象テンプレートメソッド。AbstractSmartHttpMessageConverter.write(Object, ResolvableType, MediaType, HttpOutputMessage, Map) から呼び出されます。
      次で指定:
      クラス AbstractSmartHttpMessageConverter<ObjectSE>writeInternal 
      パラメーター:
      object - 出力メッセージに書き込むオブジェクト
      resolvableType - 書き込むオブジェクトの型
      outputMessage - 書き込む HTTP 出力メッセージ
      hints - エンコード方法に関する追加情報
      例外:
      IOExceptionSE - I/O エラーの場合
      HttpMessageNotWritableException - 変換エラーの場合
    • customizeWriter

      protected tools.jackson.databind.ObjectWriter customizeWriter(tools.jackson.databind.ObjectWriter writer, @Nullable tools.jackson.databind.JavaType javaType, @Nullable MediaType contentType)
      サブクラスはこのメソッドを使用して、値の書き込みに使用される ObjectWriter をカスタマイズできます。
      パラメーター:
      writer - カスタマイズするライターインスタンス
      javaType - 書き込む要素値の型
      contentType - 選択したメディア型
      戻り値:
      カスタマイズされた ObjectWriter
    • writePrefix

      protected void writePrefix(tools.jackson.core.JsonGenerator generator, ObjectSE object)
      メインコンテンツの前にプレフィックスを書きます。
      パラメーター:
      generator - コンテンツの書き込みに使用するジェネレーター。
      object - 出力メッセージに書き込むオブジェクト
    • writeSuffix

      protected void writeSuffix(tools.jackson.core.JsonGenerator generator, ObjectSE object)
      メインコンテンツの後にサフィックスを記述します。
      パラメーター:
      generator - コンテンツの書き込みに使用するジェネレーター。
      object - 出力メッセージに書き込むオブジェクト
    • getJavaType

      protected tools.jackson.databind.JavaType getJavaType(TypeSE type, @Nullable ClassSE<?> contextClass)
      指定された型とコンテキストクラスの Jackson JavaType を返します。
      パラメーター:
      type - Jackson JavaType を返す汎用型
      contextClass - ターゲット型のコンテキストクラス。たとえば、ターゲット型がメソッドシグネチャーに表示されるクラス (null にすることができます)
      戻り値:
      Jackson JavaType
    • getJsonEncoding

      protected tools.jackson.core.JsonEncoding getJsonEncoding(@Nullable MediaType contentType)
      指定されたコンテンツ型に使用する JSON エンコーディングを決定します。
      パラメーター:
      contentType - 呼び出し元によってリクエストされたメディア型
      戻り値:
      使用する JSON エンコード (非 null)
    • supportsRepeatableWrites

      protected boolean supportsRepeatableWrites(ObjectSE o)
      クラスからコピーされた説明: AbstractHttpMessageConverter
      このメッセージコンバーターが指定されたオブジェクトを複数回書き込むことができるかどうかを示します。

      デフォルトの実装は false を返します。

      オーバーライド:
      クラス AbstractHttpMessageConverter<ObjectSE>supportsRepeatableWrites 
      パラメーター:
      o - オブジェクト t
      戻り値:
       t を繰り返し書き込める場合は true。それ以外の場合は false