Package org.infinispan.query.indexmanager

Source Code of org.infinispan.query.indexmanager.IndexUpdateStreamCommand

package org.infinispan.query.indexmanager;

import org.hibernate.search.backend.LuceneWork;
import org.hibernate.search.exception.SearchException;
import org.hibernate.search.indexes.spi.IndexManager;
import org.infinispan.context.InvocationContext;
import org.infinispan.query.impl.ModuleCommandIds;

import java.util.List;

/**
* Execute a stream operation
*
* @author gustavonalle
* @since 7.0
*/
public class IndexUpdateStreamCommand extends AbstractUpdateCommand {

   public static final byte COMMAND_ID = ModuleCommandIds.UPDATE_INDEX_STREAM;

   public IndexUpdateStreamCommand(String cacheName) {
      super(cacheName);
   }

   @Override
   public Object perform(InvocationContext ctx) throws Throwable {
      if (queryInterceptor.isStopping()) {
         throw log.cacheIsStoppingNoCommandAllowed(cacheName);
      }
      IndexManager indexManager = searchFactory.getIndexManagerHolder().getIndexManager(indexName);
      if (indexManager == null) {
         throw new SearchException("Unknown index referenced : " + indexName);
      }
      List<LuceneWork> luceneWorks = indexManager.getSerializer().toLuceneWorks(this.serializedModel);
      LuceneWork workToApply = transformKeyToStrings(luceneWorks.iterator().next());
      indexManager.performStreamOperation(workToApply, null, true);
      return Boolean.TRUE;
   }

   @Override
   public byte getCommandId() {
      return COMMAND_ID;
   }

}
TOP

Related Classes of org.infinispan.query.indexmanager.IndexUpdateStreamCommand

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.