BotState 类

  • java.lang.Object
    • com.microsoft.bot.builder.BotState

实现

public abstract class BotState
implements PropertyManager

定义状态管理对象,并自动读取和写入存储层的关联状态属性。

每个状态管理对象定义存储层的范围。 状态属性是在状态管理范围内创建的,Bot Framework 定义了以下范围: ConversationStateUserStatePrivateConversationState。 可以为机器人定义其他范围。

构造函数摘要

构造函数 说明
BotState(Storage withStorage, String withContextServiceKey)

初始化 BotState 类的新实例。

方法摘要

修饰符和类型 方法和描述
StatePropertyAccessor<T> <T>createProperty(String name)

在机器人状态的范围内创建一个命名状态属性,并返回该属性的访问器。

protected java.util.concurrent.CompletableFuture<T> <T>getPropertyValue(TurnContext turnContext, String propertyName)

从此机器人状态的状态缓存中获取属性的值。

java.util.concurrent.CompletableFuture<java.lang.Void> clearState(TurnContext turnContext)

清除此机器人状态的状态缓存。

java.util.concurrent.CompletableFuture<java.lang.Void> delete(TurnContext turnContext)

删除当前存储在此状态范围中的任何状态。

protected java.util.concurrent.CompletableFuture<java.lang.Void> deletePropertyValue(TurnContext turnContext, String propertyName)

从此机器人状态的状态缓存中删除属性。

com.fasterxml.jackson.databind.JsonNode get(TurnContext turnContext)

从轮次上下文中获取此机器人状态的原始缓存数据的副本。

CachedBotState getCachedState(TurnContext turnContext)

获取缓存的机器人状态实例,该实例包装轮次上下文中此机器人状态的原始缓存数据。

abstract java.lang.String getStorageKey(TurnContext turnContext)

在派生类中重写时,获取在存储中读取和写入状态时要使用的密钥。

java.util.concurrent.CompletableFuture<java.lang.Void> load(TurnContext turnContext)

从存储层填充此机器人状态的状态缓存。

java.util.concurrent.CompletableFuture<java.lang.Void> load(TurnContext turnContext, boolean force)

读取当前状态对象,并将其缓存在此轮次的上下文对象中。

java.util.concurrent.CompletableFuture<java.lang.Void> saveChanges(TurnContext turnContext)

将此机器人状态的状态缓存写入存储层。

java.util.concurrent.CompletableFuture<java.lang.Void> saveChanges(TurnContext turnContext, boolean force)

将此机器人状态的状态缓存写入存储层。

protected java.util.concurrent.CompletableFuture<java.lang.Void> setPropertyValue(TurnContext turnContext, String propertyName, Object value)

设置此机器人状态的状态缓存中属性的值。

方法继承自 java.lang.Object

java.lang.Object.clone java.lang.Object.equals java.lang.Object.finalize java.lang.Object.getClass java.lang.Object.hashCode java.lang.Object.notify java.lang.Object.notifyAll java.lang.Object.toString java.lang.Object.wait java.lang.Object.wait java.lang.Object.wait

构造函数详细信息

BotState

public BotState(Storage withStorage, String withContextServiceKey)

初始化 BotState 类的新实例。

Parameters:

withStorage - 要使用的存储提供程序。
withContextServiceKey - 此 BotState 的状态缓存的键。

Throws:

java.lang.IllegalArgumentException - Null 存储或空服务密钥参数。

方法详细信息

<T>createProperty

public StatePropertyAccessor createProperty(String name)

在 BotState 的范围内创建命名状态属性,并返回该属性的访问器。

Parameters:

name - 属性的名称。

Returns:

Throws:

java.lang.IllegalArgumentException - 空名称

<T>getPropertyValue

protected CompletableFuture getPropertyValue(TurnContext turnContext, String propertyName)

从此 BotState 的状态缓存中获取属性的值。

Parameters:

turnContext - 此轮次的上下文对象。
propertyName - 要获取的属性的名称。

Returns:

表示排队等待执行的工作的任务。 如果任务成功,则结果包含 属性值。

clearState

public CompletableFuture clearState(TurnContext turnContext)

清除此 BotState 的状态缓存。

此方法清除轮次上下文中的状态缓存。 调用 saveChanges(TurnContext turnContext, boolean force) 以将此更改保留在存储层中。

Parameters:

turnContext - 此轮次的上下文对象。

Returns:

表示排队等待执行的工作的任务。

delete

public CompletableFuture delete(TurnContext turnContext)

删除当前存储在此状态范围中的任何状态。

Parameters:

turnContext - 此轮次的上下文对象。

Returns:

表示排队等待执行的工作的任务。

deletePropertyValue

protected CompletableFuture deletePropertyValue(TurnContext turnContext, String propertyName)

从此 BotState 的状态缓存中删除属性。

Parameters:

turnContext - 此轮次的上下文对象。
propertyName - 要删除的属性的名称。

Returns:

表示排队等待执行的工作的任务。

get

public JsonNode get(TurnContext turnContext)

从轮次上下文中获取此 BotState 的原始缓存数据的副本。

Parameters:

turnContext - 此轮次的上下文对象。

Returns:

缓存状态的 JSON 表示形式。

getCachedState

public BotState.CachedBotState getCachedState(TurnContext turnContext)

获取缓存的机器人状态实例,该实例从轮次上下文包装此 BotState 的原始缓存数据。

Parameters:

turnContext - 此轮次的上下文对象。

Returns:

缓存的机器人状态实例。

getStorageKey

public abstract String getStorageKey(TurnContext turnContext)

在派生类中重写时,获取在存储中读取和写入状态时要使用的密钥。

Parameters:

turnContext - 此轮次的上下文对象。

Returns:

存储密钥。

Throws:

java.lang.IllegalArgumentException - TurnContext 不包含所有必需的数据。

load

public CompletableFuture load(TurnContext turnContext)

从存储层填充此 BotState 的状态缓存。

Parameters:

turnContext - 此轮次的上下文对象。

Returns:

表示排队等待执行的工作的任务。

load

public CompletableFuture load(TurnContext turnContext, boolean force)

读取当前状态对象,并将其缓存在此轮次的上下文对象中。

Parameters:

turnContext - 此轮次的上下文对象。
force - 如果为 true,则覆盖任何现有状态缓存;如果为 false,则仅当缓存尚不存在时才从存储加载状态。

Returns:

表示排队等待执行的工作的任务。

saveChanges

public CompletableFuture saveChanges(TurnContext turnContext)

将此 BotState 的状态缓存写入存储层。

Parameters:

turnContext - 此轮次的上下文对象。

Returns:

表示排队等待执行的工作的任务。

saveChanges

public CompletableFuture saveChanges(TurnContext turnContext, boolean force)

将此 BotState 的状态缓存写入存储层。

Parameters:

turnContext - 此轮次的上下文对象。
force - 若要将状态缓存保存到存储,则为 true;如果为 false,则仅在缓存中的属性已更改时将状态保存到存储。

Returns:

表示排队等待执行的工作的任务。

setPropertyValue

protected CompletableFuture setPropertyValue(TurnContext turnContext, String propertyName, Object value)

设置此 BotState 的状态缓存中属性的值。

Parameters:

turnContext - 此轮次的上下文对象。
propertyName - 要设置的属性的名称。
value - 要对 属性设置的值。

Returns:

表示排队等待执行的工作的任务。

适用于