Class SimpleObjectIdResolver

java.lang.Object
cloud.opencode.base.json.identity.SimpleObjectIdResolver
All Implemented Interfaces:
ObjectIdResolver

public class SimpleObjectIdResolver extends Object implements ObjectIdResolver
Simple Object ID Resolver - Default HashMap-Based Identity Resolver 简单对象 ID 解析器 - 默认基于 HashMap 的身份解析器

A straightforward implementation of ObjectIdResolver that uses a HashMap to store and retrieve object identity mappings. Each deserialization context should use its own instance.

一个简单的 ObjectIdResolver 实现,使用 HashMap 存储和检索对象身份映射。每个反序列化上下文应使用自己的实例。

Example | 示例:

SimpleObjectIdResolver resolver = new SimpleObjectIdResolver();
ObjectIdGenerator.IdKey key = new ObjectIdGenerator.IdKey(User.class, Void.class, 42);
resolver.bindItem(key, user);
Object found = resolver.resolveId(key); // returns user

Security | 安全性:

  • Thread-safe: No (single-threaded deserialization context) - 线程安全: 否(单线程反序列化上下文)
  • Null-safe: Rejects null ID keys - 空值安全: 拒绝空 ID 键
Since:
JDK 25, opencode-base-json V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Constructor Details

    • SimpleObjectIdResolver

      public SimpleObjectIdResolver()
      Creates a new SimpleObjectIdResolver with an empty identity map. 创建一个具有空身份映射表的 SimpleObjectIdResolver。
  • Method Details

    • bindItem

      public void bindItem(ObjectIdGenerator.IdKey id, Object pojo)
      Description copied from interface: ObjectIdResolver
      Binds an object identity key to a POJO instance. 将对象身份键绑定到 POJO 实例。
      Specified by:
      bindItem in interface ObjectIdResolver
      Parameters:
      id - the identity key - 身份键
      pojo - the object instance to bind - 要绑定的对象实例
    • resolveId

      public Object resolveId(ObjectIdGenerator.IdKey id)
      Description copied from interface: ObjectIdResolver
      Resolves an object identity key to a previously bound POJO instance. 将对象身份键解析为之前绑定的 POJO 实例。
      Specified by:
      resolveId in interface ObjectIdResolver
      Parameters:
      id - the identity key to resolve - 要解析的身份键
      Returns:
      the bound object, or null if not found - 绑定的对象,未找到则返回 null
    • canUseFor

      public boolean canUseFor(ObjectIdResolver resolverType)
      Description copied from interface: ObjectIdResolver
      Determines whether this resolver can be used interchangeably with another. 确定此解析器是否可以与另一个互换使用。
      Specified by:
      canUseFor in interface ObjectIdResolver
      Parameters:
      resolverType - the other resolver to check compatibility with - 要检查兼容性的另一个解析器
      Returns:
      true if compatible - 如果兼容则返回 true
    • newForDeserialization

      public ObjectIdResolver newForDeserialization(Object context)
      Description copied from interface: ObjectIdResolver
      Creates a new resolver instance for a deserialization context. 为反序列化上下文创建新的解析器实例。
      Specified by:
      newForDeserialization in interface ObjectIdResolver
      Parameters:
      context - the deserialization context - 反序列化上下文
      Returns:
      a new resolver instance - 新的解析器实例