Class ReadWriteKeyValueCommand<K,V,T,R>
- java.lang.Object
-
- org.infinispan.commands.read.AbstractDataCommand
-
- org.infinispan.commands.write.AbstractDataWriteCommand
-
- org.infinispan.commands.functional.AbstractWriteKeyCommand<K,V>
-
- org.infinispan.commands.functional.ReadWriteKeyValueCommand<K,V,T,R>
-
- All Implemented Interfaces:
DataCommand
,FlagAffectedCommand
,FunctionalCommand<K,V>
,ReplicableCommand
,SegmentSpecificCommand
,TopologyAffectedCommand
,VisitableCommand
,DataWriteCommand
,WriteCommand
,RemoteLockCommand
public final class ReadWriteKeyValueCommand<K,V,T,R> extends AbstractWriteKeyCommand<K,V>
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.infinispan.commands.VisitableCommand
VisitableCommand.LoadType
-
-
Field Summary
Fields Modifier and Type Field Description static byte
COMMAND_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 ReadWriteKeyValueCommand()
ReadWriteKeyValueCommand(Object key, Object argument, BiFunction<T,EntryView.ReadWriteEntryView<K,V>,R> f, int segment, CommandInvocationId id, ValueMatcher valueMatcher, Params params, DataConversion keyDataConversion, DataConversion valueDataConversion, ComponentRegistry componentRegistry)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
acceptVisitor(InvocationContext ctx, Visitor visitor)
Accept a visitor, and return the result of accepting this visitor.Object
getArgument()
BiFunction<T,EntryView.ReadWriteEntryView<K,V>,R>
getBiFunction()
byte
getCommandId()
Used by marshallers to convert this command into an id for streaming.Metadata
getPrevMetadata()
Object
getPrevValue()
void
init(ComponentRegistry componentRegistry)
boolean
isConditional()
Certain commands only work based on a certain condition or state of the cache.VisitableCommand.LoadType
loadType()
Object
perform(InvocationContext ctx)
Performs the primary function of the command.void
readFrom(ObjectInput input)
Reads this instance from the stream written byReplicableCommand.writeTo(ObjectOutput)
.void
setPrevValueAndMetadata(Object prevValue, Metadata prevMetadata)
Mutation
toMutation(Object key)
String
toString()
void
writeTo(ObjectOutput output)
Writes this instance to theObjectOutput
.-
Methods inherited from class org.infinispan.commands.functional.AbstractWriteKeyCommand
fail, getKeyDataConversion, getParams, getValueDataConversion, getValueMatcher, isSuccessful, setValueMatcher
-
Methods inherited from class org.infinispan.commands.write.AbstractDataWriteCommand
canBlock, getAffectedKeys, getCommandInvocationId, getKeyLockOwner, getKeysToLock, hasSkipLocking, hasZeroLockAcquisition, isReturnValueExpected
-
Methods inherited from class org.infinispan.commands.read.AbstractDataCommand
equals, getFlagsBitSet, getKey, getSegment, getTopologyId, hashCode, 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.FlagAffectedCommand
addFlag, addFlags, addFlags, getFlags, getFlagsBitSet, hasAnyFlag, hasFlag, setFlags, setFlagsBitSet
-
Methods inherited from interface org.infinispan.commands.ReplicableCommand
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.VisitableCommand
ignoreCommandOnStatus, shouldInvoke
-
Methods inherited from interface org.infinispan.commands.write.WriteCommand
isWriteOnly, updateStatusFromRemoteResponse
-
-
-
-
Field Detail
-
COMMAND_ID
public static final byte COMMAND_ID
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ReadWriteKeyValueCommand
public ReadWriteKeyValueCommand(Object key, Object argument, BiFunction<T,EntryView.ReadWriteEntryView<K,V>,R> f, int segment, CommandInvocationId id, ValueMatcher valueMatcher, Params params, DataConversion keyDataConversion, DataConversion valueDataConversion, ComponentRegistry componentRegistry)
-
ReadWriteKeyValueCommand
public ReadWriteKeyValueCommand()
-
-
Method Detail
-
getCommandId
public byte getCommandId()
Description copied from interface:ReplicableCommand
Used by marshallers to convert this command into an id for streaming.- Returns:
- the method id of this command. This is compatible with pre-2.2.0 MethodCall ids.
-
writeTo
public void writeTo(ObjectOutput output) throws IOException
Description copied from interface:ReplicableCommand
Writes this instance to theObjectOutput
.- 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:ReplicableCommand
Reads this instance from the stream written byReplicableCommand.writeTo(ObjectOutput)
.- 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.
-
isConditional
public boolean isConditional()
Description copied from interface:WriteCommand
Certain 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.- Returns:
- true if the command is conditional, false otherwise
-
perform
public Object perform(InvocationContext ctx) throws Throwable
Description copied from interface:VisitableCommand
Performs the primary function of the command. Please see specific implementation classes for details on what is performed as well as return types. Important: this method will be invoked at the end of interceptors chain. It should never be called directly from a custom interceptor.- Parameters:
ctx
- invocation context- Returns:
- arbitrary return value generated by performing this command
- Throws:
Throwable
- in the event of problems.
-
acceptVisitor
public Object acceptVisitor(InvocationContext ctx, Visitor visitor) throws Throwable
Description copied from interface:VisitableCommand
Accept a visitor, and return the result of accepting this visitor.- Parameters:
ctx
- invocation contextvisitor
- visitor to accept- Returns:
- arbitrary return value
- Throws:
Throwable
- in the event of problems
-
loadType
public VisitableCommand.LoadType loadType()
- Returns:
- Nodes on which the command needs to read the previous values of the keys it acts on.
-
toString
public String toString()
- Overrides:
toString
in classAbstractWriteKeyCommand<K,V>
-
init
public void init(ComponentRegistry componentRegistry)
- Specified by:
init
in classAbstractWriteKeyCommand<K,V>
-
setPrevValueAndMetadata
public void setPrevValueAndMetadata(Object prevValue, Metadata prevMetadata)
-
getArgument
public Object getArgument()
-
getBiFunction
public BiFunction<T,EntryView.ReadWriteEntryView<K,V>,R> getBiFunction()
-
getPrevValue
public Object getPrevValue()
-
getPrevMetadata
public Metadata getPrevMetadata()
-
-