Session クラス
名前空間
使用方法
キャッシュキー形式
次の表は、put、get、contains など、このクラスの一部のメソッドで取るキーパラメータの形式の一覧です。
| キー形式 | 説明 |
|---|---|
| namespace.partition.key | 完全修飾されたキー名。 |
| key | namespace.partition プレフィックスが省略された場合、デフォルトとしてマークされたパーティションを参照します。 |
| local.partition.key | 組織に名前空間が定義されていない場合、local プレフィックスを使用して組織の名前空間を参照します。組織に名前空間が定義されている場合も、local プレフィックスはその組織の名前空間を参照します。 |
例
このクラスは、サンプル Visualforce ページのコントローラです (後続のコードサンプルを参照)。Visualforce ページが action 属性によって読み込まれたときに呼び出す init() メソッドによって、キャッシュ値は最初にキャッシュに追加されます。キャッシュキーには、namespace.partition プレフィックスは含まれません。キーはすべて組織のデフォルトパーティションを参照します。Visualforce ページでは、myPartition という名前のパーティションが想定されています。このサンプルを実行するには、組織に myPartition という名前のデフォルトパーティションを作成します。
Visualforce ページには 4 つの出力コンポーネントが含まれます。最初の 3 つのコンポーネントは、コントローラの get メソッドをコールし、これらのメソッドがキャッシュから、日付、MyData 内部クラスに基づくデータ、カウンタの各値を返します。次の出力コンポーネントは $Cache.Session グローバル変数を使用し��� output という名前のキーのキャッシュ文字列値を取得します。次に、$Cache.Session グローバル変数を Visualforce ページで再度使用して、List 型のキャッシュ値の要素を反復処理します。リストのサイズも返します。
Visualforce ページには 2 つのボタンも含まれます。[Rerender (再表示)] ボタンはコントローラの go() メソッドを呼び出します。このメソッドは、キャッシュのカウンタとカスタムデータの値を増やします。[Rerender (再表示)] をクリックすると、毎回 2 つのカウンタが 1 ずつ増えます。go() メソッドは、キャッシュからこれらのカウンタの値を取得し、その値を 1 ずつ増やしてキャッシュに再度保存します。
[Remove (削除)] ボタンは、キャッシュから日時値を (キー datetime で) 削除します。その結果、ページ上の [Cached datetime: (キャッシュ日時:)] の横にある値がクリアされます。
これは、SessionCacheController クラスに対応する Visualforce ページです。
これは [Rerender (再表示)] ボタンを 2 回クリックした後のページの出力です。このサンプルを実行する前に counter という名前のキーがすでにキャッシュにある場合は、カウンタ値が異なる可能性があります。
Session のメソッド
Session のメソッドは次のとおりです。すべてのメソッドが静的です。
get(key)
署名
public static Object get(String key)
戻り値
型: Object
キャッシュ値が汎用オブジェクト種別として返されます。戻り値を適切な型にキャストしてください。
使用方法
Cache.Session.get() はオブジェクトを返すため、戻り値を使いやすいように特定の型にキャストすることをお勧めします。
Cache.Session.get() コールで参照されたキーが見つからない場合、null が返されます。
get(cacheBuilder, key)
署名
public static Object get(System.Type cacheBuilder, String key)
パラメータ
- cacheBuilder
- 型: System.Type
- CacheBuilder インターフェースを実装する Apex クラス。
- key
- 型: String
- cacheBuilder パラメータに対応するクラス名と組み合せてキャッシュ値を一意に識別する文字列値 (大文字と小文字を区別)。
戻り値
型: Object
キャッシュ値が汎用オブジェクト種別として返されます。戻り値を適切な型にキャストしてください。
使用方法
Cache.Session.get(cacheBuilder, key) はオブジェクトを返すため、戻り値を使いやすいように特定の型にキャストしてください。
getPartition(partitionName)
署名
public static cache.SessionPartition getPartition(String partitionName)
パラメータ
- partitionName
- 型: String
- 名前空間で修飾されたパーティション名 (namespace.partition など)。
戻り値
例
セッションパーティションを取得したら、パーティションのキャッシュ値を追加および取得できます。
isAvailable()
put(key, value, visibility)
署名
public static void put(String key, Object value, Cache.Visibility visibility)
パラメータ
- key
- 型: String
- キャッシュする値を一意に識別する文字列。キー名の形式についての詳細は、「使用方法」を参照してください。
- value
- 型: Object
- キャッシュに保存する値。キャッシュ値は逐次化可能にする必要があります。
- visibility
- 型: Cache.Visibility
- キャッシュ値を使用できるのが、同じ名前空間内で実行される Apex コードのみか、任意の名前空間から実行される Apex コードかを示します。
戻り値
型: void
put(key, value, ttlSecs)
署名
public static void put(String key, Object value, Integer ttlSecs)
パラメータ
戻り値
型: void
put(key, value, ttlSecs, visibility, immutable)
署名
public static void put(String key, Object value, Integer ttlSecs, cache.Visibility visibility, Boolean immutable)
パラメータ
- key
- 型: String
- キャッシュする値を一意に識別する文字列。キー名の形式についての詳細は、「使用方法」を参照してください。
- value
- 型: Object
- キャッシュに保存する値。キャッシュ値は逐次化可能にする必要があります。
- ttlSecs
- 型: Integer
- キャッシュ値をセッションキャッシュに保持しておく時間 (秒数)。Salesforce セッションが期限切れにならない限り、キャッシュ値はキャッシュ内に保持されます。最大値は 28,800 秒 (8 時間) です。最小値は 300 秒 (5 分) です。
- visibility
- 型: Cache.Visibility
- キャッシュ値を使用できるのが、同じ名前空間内で実行される Apex コードのみか、任意の名前空間から実行される Apex コードかを示します。
- immutable
- 型: Boolean
- キャッシュ値を別の名前空間によって上書きできるか (false)、否か (true) を示します。
戻り値
型: void
remove(cacheBuilder, key)
署名
public static Boolean remove(System.Type cacheBuilder, String key)
パラメータ
- cacheBuilder
- 型: System.Type
- CacheBuilder インターフェースを実装する Apex クラス。
- key
- 型: String
- cacheBuilder パラメータに対応するクラス名と組み合せてキャッシュ値を一意に識別する文字列値 (大文字と小文字を区別)。