docs: private static Class< ? > getReaderSuperClassFor(final Class< ? > fieldType) {
          Class< ? > ret = null;
          if ( fieldType.isPrimitive() ) {
              if ( fieldType == char.class ) {
                  ret = BaseCharClassFieldReader.class;
              } else if ( fieldType == byte.class ) {
                  ret = BaseByteClassFieldReader.class;
              } else if ( fieldType == short.class ) {
                  ret = BaseShortClassFieldReader.class;
              } else if ( fieldType == int.class ) {
                  ret = BaseIntClassFieldReader.class;
              } else if ( fieldType == long.class ) {
                  ret = BaseLongClassFieldReader.class;
              } else if ( fieldType == float.class ) {
                  ret = BaseFloatClassFieldReader.class;
              } else if ( fieldType == double.class ) {
                  ret = BaseDoubleClassFieldReader.class;
              } else if ( fieldType == boolean.class ) {
                  ret = BaseBooleanClassFieldReader.class;
              }
          } else if ( Number.class.isAssignableFrom( fieldType ) ) {
              ret = BaseNumberClassFieldReader.class;
          } else if ( Date.class.isAssignableFrom( fieldType ) ) {
              ret = BaseDateClassFieldReader.class;
          } else if ( LocalDate.class.isAssignableFrom( fieldType ) ) {
              ret = BaseLocalDateClassFieldReader.class;
          } else if ( LocalDateTime.class.isAssignableFrom( fieldType ) ) {
              ret = BaseLocalDateTimeClassFieldReader.class;
          } else if ( ZonedDateTime.class.isAssignableFrom( fieldType ) ) {
              ret = BaseZonedDateTimeClassFieldReader.class;
          } else {
              ret = BaseObjectClassFieldReader.class;
          }
          return ret;
      }