All Implemented Interfaces:
JsonFormatVisitable, SchemaAware, ContextualSerializer, Serializable

public class InetAddressSerializer extends StdScalarSerializer<InetAddress> implements ContextualSerializer
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.

See Also:
  • Field Details

    • _asNumeric

      protected final boolean _asNumeric
      Since:
      2.9
  • Constructor Details

    • InetAddressSerializer

      public InetAddressSerializer()
    • InetAddressSerializer

      public InetAddressSerializer(boolean asNumeric)
      Since:
      2.9
  • Method Details

    • createContextual

      public JsonSerializer<?> createContextual(SerializerProvider serializers, BeanProperty property) throws JsonMappingException
      Description copied from interface: ContextualSerializer
      Method called to see if a different (or differently configured) serializer is needed to serialize values of specified property. 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.
      Specified by:
      createContextual in interface ContextualSerializer
      Parameters:
      serializers - Serializer provider to use for accessing config, other serializers
      property - Method or field that represents the property (and is used to access value to serialize). Should be available; but there may be cases where caller cannot provide it and null is passed instead (in which case impls usually pass 'this' serializer as is)
      Returns:
      Serializer to use for serializing values of specified property; may be this instance or a new instance.
      Throws:
      JsonMappingException
    • serialize

      public void serialize(InetAddress value, JsonGenerator g, SerializerProvider provider) throws IOException
      Description copied from class: JsonSerializer
      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 - Provider that can be used to get serializers for serializing Objects value contains, if any.
      Throws:
      IOException
    • serializeWithType

      public void serializeWithType(InetAddress value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer) throws IOException
      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
      provider - Provider that can be used to get serializers for serializing Objects value contains, if any.
      typeSer - Type serializer to use for including type information
      Throws:
      IOException