org.omnaest.utils.operation.battery
Class OperationBatteryRoundRobin<RESULT,PARAMETER>

java.lang.Object
  extended by org.omnaest.utils.operation.battery.OperationBattery<RESULT,PARAMETER>
      extended by org.omnaest.utils.operation.battery.OperationBatteryRoundRobin<RESULT,PARAMETER>
Type Parameters:
RESULT -
PARAMETER -
All Implemented Interfaces:
Operation<RESULT,PARAMETER>

public class OperationBatteryRoundRobin<RESULT,PARAMETER>
extends OperationBattery<RESULT,PARAMETER>

This is an OperationBattery implementation using a ConcurrentLinkedQueue in combination with a simple round robin algorithm.

Author:
Omnaest
See Also:
OperationBattery, Operation

Field Summary
protected  Queue<Operation<RESULT,PARAMETER>> operationQueue
           
 
Fields inherited from class org.omnaest.utils.operation.battery.OperationBattery
DEFAULT_INITIAL_BATTERY_CAPACITY
 
Constructor Summary
OperationBatteryRoundRobin(OperationFactory<RESULT,PARAMETER> operationFactory, boolean usingReentrantLock)
           
OperationBatteryRoundRobin(OperationFactory<RESULT,PARAMETER> operationFactory, boolean usingReentrantLock, int initialBatteryCapacity)
           
 
Method Summary
 RESULT execute(PARAMETER parameter)
           
protected  void initializeOperationBattery(int initialBatteryCapacity)
          Initialize the OperationBattery before the constructor call ends.
protected  Iterator<Operation<RESULT,PARAMETER>> resolveActiveOperationQueueIterator()
          Resolves an active Iterator instance from the current operationQueue
 
Methods inherited from class org.omnaest.utils.operation.battery.OperationBattery
isUsingReentrantLock, resolveNewOperationInstanceFromOperationFactory, setOperationFactory, setUsingReentrantLock
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

operationQueue

protected Queue<Operation<RESULT,PARAMETER>> operationQueue
Constructor Detail

OperationBatteryRoundRobin

public OperationBatteryRoundRobin(OperationFactory<RESULT,PARAMETER> operationFactory,
                                  boolean usingReentrantLock)
Parameters:
operationFactory -
usingReentrantLock -
See Also:
OperationBatteryRoundRobin

OperationBatteryRoundRobin

public OperationBatteryRoundRobin(OperationFactory<RESULT,PARAMETER> operationFactory,
                                  boolean usingReentrantLock,
                                  int initialBatteryCapacity)
Parameters:
operationFactory -
usingReentrantLock -
initialBatteryCapacity -
See Also:
OperationBatteryRoundRobin
Method Detail

resolveActiveOperationQueueIterator

protected Iterator<Operation<RESULT,PARAMETER>> resolveActiveOperationQueueIterator()
Resolves an active Iterator instance from the current operationQueue

Returns:

execute

public RESULT execute(PARAMETER parameter)

initializeOperationBattery

protected void initializeOperationBattery(int initialBatteryCapacity)
Description copied from class: OperationBattery
Initialize the OperationBattery before the constructor call ends. This should be used to for example fill a container with a given amount of Operation instances resolved by the OperationBattery.resolveNewOperationInstanceFromOperationFactory() method.

Specified by:
initializeOperationBattery in class OperationBattery<RESULT,PARAMETER>


Copyright © 2013. All Rights Reserved.