Package org.infinispan.commands.write
Class ComputeCommand
- java.lang.Object
-
- org.infinispan.commands.read.AbstractDataCommand
-
- org.infinispan.commands.write.AbstractDataWriteCommand
-
- org.infinispan.commands.write.ComputeCommand
-
- All Implemented Interfaces:
DataCommand,FlagAffectedCommand,MetadataAwareCommand,ReplicableCommand,SegmentSpecificCommand,TopologyAffectedCommand,VisitableCommand,DataWriteCommand,WriteCommand,RemoteLockCommand
public class ComputeCommand extends AbstractDataWriteCommand implements MetadataAwareCommand
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.infinispan.commands.VisitableCommand
VisitableCommand.LoadType
-
-
Field Summary
Fields Modifier and Type Field Description static intCOMMAND_ID-
Fields inherited from class org.infinispan.commands.write.AbstractDataWriteCommand
commandInvocationId
-
Fields inherited from class org.infinispan.commands.read.AbstractDataCommand
key, segment
-
-
Constructor Summary
Constructors Constructor Description ComputeCommand()ComputeCommand(Object key, BiFunction remappingBiFunction, boolean computeIfPresent, int segment, long flagsBitSet, CommandInvocationId commandInvocationId, Metadata metadata)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ObjectacceptVisitor(InvocationContext ctx, Visitor visitor)Accept a visitor, and return the result of accepting this visitor.booleanequals(Object o)voidfail()Make subsequent invocations ofWriteCommand.isSuccessful()returnfalse.bytegetCommandId()Used by marshallers to convert this command into an id for streaming.PrivateMetadatagetInternalMetadata()MetadatagetMetadata()Get metadata of this command.BiFunctiongetRemappingBiFunction()ValueMatchergetValueMatcher()inthashCode()voidinit(ComponentRegistry componentRegistry)booleanisComputeIfPresent()booleanisConditional()Certain commands only work based on a certain condition or state of the cache.booleanisReturnValueExpected()If true, a return value will be provided when performed remotely.booleanisSuccessful()Some commands may want to provide information on whether the command was successful or not.VisitableCommand.LoadTypeloadType()voidreadFrom(ObjectInput input)Reads this instance from the stream written byReplicableCommand.writeTo(ObjectOutput).voidsetComputeIfPresent(boolean computeIfPresent)voidsetInternalMetadata(PrivateMetadata internalMetadata)voidsetMetadata(Metadata metadata)Sets metadata for this command.voidsetValueMatcher(ValueMatcher valueMatcher)StringtoString()voidwriteTo(ObjectOutput output)Writes this instance to theObjectOutput.-
Methods inherited from class org.infinispan.commands.write.AbstractDataWriteCommand
getAffectedKeys, getCommandInvocationId, getKeyLockOwner, getKeysToLock, hasSkipLocking, hasZeroLockAcquisition
-
Methods inherited from class org.infinispan.commands.read.AbstractDataCommand
getFlagsBitSet, getKey, getSegment, getTopologyId, printFlags, setFlagsBitSet, setKey, setTopologyId
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.infinispan.commands.DataCommand
getKey
-
Methods inherited from interface org.infinispan.commands.write.DataWriteCommand
getInternalMetadata, setInternalMetadata
-
Methods inherited from interface org.infinispan.commands.FlagAffectedCommand
addFlag, addFlags, addFlags, getFlags, getFlagsBitSet, hasAllFlags, hasAnyFlag, hasFlag, setFlags, setFlagsBitSet
-
Methods inherited from interface org.infinispan.commands.ReplicableCommand
canBlock, invoke, invokeAsync, setOrigin
-
Methods inherited from interface org.infinispan.commands.SegmentSpecificCommand
getSegment
-
Methods inherited from interface org.infinispan.commands.TopologyAffectedCommand
getTopologyId, setTopologyId
-
Methods inherited from interface org.infinispan.commands.write.WriteCommand
isWriteOnly, updateStatusFromRemoteResponse
-
-
-
-
Field Detail
-
COMMAND_ID
public static final int COMMAND_ID
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ComputeCommand
public ComputeCommand()
-
ComputeCommand
public ComputeCommand(Object key, BiFunction remappingBiFunction, boolean computeIfPresent, int segment, long flagsBitSet, CommandInvocationId commandInvocationId, Metadata metadata)
-
-
Method Detail
-
isComputeIfPresent
public boolean isComputeIfPresent()
-
setComputeIfPresent
public void setComputeIfPresent(boolean computeIfPresent)
-
init
public void init(ComponentRegistry componentRegistry)
- Specified by:
initin interfaceVisitableCommand
-
getMetadata
public Metadata getMetadata()
Description copied from interface:MetadataAwareCommandGet metadata of this command.- Specified by:
getMetadatain interfaceMetadataAwareCommand- Returns:
- an instance of Metadata
-
setMetadata
public void setMetadata(Metadata metadata)
Description copied from interface:MetadataAwareCommandSets metadata for this command.- Specified by:
setMetadatain interfaceMetadataAwareCommand
-
isSuccessful
public boolean isSuccessful()
Description copied from interface:WriteCommandSome commands may want to provide information on whether the command was successful or not. This is different from a failure, which usually would result in an exception being thrown. An example is a putIfAbsent() not doing anything because the key in question was present. This would result in a isSuccessful() call returning false.- Specified by:
isSuccessfulin interfaceReplicableCommand- Specified by:
isSuccessfulin interfaceWriteCommand- Returns:
- true if the command completed successfully, false otherwise.
-
isConditional
public boolean isConditional()
Description copied from interface:WriteCommandCertain commands only work based on a certain condition or state of the cache. For example,ConcurrentMap.putIfAbsent(Object, Object)only does anything if a condition is met, i.e., the entry in question is not already present. This method tests whether the command in question is conditional or not.- Specified by:
isConditionalin interfaceWriteCommand- Returns:
- true if the command is conditional, false otherwise
-
getValueMatcher
public ValueMatcher getValueMatcher()
- Specified by:
getValueMatcherin interfaceWriteCommand- Returns:
- The current value matching policy.
-
setValueMatcher
public void setValueMatcher(ValueMatcher valueMatcher)
- Specified by:
setValueMatcherin interfaceWriteCommand- Parameters:
valueMatcher- The new value matching policy.
-
fail
public void fail()
Description copied from interface:WriteCommandMake subsequent invocations ofWriteCommand.isSuccessful()returnfalse.- Specified by:
failin interfaceWriteCommand
-
getCommandId
public byte getCommandId()
Description copied from interface:ReplicableCommandUsed by marshallers to convert this command into an id for streaming.- Specified by:
getCommandIdin interfaceReplicableCommand- Returns:
- the method id of this command. This is compatible with pre-2.2.0 MethodCall ids.
-
getRemappingBiFunction
public BiFunction getRemappingBiFunction()
-
writeTo
public void writeTo(ObjectOutput output) throws IOException
Description copied from interface:ReplicableCommandWrites this instance to theObjectOutput.- Specified by:
writeToin interfaceReplicableCommand- Parameters:
output- the stream.- Throws:
IOException- if an error occurred during the I/O.
-
readFrom
public void readFrom(ObjectInput input) throws IOException, ClassNotFoundException
Description copied from interface:ReplicableCommandReads this instance from the stream written byReplicableCommand.writeTo(ObjectOutput).- Specified by:
readFromin interfaceReplicableCommand- Parameters:
input- the stream to read.- Throws:
IOException- if an error occurred during the I/O.ClassNotFoundException- if it tries to load an undefined class.
-
acceptVisitor
public Object acceptVisitor(InvocationContext ctx, Visitor visitor) throws Throwable
Description copied from interface:VisitableCommandAccept a visitor, and return the result of accepting this visitor.- Specified by:
acceptVisitorin interfaceVisitableCommand- Parameters:
ctx- invocation contextvisitor- visitor to accept- Returns:
- arbitrary return value
- Throws:
Throwable- in the event of problems
-
loadType
public VisitableCommand.LoadType loadType()
- Specified by:
loadTypein interfaceVisitableCommand- Returns:
- Nodes on which the command needs to read the previous values of the keys it acts on.
-
equals
public boolean equals(Object o)
- Overrides:
equalsin classAbstractDataCommand
-
hashCode
public int hashCode()
- Overrides:
hashCodein classAbstractDataCommand
-
toString
public String toString()
- Overrides:
toStringin classAbstractDataCommand
-
isReturnValueExpected
public final boolean isReturnValueExpected()
Description copied from interface:ReplicableCommandIf true, a return value will be provided when performed remotely. Otherwise, a remoteResponseGeneratormay choose to simply return null to save on marshalling costs.- Specified by:
isReturnValueExpectedin interfaceReplicableCommand- Overrides:
isReturnValueExpectedin classAbstractDataWriteCommand- Returns:
- true or false
-
getInternalMetadata
public PrivateMetadata getInternalMetadata()
- Specified by:
getInternalMetadatain interfaceDataWriteCommand
-
setInternalMetadata
public void setInternalMetadata(PrivateMetadata internalMetadata)
- Specified by:
setInternalMetadatain interfaceDataWriteCommand
-
-