Class AbstractUpdateCommand
- java.lang.Object
-
- org.infinispan.commands.remote.BaseRpcCommand
-
- org.infinispan.query.indexmanager.AbstractUpdateCommand
-
- All Implemented Interfaces:
org.infinispan.commands.InitializableCommand
,org.infinispan.commands.remote.CacheRpcCommand
,org.infinispan.commands.ReplicableCommand
- Direct Known Subclasses:
AffinityUpdateCommand
,IndexUpdateCommand
,IndexUpdateStreamCommand
public abstract class AbstractUpdateCommand extends org.infinispan.commands.remote.BaseRpcCommand implements org.infinispan.commands.ReplicableCommand, org.infinispan.commands.InitializableCommand
Base class for index commands.- Since:
- 7.0
- Author:
- gustavonalle
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
indexName
protected org.infinispan.query.backend.QueryInterceptor
queryInterceptor
protected org.hibernate.search.spi.SearchIntegrator
searchFactory
protected byte[]
serializedModel
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractUpdateCommand(ByteString cacheName)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description boolean
canBlock()
If true, the command is processed asynchronously in a thread provided by an Infinispan thread pool.abstract byte
getCommandId()
Used by marshallers to convert this command into an id for streaming.java.lang.String
getIndexName()
void
init(ComponentRegistry componentRegistry, boolean isRemote)
abstract java.util.concurrent.CompletableFuture<java.lang.Object>
invokeAsync()
Invoke the command asynchronously.boolean
isReturnValueExpected()
If true, a return value will be provided when performed remotely.void
readFrom(java.io.ObjectInput input)
Reads this instance from the stream written byReplicableCommand.writeTo(ObjectOutput)
.void
setIndexName(java.lang.String indexName)
protected void
setSerializedWorkList(byte[] serializedModel)
void
writeTo(java.io.ObjectOutput output)
Writes this instance to theObjectOutput
.-
Methods inherited from class org.infinispan.commands.remote.BaseRpcCommand
getCacheName, getOrigin, setOrigin, toString
-
-
-
-
Constructor Detail
-
AbstractUpdateCommand
protected AbstractUpdateCommand(ByteString cacheName)
-
-
Method Detail
-
invokeAsync
public abstract java.util.concurrent.CompletableFuture<java.lang.Object> invokeAsync() throws java.lang.Throwable
Description copied from interface:org.infinispan.commands.ReplicableCommand
Invoke the command asynchronously.This method replaces
ReplicableCommand.perform(InvocationContext)
for remote execution. The default implementation andReplicableCommand.perform(InvocationContext)
will be removed in future versions.- Specified by:
invokeAsync
in interfaceorg.infinispan.commands.ReplicableCommand
- Throws:
java.lang.Throwable
-
getCommandId
public abstract byte getCommandId()
Description copied from interface:org.infinispan.commands.ReplicableCommand
Used by marshallers to convert this command into an id for streaming.- Specified by:
getCommandId
in interfaceorg.infinispan.commands.ReplicableCommand
- Returns:
- the method id of this command. This is compatible with pre-2.2.0 MethodCall ids.
-
init
public void init(ComponentRegistry componentRegistry, boolean isRemote)
- Specified by:
init
in interfaceorg.infinispan.commands.InitializableCommand
-
writeTo
public void writeTo(java.io.ObjectOutput output) throws java.io.IOException
Description copied from interface:org.infinispan.commands.ReplicableCommand
Writes this instance to theObjectOutput
.- Specified by:
writeTo
in interfaceorg.infinispan.commands.ReplicableCommand
- Parameters:
output
- the stream.- Throws:
java.io.IOException
- if an error occurred during the I/O.
-
readFrom
public void readFrom(java.io.ObjectInput input) throws java.io.IOException
Description copied from interface:org.infinispan.commands.ReplicableCommand
Reads this instance from the stream written byReplicableCommand.writeTo(ObjectOutput)
.- Specified by:
readFrom
in interfaceorg.infinispan.commands.ReplicableCommand
- Parameters:
input
- the stream to read.- Throws:
java.io.IOException
- if an error occurred during the I/O.
-
isReturnValueExpected
public boolean isReturnValueExpected()
Description copied from interface:org.infinispan.commands.ReplicableCommand
If true, a return value will be provided when performed remotely. Otherwise, a remoteResponseGenerator
may choose to simply return null to save on marshalling costs.- Specified by:
isReturnValueExpected
in interfaceorg.infinispan.commands.ReplicableCommand
- Returns:
- true or false
-
canBlock
public boolean canBlock()
Description copied from interface:org.infinispan.commands.ReplicableCommand
If true, the command is processed asynchronously in a thread provided by an Infinispan thread pool. Otherwise, the command is processed directly in the JGroups thread. This feature allows to avoid keep a JGroups thread busy that can originate discard of messages and retransmissions. So, the commands that can block (waiting for some state, acquiring locks, etc.) should return true.- Specified by:
canBlock
in interfaceorg.infinispan.commands.ReplicableCommand
- Overrides:
canBlock
in classorg.infinispan.commands.remote.BaseRpcCommand
- Returns:
true
if the command can block/wait,false
otherwise
-
getIndexName
public java.lang.String getIndexName()
-
setSerializedWorkList
protected void setSerializedWorkList(byte[] serializedModel)
-
setIndexName
public void setIndexName(java.lang.String indexName)
-
-