Class EnumReader


  • public class EnumReader
    extends ValueReader
    Reader for Enum values: needed because we need a simple Map for efficient conversion from id (gotten with Enum.toString() to value.

    In future we could consider alternatively allowing use of Enum.name() for id.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.Object[] _byIndex  
      protected java.util.Map<java.lang.String,​java.lang.Object> _byName  
    • Constructor Summary

      Constructors 
      Constructor Description
      EnumReader​(java.lang.Class<?> enumType, java.lang.Object[] byIndex, java.util.Map<java.lang.String,​java.lang.Object> byName)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object read​(JSONReader reader, com.fasterxml.jackson.core.JsonParser p)
      Method called to deserialize value of type supported by this reader, using given parser.
      java.lang.Object readNext​(JSONReader reader, com.fasterxml.jackson.core.JsonParser p)
      Method called to deserialize value of type supported by this reader, using given parser.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • _byIndex

        protected final java.lang.Object[] _byIndex
      • _byName

        protected final java.util.Map<java.lang.String,​java.lang.Object> _byName
    • Constructor Detail

      • EnumReader

        public EnumReader​(java.lang.Class<?> enumType,
                          java.lang.Object[] byIndex,
                          java.util.Map<java.lang.String,​java.lang.Object> byName)
    • Method Detail

      • readNext

        public java.lang.Object readNext​(JSONReader reader,
                                         com.fasterxml.jackson.core.JsonParser p)
                                  throws java.io.IOException
        Description copied from class: ValueReader
        Method called to deserialize value of type supported by this reader, using given parser. Parser is not yet positioned to the (first) token of the value to read and needs to be advanced.

        Default implementation simply calls `p.nextToken()` first, then calls {#link ValueReader.read(JSONReader, JsonParser), but some implementations may decide to implement this differently to use (slightly) more efficient accessor in JsonParser, like JsonParser.nextIntValue(int).

        Overrides:
        readNext in class ValueReader
        Parameters:
        reader - Context object that allows calling other read methods for contained values of different types (for example for collection readers).
        p - Underlying parser used for reading decoded token stream
        Throws:
        java.io.IOException
      • read

        public java.lang.Object read​(JSONReader reader,
                                     com.fasterxml.jackson.core.JsonParser p)
                              throws java.io.IOException
        Description copied from class: ValueReader
        Method called to deserialize value of type supported by this reader, using given parser. Parser is already positioned to the (first) token of the value to read.
        Specified by:
        read in class ValueReader
        Parameters:
        reader - Context object that allows calling other read methods for contained values of different types (for example for collection readers).
        p - Underlying parser used for reading decoded token stream
        Throws:
        java.io.IOException