Class ReadOnlyManyCommand<K,V,R>
- java.lang.Object
-
- org.infinispan.commands.AbstractFlagAffectedCommand
-
- org.infinispan.commands.AbstractTopologyAffectedCommand
-
- org.infinispan.commands.functional.ReadOnlyManyCommand<K,V,R>
-
- All Implemented Interfaces:
FlagAffectedCommand
,LocalCommand
,ReplicableCommand
,TopologyAffectedCommand
,VisitableCommand
- Direct Known Subclasses:
TxReadOnlyManyCommand
public class ReadOnlyManyCommand<K,V,R> extends AbstractTopologyAffectedCommand implements LocalCommand
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.infinispan.commands.VisitableCommand
VisitableCommand.LoadType
-
-
Field Summary
Fields Modifier and Type Field Description static int
COMMAND_ID
protected Function<EntryView.ReadEntryView<K,V>,R>
f
protected DataConversion
keyDataConversion
protected Collection<?>
keys
protected Params
params
protected DataConversion
valueDataConversion
-
Constructor Summary
Constructors Constructor Description ReadOnlyManyCommand()
ReadOnlyManyCommand(Collection<?> keys, Function<EntryView.ReadEntryView<K,V>,R> f, Params params, DataConversion keyDataConversion, DataConversion valueDataConversion, ComponentRegistry componentRegistry)
ReadOnlyManyCommand(ReadOnlyManyCommand c)
-
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.boolean
canBlock()
If true, the command is processed asynchronously in a thread provided by an Infinispan thread pool.byte
getCommandId()
Used by marshallers to convert this command into an id for streaming.DataConversion
getKeyDataConversion()
Collection<?>
getKeys()
DataConversion
getValueDataConversion()
void
init(ComponentRegistry componentRegistry)
boolean
isReturnValueExpected()
If true, a return value will be provided when performed remotely.VisitableCommand.LoadType
loadType()
protected CacheEntry
lookupCacheEntry(InvocationContext ctx, Object key)
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
setKeys(Collection<?> keys)
String
toString()
ReadOnlyManyCommand<K,V,R>
withKeys(Collection<?> keys)
void
writeTo(ObjectOutput output)
Writes this instance to theObjectOutput
.-
Methods inherited from class org.infinispan.commands.AbstractTopologyAffectedCommand
getTopologyId, setTopologyId
-
Methods inherited from class org.infinispan.commands.AbstractFlagAffectedCommand
getFlagsBitSet, hasSameFlags, printFlags, setFlagsBitSet
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.infinispan.commands.FlagAffectedCommand
addFlag, addFlags, addFlags, getFlags, hasAnyFlag, hasFlag, setFlags
-
Methods inherited from interface org.infinispan.commands.ReplicableCommand
invoke, invokeAsync, isSuccessful, setOrigin
-
Methods inherited from interface org.infinispan.commands.VisitableCommand
ignoreCommandOnStatus, shouldInvoke
-
-
-
-
Field Detail
-
COMMAND_ID
public static final int COMMAND_ID
- See Also:
- Constant Field Values
-
keys
protected Collection<?> keys
-
f
protected Function<EntryView.ReadEntryView<K,V>,R> f
-
params
protected Params params
-
keyDataConversion
protected DataConversion keyDataConversion
-
valueDataConversion
protected DataConversion valueDataConversion
-
-
Constructor Detail
-
ReadOnlyManyCommand
public ReadOnlyManyCommand(Collection<?> keys, Function<EntryView.ReadEntryView<K,V>,R> f, Params params, DataConversion keyDataConversion, DataConversion valueDataConversion, ComponentRegistry componentRegistry)
-
ReadOnlyManyCommand
public ReadOnlyManyCommand()
-
ReadOnlyManyCommand
public ReadOnlyManyCommand(ReadOnlyManyCommand c)
-
-
Method Detail
-
init
public void init(ComponentRegistry componentRegistry)
-
getKeys
public Collection<?> getKeys()
-
setKeys
public void setKeys(Collection<?> keys)
-
withKeys
public final ReadOnlyManyCommand<K,V,R> withKeys(Collection<?> keys)
-
getCommandId
public byte getCommandId()
Description copied from interface:ReplicableCommand
Used by marshallers to convert this command into an id for streaming.- Specified by:
getCommandId
in interfaceReplicableCommand
- Returns:
- the method id of this command. This is compatible with pre-2.2.0 MethodCall ids.
-
isReturnValueExpected
public boolean isReturnValueExpected()
Description copied from interface: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 interfaceReplicableCommand
- Returns:
- true or false
-
canBlock
public boolean canBlock()
Description copied from interface: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 interfaceReplicableCommand
- Returns:
true
if the command can block/wait,false
otherwise
-
writeTo
public void writeTo(ObjectOutput output) throws IOException
Description copied from interface:ReplicableCommand
Writes this instance to theObjectOutput
.- Specified by:
writeTo
in 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:ReplicableCommand
Reads this instance from the stream written byReplicableCommand.writeTo(ObjectOutput)
.- Specified by:
readFrom
in 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.
-
perform
public Object perform(InvocationContext ctx) throws Throwable
Description copied from interface:ReplicableCommand
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.- Specified by:
perform
in interfaceReplicableCommand
- Specified by:
perform
in interfaceVisitableCommand
- Parameters:
ctx
- invocation context- Returns:
- arbitrary return value generated by performing this command
- Throws:
Throwable
- in the event of problems.
-
lookupCacheEntry
protected CacheEntry lookupCacheEntry(InvocationContext ctx, Object key)
-
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.- Specified by:
acceptVisitor
in 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:
loadType
in interfaceVisitableCommand
- Returns:
- Nodes on which the command needs to read the previous values of the keys it acts on.
-
getKeyDataConversion
public DataConversion getKeyDataConversion()
-
getValueDataConversion
public DataConversion getValueDataConversion()
-
-