code: public final int findSerializationType(Class<?> raw)
      {
          if (raw == _prevClass) {
              return _prevType;
          }
          if (raw == String.class) {
              return SER_STRING;
          }
          ClassKey k = (_key == null) ? new ClassKey(raw, _features) : _key.with(raw, _features);
          int type;
  
          Integer I = _knownSerTypes.get(k);
  
          if (I == null) {
              type = _findPOJOSerializationType(raw);
              _knownSerTypes.put(new ClassKey(raw, _features), Integer.valueOf(type));
          } else {
              type = I.intValue();
          }
          _prevType = type;
          _prevClass = raw;
          return type;
      }
docs: The main lookup method used to find type identifier for
  given raw class; including Bean types (if allowed).