code: synchronized int id(Class<?> type) {
      Integer id = ids.get(type);
      if (id != null)
        return id;
  
      // If no ID was found for the given type, determine whether the type is an abstract type.
      Class<?> baseType = findBaseType(type, abstractFactories);
      if (baseType != null) {
        id = ids.get(baseType);
        if (id != null) {
          return id;
        }
      }
      return 0;
    }
docs: Looks up the serializable type ID for the given type.