DynamicIndexCallback インターフェース

DynamicIndexCallback インターフェースは、作動可能、エラー、または破棄という索引付けイベントの発生時に、そのことを通知してもらう必要のあるアプリケーションのために設計されています。 DynamicIndexCallback は、BackingMap の createDynamicIndex メソッドのオプション・パラメーターです。 アプリケーションは、索引付けイベントの通知を受け取ると、登録済みの DynamicIndexCallback インスタンスを使用して、ビジネス・ロジックを実行することができます。

索引付けイベント

例えば、作動可能イベントは、索引を使用する準備が整ったことを意味します。 アプリケーションは、このイベントの通知を受け取ると、アプリケーション索引インターフェースのインスタンスの取得および使用を試行することができます。

例: DynamicIndexCallback インターフェースの使用

BackingMap personBackingMap = ivObjectGrid.getMap("person");
    DynamicIndexCallback callback = new DynamicIndexCallbackImpl();
    personBackingMap.createDynamicIndex("CODE", true, "employeeCode", callback);


    class DynamicIndexCallbackImpl implements DynamicIndexCallback {
        public DynamicIndexCallbackImpl() {
        }

        public void ready(String indexName) {
            System.out.println("DynamicIndexCallbackImpl.ready() -> indexName = " + indexName);

            // Simulate what an application would do when notified that the index is ready.
            // Normally, the application would wait until the ready state is reached and then proceed
            // with any index usage logic.
            if("CODE".equals(indexName)) {
                ObjectGridManager ogManager = ObjectGridManagerFactory.getObjectGridManager();
                ObjectGrid og = ogManager.createObjectGrid( "grid" );
                Session session = og.getSession();
                ObjectMap map = session.getMap("person");
                MapIndex codeIndex = (MapIndex) map.getIndex("CODE");
                Iterator iter = codeIndex.findAll(codeValue);
		// Close the session (optional in Version 7.1.1 and later) for improved performance
		session.close();
					}
        }

        public void error(String indexName, Throwable t) {
            System.out.println("DynamicIndexCallbackImpl.error() -> indexName = " + indexName);
            t.printStackTrace();
        }

        public void destroy(String indexName) {
            System.out.println("DynamicIndexCallbackImpl.destroy() -> indexName = " + indexName);
        }
    }