Class MemoryStorage

java.lang.Object
cn.nukkit.entity.ai.memory.MemoryStorage
All Implemented Interfaces:
IMemoryStorage

@PowerNukkitXOnly @Since("1.6.0.0-PNX") public class MemoryStorage extends Object implements IMemoryStorage
记忆存储器的标准实现,每种记忆类型只能存一个记忆。

The standard implementation of IMemoryStorage, where only one memory can be stored for each memory class type.

  • Field Details

  • Constructor Details

    • MemoryStorage

      public MemoryStorage()
  • Method Details

    • put

      public void put(IMemory<?> memory)
      写入记忆到memoryMap.

      Write memory to memoryMap.

      Specified by:
      put in interface IMemoryStorage
      Parameters:
      memory - 记忆
    • clear

      public <T extends IMemory<?>> void clear(Class<T> memoryClazz)
      Description copied from interface: IMemoryStorage
      删除指定类型记忆
      Specified by:
      clear in interface IMemoryStorage
      Parameters:
      memoryClazz - 记忆类型
    • get

      public <T extends IMemory<?>, R extends Class<T>> T get(R memoryClazz)
      从记忆存储器中得到记忆,注意如果memoryMap中不存在该记忆,那么会通过反射创建一个.

      Get the memory from the memory store, note that if the memory does not exist in memoryMap, then a reflection will create a instance.

      Specified by:
      get in interface IMemoryStorage
      Parameters:
      memoryClazz - 记忆Class对象
      memory Class objects
      Returns:
      IMemoryStorage
    • isEmpty

      public <T extends IMemory<?>> boolean isEmpty(Class<T> memoryClazz)
      Specified by:
      isEmpty in interface IMemoryStorage
      Parameters:
      memoryClazz - 记忆类型
      Returns:
      boolean 该记忆类型对应的数据是否为null
    • notEmpty

      public <T extends IMemory<?>> boolean notEmpty(Class<T> memoryClazz)
      Specified by:
      notEmpty in interface IMemoryStorage
      Parameters:
      memoryClazz - 记忆类型
      Returns:
      boolean 该记忆类型对应的数据非null
    • checkData

      public <R, T extends IMemory<R>> boolean checkData(Class<T> memoryClazz, R data)
      Description copied from interface: IMemoryStorage
      检查数据 检查记忆中的数据是否与data相同

      Check if the data in memoryClazz is the same as data

      Specified by:
      checkData in interface IMemoryStorage
      Parameters:
      memoryClazz - 记忆类型
      data - 数据
    • setData

      public <R, T extends IMemory<R>> void setData(Class<T> memoryClazz, R data)
      Description copied from interface: IMemoryStorage
      设置指定记忆类型的记忆数据
      Specified by:
      setData in interface IMemoryStorage
      Parameters:
      memoryClazz - 记忆类型
      data - 数据
    • getData

      public <R, T extends IMemory<R>> R getData(Class<T> memoryClazz)
      Description copied from interface: IMemoryStorage
      获取指定记忆类型的记忆数据
      Specified by:
      getData in interface IMemoryStorage
      Parameters:
      memoryClazz - 记忆类型
    • getMemoryMap

      public ConcurrentHashMap<Class<? extends IMemory<?>>,IMemory<?>> getMemoryMap()