final BulkIterationBase<?> enclosingIteration = holder.getContainingBulkIteration();
final BulkIterationNode containingIterationNode =
(BulkIterationNode) this.parent.con2node.get(enclosingIteration);
// catch this for the recursive translation of step functions
BulkPartialSolutionNode p = new BulkPartialSolutionNode(holder, containingIterationNode);
p.setDegreeOfParallelism(containingIterationNode.getDegreeOfParallelism());
p.setSubtasksPerInstance(containingIterationNode.getSubtasksPerInstance());
n = p;
}
else if (c instanceof WorksetPlaceHolder) {
final WorksetPlaceHolder<?> holder = (WorksetPlaceHolder<?>) c;
final DeltaIterationBase<?, ?> enclosingIteration = holder.getContainingWorksetIteration();
final WorksetIterationNode containingIterationNode =
(WorksetIterationNode) this.parent.con2node.get(enclosingIteration);
// catch this for the recursive translation of step functions
WorksetNode p = new WorksetNode(holder, containingIterationNode);
p.setDegreeOfParallelism(containingIterationNode.getDegreeOfParallelism());
p.setSubtasksPerInstance(containingIterationNode.getSubtasksPerInstance());
n = p;
}
else if (c instanceof SolutionSetPlaceHolder) {
final SolutionSetPlaceHolder<?> holder = (SolutionSetPlaceHolder<?>) c;
final DeltaIterationBase<?, ?> enclosingIteration = holder.getContainingWorksetIteration();
final WorksetIterationNode containingIterationNode =
(WorksetIterationNode) this.parent.con2node.get(enclosingIteration);
// catch this for the recursive translation of step functions
SolutionSetNode p = new SolutionSetNode(holder, containingIterationNode);
p.setDegreeOfParallelism(containingIterationNode.getDegreeOfParallelism());
p.setSubtasksPerInstance(containingIterationNode.getSubtasksPerInstance());
n = p;
}
else {
throw new IllegalArgumentException("Unknown operator type: " + c.getClass() + " " + c);
}