use of org.apache.jmeter.control.Controller in project jmeter by apache.
the class FindTestElementsUpToRootTraverser method getControllersToRoot.
/**
* Returns all controllers that where in Tree down to nodeToFind in reverse order (from leaf to root)
* @return List of {@link Controller}
*/
public List<Controller> getControllersToRoot() {
List<Controller> result = new ArrayList<>(stack.size());
LinkedList<TestElement> stackLocalCopy = new LinkedList<>(stack);
while (!stackLocalCopy.isEmpty()) {
TestElement te = stackLocalCopy.getLast();
if (te instanceof Controller) {
result.add((Controller) te);
}
stackLocalCopy.removeLast();
}
return result;
}
use of org.apache.jmeter.control.Controller in project jmeter by apache.
the class ProxyControlGui method buildNodesModel.
private void buildNodesModel(JMeterTreeNode node, String parentName, int level) {
String separator = " > ";
if (node != null) {
for (int i = 0; i < node.getChildCount(); i++) {
StringBuilder name = new StringBuilder();
JMeterTreeNode cur = (JMeterTreeNode) node.getChildAt(i);
TestElement te = cur.getTestElement();
/*
* Will never be true. Probably intended to use
* org.apache.jmeter.threads.ThreadGroup rather than
* java.lang.ThreadGroup However, that does not work correctly;
* whereas treating it as a Controller does. if (te instanceof
* ThreadGroup) { name.append(parent_name);
* name.append(cur.getName()); name.append(separator);
* buildNodesModel(cur, name.toString(), level); } else
*/
if (te instanceof Controller) {
name.append(parentName);
name.append(cur.getName());
TreeNodeWrapper tnw = new TreeNodeWrapper(cur, name.toString());
targetNodesModel.addElement(tnw);
name.append(separator);
buildNodesModel(cur, name.toString(), level + 1);
} else if (te instanceof TestPlan || te instanceof WorkBench) {
name.append(cur.getName());
name.append(separator);
buildNodesModel(cur, name.toString(), 0);
}
// Ignore everything else
}
}
}
use of org.apache.jmeter.control.Controller in project jmeter by apache.
the class TestCompiler method trackIterationListeners.
private void trackIterationListeners(LinkedList<TestElement> pStack) {
TestElement child = pStack.getLast();
if (child instanceof LoopIterationListener) {
ListIterator<TestElement> iter = pStack.listIterator(pStack.size());
while (iter.hasPrevious()) {
TestElement item = iter.previous();
if (item == child) {
continue;
}
if (item instanceof Controller) {
TestBeanHelper.prepare(child);
((Controller) item).addIterationListener((LoopIterationListener) child);
break;
}
}
}
}
Aggregations