@Override
 protected TypeIdResolver idResolver(
     final MapperConfig<?> config,
     final JavaType baseType,
     final Collection<NamedType> subtypes,
     final boolean forSer,
     final boolean forDeser) {
   if (_idType == Id.NAME) {
     return new SimpleTypeIdResolver(baseType, config.getTypeFactory());
   }
   return super.idResolver(config, baseType, subtypes, forSer, forDeser);
 }
 @Override
 protected TypeIdResolver idResolver(
     MapperConfig<?> config,
     JavaType baseType,
     Collection<NamedType> subtypes,
     boolean forSer,
     boolean forDeser) {
   if (_customIdResolver != null) {
     return _customIdResolver;
   }
   if (_idType == null) {
     throw new IllegalStateException("Can not build, 'init()' not yet called");
   }
   if (_idType == JsonTypeInfo.Id.CLASS) {
     return new WideningClassNameIdResolver(baseType, config.getTypeFactory());
   }
   return super.idResolver(
       config, baseType, subtypes, forSer,
       forDeser); // To change body of generated methods, choose Tools | Templates.
 }