FromStringDeserializer (Jackson JSON Processor)
Date: 2013-07-14

org.codehaus.jackson.map.deser.std

## Class FromStringDeserializer<T>

- java.lang.Object
- - org.codehaus.jackson.map.JsonDeserializer<T>
  - - org.codehaus.jackson.map.deser.std.StdDeserializer<T>
    - - org.codehaus.jackson.map.deser.std.StdScalarDeserializer<T>
      - - org.codehaus.jackson.map.deser.std.FromStringDeserializer<T>

- Direct Known Subclasses:
    CoreXMLDeserializers.DurationDeserializer, CoreXMLDeserializers.QNameDeserializer, DOMDeserializer, FromStringDeserializer, FromStringDeserializer.CharsetDeserializer, FromStringDeserializer.CurrencyDeserializer, FromStringDeserializer.InetAddressDeserializer, FromStringDeserializer.LocaleDeserializer, FromStringDeserializer.PatternDeserializer, FromStringDeserializer.TimeZoneDeserializer, FromStringDeserializer.URIDeserializer, FromStringDeserializer.URLDeserializer, FromStringDeserializer.UUIDDeserializer

      public abstract class FromStringDeserializer<T>
      extends StdScalarDeserializer<T>

  Base class for simple deserializer which only accept JSON String values as the source.
  Since:
    1.9 (moved from higher-level package)

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `FromStringDeserializer.CharsetDeserializer`
    `static class` | `FromStringDeserializer.CurrencyDeserializer`
    `protected static class` | `FromStringDeserializer.InetAddressDeserializer` As per [JACKSON-484], also need special handling for InetAddress...
    `protected static class` | `FromStringDeserializer.LocaleDeserializer` Kept protected as it's not meant to be extensible at this point
    `static class` | `FromStringDeserializer.PatternDeserializer`
    `protected static class` | `FromStringDeserializer.TimeZoneDeserializer` As per [JACKSON-522], also need special handling for InetAddress...
    `static class` | `FromStringDeserializer.URIDeserializer`
    `static class` | `FromStringDeserializer.URLDeserializer`
    `static class` | `FromStringDeserializer.UUIDDeserializer`

    - ### Nested classes/interfaces inherited from class org.codehaus.jackson.map.deser.std.StdDeserializer

      `StdDeserializer.BigDecimalDeserializer, StdDeserializer.BigIntegerDeserializer, StdDeserializer.BooleanDeserializer, StdDeserializer.ByteDeserializer, StdDeserializer.CharacterDeserializer, StdDeserializer.DoubleDeserializer, StdDeserializer.FloatDeserializer, StdDeserializer.IntegerDeserializer, StdDeserializer.LongDeserializer, StdDeserializer.NumberDeserializer, StdDeserializer.PrimitiveOrWrapperDeserializer<T>, StdDeserializer.ShortDeserializer, StdDeserializer.SqlDateDeserializer, StdDeserializer.StackTraceElementDeserializer`

    - ### Nested classes/interfaces inherited from class org.codehaus.jackson.map.JsonDeserializer

      `JsonDeserializer.None`

  - ### Field Summary

    - ### Fields inherited from class org.codehaus.jackson.map.deser.std.StdDeserializer

      `_valueClass`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `FromStringDeserializer(Class<?> vc)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract T` | `_deserialize(String value, DeserializationContext ctxt)`
    `protected T` | `_deserializeEmbedded(Object ob, DeserializationContext ctxt)`
    `static Iterable<FromStringDeserializer<?>>` | `all()`
    `T` | `deserialize(JsonParser jp, DeserializationContext ctxt)` Method that can be called to ask implementation to deserialize JSON content into the value type this serializer handles.

    - ### Methods inherited from class org.codehaus.jackson.map.deser.std.StdScalarDeserializer

      `deserializeWithType`

    - ### Methods inherited from class org.codehaus.jackson.map.deser.std.StdDeserializer

      `_parseBoolean, _parseBooleanFromNumber, _parseBooleanPrimitive, _parseByte, _parseDate, _parseDouble, _parseDoublePrimitive, _parseFloat, _parseFloatPrimitive, _parseInteger, _parseIntPrimitive, _parseLong, _parseLongPrimitive, _parseShort, _parseShortPrimitive, findDeserializer, getValueClass, getValueType, handleUnknownProperty, isDefaultSerializer, parseDouble, reportUnknownProperty`

    - ### Methods inherited from class org.codehaus.jackson.map.JsonDeserializer

      `deserialize, getEmptyValue, getNullValue, unwrappingDeserializer`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### FromStringDeserializer

          protected FromStringDeserializer(Class<?> vc)

  - ### Method Detail

    - #### all

          public static Iterable<FromStringDeserializer<?>> all()

    - #### deserialize

          public final T deserialize(JsonParser jp,
                      DeserializationContext ctxt)
                              throws IOException,
                                     JsonProcessingException

      Description copied from class: `JsonDeserializer`
      Method that can be called to ask implementation to deserialize JSON content into the value type this serializer handles. Returned instance is to be constructed by method itself.

      Pre-condition for this method is that the parser points to the first event that is part of value to deserializer (and which is never JSON 'null' literal, more on this below): for simple types it may be the only value; and for structured types the Object start marker. Post-condition is that the parser will point to the last event that is part of deserialized value (or in case deserialization fails, event that was not recognized or usable, which may be the same event as the one it pointed to upon call).

      Note that this method is never called for JSON null literal, and thus deserializers need (and should) not check for it.

      Specified by:
        `deserialize` in class `JsonDeserializer<T>`
      Parameters:
        `jp` - Parsed used for reading JSON content
        `ctxt` - Context that can be used to access information about this deserialization activity.
      Returns:
        Deserializer value
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### _deserialize

          protected abstract T _deserialize(String value,
                       DeserializationContext ctxt)
                                     throws IOException,
                                            JsonProcessingException

      Throws:
        `IOException`
        `JsonProcessingException`

    - #### _deserializeEmbedded

          protected T _deserializeEmbedded(Object ob,
                               DeserializationContext ctxt)
                                    throws IOException,
                                           JsonProcessingException

      Throws:
        `IOException`
        `JsonProcessingException`