@Override protected void doWrites( Client client, boolean isImmediate, List<State> saves, List<State> indexes, List<State> deletes) throws Exception { BulkRequestBuilder bulk = client.prepareBulk(); String indexName = getIndexName(); if (saves != null) { for (State state : saves) { bulk.add( client .prepareIndex(indexName, state.getTypeId().toString(), state.getId().toString()) .setSource(state.getSimpleValues())); } } if (deletes != null) { for (State state : deletes) { bulk.add( client.prepareDelete( indexName, state.getTypeId().toString(), state.getId().toString())); } } bulk.execute().actionGet(); }
/** * Synchronizes the given {@code plugin} with the existing one in the database if it can be found. */ private void synchronizePlugin(Plugin plugin) { State pluginState = plugin.getState(); Database database = getState().getDatabase(); pluginState.setDatabase(database); UUID typeId = pluginState.getTypeId(); Tool tool = plugin.getTool(); String internalName = plugin.getInternalName(); for (Plugin p : getAllPlugins(database)) { if (ObjectUtils.equals(typeId, p.getState().getTypeId()) && ObjectUtils.equals(tool, p.getTool()) && ObjectUtils.equals(internalName, p.getInternalName())) { pluginState.setId(p.getId()); break; } } }