class OperationConductor implements OnOperationCompleteListener {

    protected Collection<OperationWrapper> getReadyOperations()
    {
        Set<String> completedOperationNames = completedOperations.stream().map(x -> x.getOperation().getName()).collect(Collectors.toSet());
        // get all the operations that are ready to run
        return pendingOperations.stream().filter(opWrapper -> opWrapper.isReady(executorContext, completedOperationNames)).collect(Collectors.toList());
    }

    public  OperationConductor(Collection<Operation> operations, ExecutorContext executorContext,
        List<OperationConductorModifier> completedOperationModifiers);
    public  OperationConductor(Collection<Operation> operations, ExecutorContext executorContext);

}