public final class PartitionIteratingOperation extends Operation implements IdentifiedDataSerializable
 THe execution used to be synchronous; so the thread executing this PartitionIteratingOperation would block till all
 the child requests are done. In 3.8 this is made asynchronous so that the thread isn't consumed and available for
 other tasks. On each partition operation an OperationResponseHandler is set, that sends the result to the
 caller when all responses have completed.
| Modifier and Type | Class and Description | 
|---|---|
static class  | 
PartitionIteratingOperation.PartitionResponse  | 
GENERIC_PARTITION_ID| Constructor and Description | 
|---|
PartitionIteratingOperation()  | 
PartitionIteratingOperation(OperationFactory operationFactory,
                           int[] partitions)  | 
| Modifier and Type | Method and Description | 
|---|---|
CallStatus | 
call()
Call the operation and returns the CallStatus. 
 | 
int | 
getFactoryId()
Returns DataSerializableFactory factory ID for this class. 
 | 
int | 
getId()
Returns type identifier for this class. 
 | 
OperationFactory | 
getOperationFactory()  | 
void | 
onExecutionFailure(Throwable cause)
Called when an Exception/Error is thrown during
 operation execution. 
 | 
protected void | 
readInternal(ObjectDataInput in)  | 
protected void | 
toString(StringBuilder sb)
A template method allows for additional information to be passed into
 the  
Operation.toString() method. | 
protected void | 
writeInternal(ObjectDataOutput out)  | 
afterRun, beforeRun, executedLocally, getCallerAddress, getCallerUuid, getCallId, getCallTimeout, getConnection, getInvocationTime, getLogger, getNodeEngine, getOperationResponseHandler, getPartitionId, getReplicaIndex, getResponse, getService, getServiceName, getWaitTimeout, isUrgent, logError, onInvocationException, onSetCallId, readData, requiresExplicitServiceName, returnsResponse, run, sendResponse, setCallerUuid, setNodeEngine, setOperationResponseHandler, setPartitionId, setReplicaIndex, setService, setServiceName, setValidateTarget, setWaitTimeout, toString, validatesTarget, writeDataclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitreadData, writeDatapublic PartitionIteratingOperation()
public PartitionIteratingOperation(OperationFactory operationFactory, int[] partitions)
operationFactory - operation factory to usepartitions - partitions to invoke onpublic OperationFactory getOperationFactory()
public CallStatus call()
OperationOperation.run() methods will be replaced by call
 methods.
 The call method looks very much like the Operation.run() method and it is
 very close to Runnable.run() and Callable.call().
 The main difference between a run and call, is that the returned
 CallStatus from the call can tell something about the actual execution.
 For example it could tell that some waiting is required in case of a
 BlockingOperation. Or that the actual execution work is
 offloaded to some executor in case of an
 Offloadable
 EntryOperation.
 In the future new types of CallStatus are expected to be added, e.g. for
 interleaving.
 In the future it is very likely that for regular Operation that want to
 return a concrete response, the actual response can be returned directly.
 In this case we'll change the return type to Object to prevent
 forcing the response to be wrapped in a CallStatus.DONE_RESPONSE
 monad since that would force additional litter to be created.call in class OperationOperation.run()public void onExecutionFailure(Throwable cause)
OperationonExecutionFailure in class Operationcause - Exception/Error thrown during operation executionpublic int getFactoryId()
IdentifiedDataSerializablegetFactoryId in interface IdentifiedDataSerializablepublic int getId()
IdentifiedDataSerializablegetId in interface IdentifiedDataSerializableprotected void writeInternal(ObjectDataOutput out) throws IOException
writeInternal in class OperationIOExceptionprotected void readInternal(ObjectDataInput in) throws IOException
readInternal in class OperationIOExceptionprotected void toString(StringBuilder sb)
OperationOperation.toString() method. So an Operation subclass can override
 this method and add additional debugging content. The default
 implementation does nothing so one is not forced to provide an empty
 implementation.
 It is a good practice to always call the super.toString(stringBuffer)
 when implementing this method to make sure that the super class can
 inject content if needed.Copyright © 2019 Hazelcast, Inc.. All Rights Reserved.