private void setIterations() { int gridy = 0; List<? extends IterationStrategy> strategies = stack.getStrategies(); for (IterationStrategy strategy : strategies) { IterationStrategyContextualView view = new IterationStrategyContextualView( strategy); JButton clickIterationButton = new JButton( new ClickIterationAction(view)); clickIterationButton.setText("Iteration Strategy"); GridBagConstraints constraints = new GridBagConstraints(); constraints.gridx = 0; constraints.gridy = gridy; constraints.weightx = 0; constraints.weighty = 0; constraints.fill = GridBagConstraints.NONE; iterations.add(clickIterationButton, constraints); gridy++; } }
@Override public IterationStrategyStack doEdit() throws EditException { if (applied) { throw new EditException("Edit has already been applied"); } if (!(iterationStrategyStack instanceof IterationStrategyStackImpl)) { throw new EditException( "Object being edited must be instance of IterationStrategyStackImpl"); } strategies = iterationStrategyStack.getStrategies(); ((IterationStrategyStackImpl) iterationStrategyStack).clear(); applied = true; return iterationStrategyStack; }
assertEquals("processor_A should have 1 input",1,processor_A.getInputPorts().size()); assertEquals("The should only be 1 activity",1,processorStringConstant.getActivityList().size()); assertEquals("Processor_A should have 1 iteration stragegy",1,processor_A.getIterationStrategy().getStrategies().size());
assertEquals("processor_A should have 1 input",1,processor_A.getInputPorts().size()); assertEquals("The should only be 1 activity",1,processorStringConstant.getActivityList().size()); assertEquals("Processor_A should have 1 iteration stragegy",1,processor_A.getIterationStrategy().getStrategies().size());
assertEquals("processor_A should have 1 input",1,processor_A.getInputPorts().size()); assertEquals("The should only be 1 activity",1,processorStringConstant.getActivityList().size()); assertEquals("Processor_A should have 1 iteration stragegy",1,processor_A.getIterationStrategy().getStrategies().size());
@Test public void dotProduct() throws Exception { Dataflow translated = WorkflowModelTranslator.doTranslation(iterateDot); Processor proc = null; for (Processor candidate : translated.getProcessors()) { if (candidate.getLocalName().equals("iterate")) { proc = candidate; break; } } assertNotNull("Can't find processor", proc); IterationStrategy itStrat = proc.getIterationStrategy().getStrategies() .get(0); assertEquals("Iteration should have 1 child", 1, itStrat .getTerminalNode().getChildCount()); IterationStrategyNode first = itStrat.getTerminalNode().getChildAt(0); assertTrue("Implicit strategy should be dot product ", first instanceof DotProduct); assertEquals("Should have 3 children", 3, first.getChildCount()); NamedInputPortNode node0 = (NamedInputPortNode) first.getChildAt(0); NamedInputPortNode node1 = (NamedInputPortNode) first.getChildAt(1); NamedInputPortNode node2 = (NamedInputPortNode) first.getChildAt(2); // Should be reverse order assertEquals("in2", node0.getPortName()); assertEquals("in1", node1.getPortName()); assertEquals("in0", node2.getPortName()); }
@Test public void implicitStrategy() throws Exception { Dataflow translated = WorkflowModelTranslator .doTranslation(iterateImplicit); Processor proc = null; for (Processor candidate : translated.getProcessors()) { if (candidate.getLocalName().equals("iterate")) { proc = candidate; break; } } assertNotNull("Can't find processor", proc); IterationStrategy itStrat = proc.getIterationStrategy().getStrategies() .get(0); assertEquals("Iteration should have 1 child", 1, itStrat .getTerminalNode().getChildCount()); IterationStrategyNode first = itStrat.getTerminalNode().getChildAt(0); assertTrue("Implicit strategy should be cross product ", first instanceof CrossProduct); assertEquals("Should have 3 children", 3, first.getChildCount()); NamedInputPortNode node0 = (NamedInputPortNode) first.getChildAt(0); NamedInputPortNode node1 = (NamedInputPortNode) first.getChildAt(1); NamedInputPortNode node2 = (NamedInputPortNode) first.getChildAt(2); // Should be reverse order assertEquals("in2", node0.getPortName()); assertEquals("in1", node1.getPortName()); assertEquals("in0", node2.getPortName()); }
@Test public void crossProduct() throws Exception { Dataflow translated = WorkflowModelTranslator .doTranslation(iterateCross); Processor proc = null; for (Processor candidate : translated.getProcessors()) { if (candidate.getLocalName().equals("iterate")) { proc = candidate; break; } } assertNotNull("Can't find processor", proc); IterationStrategy itStrat = proc.getIterationStrategy().getStrategies() .get(0); assertEquals("Iteration should have 1 child", 1, itStrat .getTerminalNode().getChildCount()); IterationStrategyNode first = itStrat.getTerminalNode().getChildAt(0); assertTrue("Implicit strategy should be cross product ", first instanceof CrossProduct); assertEquals("Should have 3 children", 3, first.getChildCount()); NamedInputPortNode node0 = (NamedInputPortNode) first.getChildAt(0); NamedInputPortNode node1 = (NamedInputPortNode) first.getChildAt(1); NamedInputPortNode node2 = (NamedInputPortNode) first.getChildAt(2); // Should be reverse order assertEquals("in2", node0.getPortName()); assertEquals("in1", node1.getPortName()); assertEquals("in0", node2.getPortName()); }