public enum FunctionCacheScope extends Enum<FunctionCacheScope>
String result = FunctionCacheScope.LOCAL.execute(new FunctionCallback<String, FormulaSymtaxException, FunctionExecuteException> {
public String execute(ConcurrentMap<String, FunctionImplementation> functionCache) throws FormulaSymtaxException, FunctionExecuteException {
Function func = new Function("SUM");
FunctionImplementation funcImpl = func.getFunctionImpl(functionCache);
funcImpl.init(viewcreatorData);
FixedValue result = funcImpl.execute(function.getArguments());
return result.toString();
}
});
注意点として、異なるスコープを入れ子で呼ぶことはできません。修飾子とタイプ | クラスと説明 |
---|---|
static interface |
FunctionCacheScope.FunctionCallback<T,E1 extends Exception,E2 extends Exception>
execute(FunctionCallback)を実行する際に指定するコールバック処理の定義です。
|
static class |
FunctionCacheScope.SimpleCallback<T,E1 extends Exception,E2 extends Exception>
引数なしの
execute() メソッドを定義したコールバック処理の定義です。 |
列挙型定数と説明 |
---|
GLOBAL
staticなスコープでキャッシュを保持します。
|
LOCAL
呼び出したタイミングでスコープを生成し、その間のみ有効なキャッシュを保持します。
|
修飾子とタイプ | フィールドと説明 |
---|---|
protected ThreadLocal<Queue<FunctionCacheScope>> |
SCOPE
関数スコープの階層を管理するためのキューです。
|
修飾子とタイプ | メソッドと説明 |
---|---|
protected void |
begin()
コールバック処理の実行前に呼ばれる開始処理
|
protected void |
end()
コールバック処理の実行前に呼ばれる終了処理
|
<T,E1 extends Exception,E2 extends Exception> |
execute(FunctionCacheScope.FunctionCallback<T,E1,E2> callback)
引数に与えられたコールバック処理に、保持している関数キャッシュを渡して実行します。
|
protected abstract ConcurrentMap<String,FunctionImplementation> |
getCache()
keyに関数名、valueに関数の実装を持つ関数キャッシュ用のマップを返します。
|
static FunctionCacheScope |
valueOf(String name)
指定した名前を持つこの型の列挙型定数を返します。
|
static FunctionCacheScope[] |
values()
この列挙型の定数を含む配列を宣言されている順序で返します。
|
public static final FunctionCacheScope GLOBAL
public static final FunctionCacheScope LOCAL
protected final ThreadLocal<Queue<FunctionCacheScope>> SCOPE
public static FunctionCacheScope[] values()
for(FunctionCacheScope c: FunctionCacheScope.values()) System.out.println(c);
public static FunctionCacheScope valueOf(String name)
name
- 返される列挙型定数の名前。IllegalArgumentException
- この列挙型に、指定した名前の定数がない場合NullPointerException
- 引数がnullの場合public <T,E1 extends Exception,E2 extends Exception> T execute(FunctionCacheScope.FunctionCallback<T,E1,E2> callback) throws E1 extends Exception, E2 extends Exception
callback
- コールバック処理の実装E1 extends Exception
protected void begin()
protected void end()
protected abstract ConcurrentMap<String,FunctionImplementation> getCache()
Copyright © 2012 NTT DATA INTRAMART CORPORATION