Interfaz DynamicIndexCallback

La interfaz DynamicIndexCallback se ha diseñado para aplicaciones que desean recibir notificaciones de sucesos de indexación de tipo preparado, error o destruir. DynamicIndexCallback es un parámetro opcional para el método createDynamicIndex de BackingMap. Con una instancia registrada de DynamicIndexCallback, las aplicaciones pueden ejecutar lógica empresarial al recibir una notificación de un suceso de indexación.

Sucesos de indexación

Por ejemplo, el suceso preparado significa que el índice está preparado para el uso. Cuando se recibe una notificación de este suceso, una aplicación puede intentar recuperar y utilizar la instancia de la interfaz de índices de aplicación.

Ejemplo: Utilización de la interfaz 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);

            // Simular qué debe hacer la aplicación al recibir la notificación de que el índice está preparado.
            // Normalmente, la aplicación debería esperar a que se alcance el estado preparado y después proceder
            // con una lógica de uso de índices.
            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);
// Cierre la sesión (opcional en la versión 7.1.1 y posterior) para un mejor rendimiento
		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);
        }
    }