Interface DynamicIndexCallback

A interface DynamicIndexCallback foi projetada para aplicativos que desejam obter notificações nos eventos de indexação de ready, error ou destroy. O DynamicIndexCallback é um parâmetro opcional para o método createDynamicIndex do BackingMap. Com uma instância DynamicIndexCallback registrada, os aplicativos podem executar a lógica de negócios ao receber notificação de um evento de indexação.

Eventos de Indexação

Por exemplo, o evento ready significa que o índice está pronto para utilização. Quando uma notificação para este evento for recebida, um aplicativo poderá tentar recuperar a instância da interface do índice do aplicativo e utilizá-la.

Exemplo: Usando a Interface EntityIndexCallback

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); } }