void defineUnreadType(Class<?> aClass, UnreadPdxType unreadPdxType) {
    int typeId = unreadPdxType.getTypeId();
    // even though localTypeIdMaps is copy on write we need to sync it
    // during write to safely update the nested map.
    // We make the nested map copy-on-write so that readers don't need to sync.
    synchronized (localTypeIdMaps) {
      Map<Integer, UnreadPdxType> map = localTypeIdMaps.get(aClass);
      if (map == null) {
        map = new CopyOnWriteHashMap<>();
        localTypeIdMaps.put(aClass, map);
      }
      map.put(typeId, unreadPdxType);
    }
  }
Returns the local type that should be used for deserializing blobs of the given typeId for the
given local class. Returns null if no such local type exists.
geode-core/src/main/java/org/apache/geode/pdx/internal/TypeRegistry.java