package org.infinispan.remoting.inboundhandler.action; import java.util.List; import org.infinispan.commands.ReplicableCommand; /** * The state used by an {@link Action}. * <p/> * It is shared among them. * * @author Pedro Ruivo * @since 8.0 */ public class ActionState { private final ReplicableCommand command; private final int commandTopologyId; private volatile long timeout; private volatile List<Object> filteredKeys; public ActionState(ReplicableCommand command, int commandTopologyId, long timeout) { this.command = command; this.commandTopologyId = commandTopologyId; this.timeout = timeout; } public final <T extends ReplicableCommand> T getCommand() { //noinspection unchecked return (T) command; } public final int getCommandTopologyId() { return commandTopologyId; } public final long getTimeout() { return timeout; } public final void updateTimeout(long newTimeout) { this.timeout = newTimeout; } public final List<Object> getFilteredKeys() { return filteredKeys; } public final void updateFilteredKeys(List<Object> newFilteredKeys) { this.filteredKeys = newFilteredKeys; } }