BotState 類別

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

實作

public abstract class BotState
implements PropertyManager

定義狀態管理物件,並將相關聯狀態屬性的讀取和寫入自動化至儲存層。

每個狀態管理物件都會定義儲存層的範圍。 狀態屬性是在狀態管理範圍內建立,Bot Framework 會定義這些範圍:ConversationStateUserStatePrivateConversationState。 您可以定義 Bot 的其他範圍。

建構函式摘要

建構函式 Description
BotState(Storage withStorage, String withContextServiceKey)

初始化 BotState 類別的新實例。

方法摘要

修飾詞與類型 方法與描述
StatePropertyAccessor<T> <T>createProperty(String name)

在 BotState 的範圍內建立具名狀態屬性,並傳回 屬性的存取子。

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

從這個 BotState 的狀態快取中取得屬性的值。

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

清除此 Bot 的狀態快取狀態。

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

刪除目前儲存在此狀態範圍中的任何狀態。

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

從這個 BotState 的狀態快取中刪除屬性。

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

從回合內容取得此 BotState 的原始快取數據複本。

CachedBotState getCachedState(TurnContext turnContext)

取得快取的 Bot 狀態實例,這個實例會從回合內容包裝此 Bot 的原始快取數據狀態。

abstract java.lang.String getStorageKey(TurnContext turnContext)

在衍生類別中覆寫時,取得在記憶體讀取和寫入狀態時要使用的密鑰。

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

從儲存層填入此 Bot 的狀態快取狀態。

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

讀取目前狀態物件,並在這個回合的內容物件中快取它。

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

將此 Bot 的狀態快取狀態寫入儲存層。

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

將此 Bot 的狀態快取狀態寫入儲存層。

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

設定這個 BotState 狀態快取中屬性的值。

方法繼承來源 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 類別的新實例。

參數:

withStorage - 要使用的記憶體提供者。
withContextServiceKey - 這個 BotState 狀態快取的索引鍵。

擲回:

java.lang.IllegalArgumentException - Null 記憶體或空的服務金鑰自變數。

方法詳細資料

<T>createProperty

public StatePropertyAccessor createProperty(String name)

在 BotState 的範圍內建立具名狀態屬性,並傳回 屬性的存取子。

參數:

name - 屬性的名稱。

傳回:

擲回:

java.lang.IllegalArgumentException - 空白名稱

<T>getPropertyValue

protected CompletableFuture getPropertyValue(TurnContext turnContext, String propertyName)

從這個 BotState 的狀態快取中取得屬性的值。

參數:

turnContext - 這個回合的內容物件。
propertyName - 要取得的屬性名稱。

傳回:

工作,表示要執行的工作佇列。 如果工作成功,結果會包含 屬性值。

clearState

public CompletableFuture clearState(TurnContext turnContext)

清除此 BotState 的狀態快取。

這個方法會在回合內容中清除狀態快取。 呼叫 saveChanges(TurnContext turnContext, boolean force),以在儲存層中保存此變更。

參數:

turnContext - 這個回合的內容物件。

傳回:

工作,表示要執行的工作佇列。

delete

public CompletableFuture delete(TurnContext turnContext)

刪除目前儲存在此狀態範圍中的任何狀態。

參數:

turnContext - 這個回合的內容物件。

傳回:

工作,表示要執行的工作佇列。

deletePropertyValue

protected CompletableFuture deletePropertyValue(TurnContext turnContext, String propertyName)

從這個 BotState 的狀態快取中刪除屬性。

參數:

turnContext - 這個回合的內容物件。
propertyName - 要刪除的屬性名稱。

傳回:

工作,表示要執行的工作佇列。

get

public JsonNode get(TurnContext turnContext)

從回合內容取得這個 BotState 的原始快取數據複本。

參數:

turnContext - 這個回合的內容物件。

傳回:

快取狀態的 JSON 表示法。

getCachedState

public BotState.CachedBotState getCachedState(TurnContext turnContext)

取得快取的 Bot 狀態實例,這個實例會從回合內容包裝此 BotState 的原始快取數據。

參數:

turnContext - 這個回合的內容物件。

傳回:

快取的 Bot 狀態實例。

getStorageKey

public abstract String getStorageKey(TurnContext turnContext)

在衍生類別中覆寫時,取得在記憶體讀取和寫入狀態時要使用的密鑰。

參數:

turnContext - 這個回合的內容物件。

傳回:

記憶體金鑰。

擲回:

java.lang.IllegalArgumentException - TurnContext 不包含所有必要的數據。

load

public CompletableFuture load(TurnContext turnContext)

從儲存層填入此 BotState 的狀態快取。

參數:

turnContext - 這個回合的內容物件。

傳回:

工作,表示要執行的工作佇列。

load

public CompletableFuture load(TurnContext turnContext, boolean force)

讀取目前狀態物件,並在這個回合的內容物件中快取它。

參數:

turnContext - 這個回合的內容物件。
force - true 表示覆寫任何現有的狀態快取;或 false 表示只有在快取不存在時,才會從記憶體載入狀態。

傳回:

工作,表示要執行的工作佇列。

saveChanges

public CompletableFuture saveChanges(TurnContext turnContext)

將此 BotState 的狀態快取寫入儲存層。

參數:

turnContext - 這個回合的內容物件。

傳回:

工作,表示要執行的工作佇列。

saveChanges

public CompletableFuture saveChanges(TurnContext turnContext, boolean force)

將此 BotState 的狀態快取寫入儲存層。

參數:

turnContext - 這個回合的內容物件。
force - true 表示將狀態快取儲存至記憶體;或 false 只有在快取中的屬性已變更時,才會將狀態儲存至記憶體。

傳回:

工作,表示要執行的工作佇列。

setPropertyValue

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

設定這個 BotState 狀態快取中屬性的值。

參數:

turnContext - 這個回合的內容物件。
propertyName - 要設定的屬性名稱。
value - 在屬性上設定的值。

傳回:

工作,表示要執行的工作佇列。

適用於