Class InetAddressSerializer

All Implemented Interfaces:
JsonFormatVisitable

public class InetAddressSerializer extends StdScalarSerializer<InetAddress>
Simple serializer for InetAddress. Main complexity is with registration, since same serializer is to be used for sub-classes.

Since 2.9 allows use of JsonFormat configuration (annotation, per-type defaulting) so that if JsonFormat.Shape.NUMBER (or ARRAY) is used, will serialize as "host address" (dotted numbers) instead of simple conversion.

  • Field Details

    • _asNumeric

      protected final boolean _asNumeric
  • Constructor Details

    • InetAddressSerializer

      public InetAddressSerializer()
    • InetAddressSerializer

      public InetAddressSerializer(boolean asNumeric)
  • Method Details

    • createContextual

      public ValueSerializer<?> createContextual(SerializationContext ctxt, BeanProperty property)
      Description copied from class: ValueSerializer
      Method called to see if a different (or differently configured) serializer is needed to serialize values of specified property (or, for root values, in which case `null` is passed). Note that instance that this method is called on is typically shared one and as a result method should NOT modify this instance but rather construct and return a new instance. This instance should only be returned as-is, in case it is already suitable for use.

      Note that method is only called once per POJO property, and for the first usage as root value serializer; it is not called for every serialization, as doing that would have significant performance impact; most serializers cache contextual instances for future use.

      Overrides:
      createContextual in class ValueSerializer<InetAddress>
      Parameters:
      ctxt - Context to use for accessing config, other serializers
      property - Property (defined by one or more accessors - field or method - used for accessing logical property value) for which serializer is used to be used; or, `null` for root value (or in cases where caller does not have this information, which is handled as root value case).
      Returns:
      Serializer to use for serializing values of specified property; may be this instance or a new instance.
    • serialize

      public void serialize(InetAddress value, tools.jackson.core.JsonGenerator g, SerializationContext provider) throws tools.jackson.core.JacksonException
      Description copied from class: ValueSerializer
      Method that can be called to ask implementation to serialize values of type this serializer handles.
      Specified by:
      serialize in class StdSerializer<InetAddress>
      Parameters:
      value - Value to serialize; can not be null.
      g - Generator used to output resulting Json content
      provider - Context that can be used to get serializers for serializing Objects value contains, if any.
      Throws:
      tools.jackson.core.JacksonException
    • serializeWithType

      public void serializeWithType(InetAddress value, tools.jackson.core.JsonGenerator g, SerializationContext ctxt, TypeSerializer typeSer) throws tools.jackson.core.JacksonException
      Description copied from class: StdScalarSerializer
      Default implementation will write type prefix, call regular serialization method (since assumption is that value itself does not need JSON Array or Object start/end markers), and then write type suffix. This should work for most cases; some sub-classes may want to change this behavior.
      Overrides:
      serializeWithType in class StdScalarSerializer<InetAddress>
      Parameters:
      value - Value to serialize; can not be null.
      g - Generator used to output resulting Json content
      ctxt - Context that can be used to get serializers for serializing Objects value contains, if any.
      typeSer - Type serializer to use for including type information
      Throws:
      tools.jackson.core.JacksonException