/** * Ensures the {@link ReplaceableController} is loaded * @param item {@link TestElement} * @return {@link ReplaceableController} loaded */ private static ReplaceableController ensureReplaceableControllerIsLoaded( TestElement item) { ReplaceableController rc; // TODO this bit of code needs to be tidied up // Unfortunately ModuleController is in components, not core if ("org.apache.jmeter.control.ModuleController".equals(item.getClass().getName())){ // NOSONAR (comparison is intentional) Bug 47165 rc = (ReplaceableController) item; } else { // HACK: force the controller to load its tree rc = (ReplaceableController) item.clone(); } return rc; }
/** * {@inheritDoc} */ @Override public TestElementProperty clone() { TestElementProperty prop = (TestElementProperty) super.clone(); prop.value = (TestElement) value.clone(); return prop; }
/** * The tree traverses itself depth-first, calling addNode for each * object it encounters as it goes. */ @Override public void addNode(Object node, HashTree subTree) { if (log.isDebugEnabled()) { log.debug("Node is class: {}", node.getClass()); } JMeterTreeNode treeNode = (JMeterTreeNode) node; if (checkMode) { // Only check if we have not found any differences so far if(!dirty) { if (previousGuiItems.containsKey(treeNode)) { if (!previousGuiItems.get(treeNode).equals(treeNode.getTestElement())) { dirty = true; } } else { dirty = true; } } } else if (removeMode) { previousGuiItems.remove(treeNode); } else { previousGuiItems.put(treeNode, (TestElement) treeNode.getTestElement().clone()); } }
/** * @param node Node to add to tree or not * @return Object node (clone or not) */ protected Object addNodeToTree(Object node) { if ( (node instanceof TestElement) // Check can cast for clone // Don't clone NoThreadClone unless honourNoThreadClone == false && (!honourNoThreadClone || !(node instanceof NoThreadClone)) ) { node = ((TestElement) node).clone(); newTree.add(objects, node); } else { newTree.add(objects, node); } return node; }
/** * Configures GUI from el * @param el {@link TestElement} */ public void configure(TestElement el) { tableModel.jmsProperties.clear(); tableModel.jmsProperties.addTestElement((JMSProperties) el.clone()); if (tableModel.getRowCount() != 0) { deleteButton.setEnabled(true); } }
@Override public void configure(TestElement el) { super.configure(el); tableModel.manager.clear(); tableModel.manager.addTestElement((AuthManager) el.clone()); clearEachIteration.setSelected(((AuthManager) el).getClearEachIteration()); checkButtonsStatus(); }
public static JMeterTreeNode cloneTreeNode(JMeterTreeNode node) { JMeterTreeNode treeNode = (JMeterTreeNode) node.clone(); treeNode.setUserObject(((TestElement) node.getUserObject()).clone()); cloneChildren(treeNode, node); return treeNode; }
private static void cloneChildren(JMeterTreeNode to, JMeterTreeNode from) { Enumeration<?> enumFrom = from.children(); while (enumFrom.hasMoreElements()) { JMeterTreeNode child = (JMeterTreeNode) enumFrom.nextElement(); JMeterTreeNode childClone = (JMeterTreeNode) child.clone(); childClone.setUserObject(((TestElement) child.getUserObject()).clone()); to.add(childClone); cloneChildren((JMeterTreeNode) to.getLastChild(), child); } } }
private static void cloneChildren(JMeterTreeNode to, JMeterTreeNode from) { Enumeration<?> enumr = from.children(); while (enumr.hasMoreElements()) { JMeterTreeNode child = (JMeterTreeNode) enumr.nextElement(); JMeterTreeNode childClone = (JMeterTreeNode) child.clone(); childClone.setUserObject(((TestElement) child.getUserObject()).clone()); to.add(childClone); cloneChildren((JMeterTreeNode) to.getLastChild(), child); } } }
private static JMeterTreeNode cloneTreeNode(JMeterTreeNode node) { JMeterTreeNode treeNode = (JMeterTreeNode) node.clone(); treeNode.setUserObject(((TestElement) node.getUserObject()).clone()); cloneChildren(treeNode, node); return treeNode; }
TestElement template = templateNode.getTestElement(); if (template instanceof Timer) { TestElement timer = (TestElement) template.clone(); try { timer.setComment("Recorded:"+Long.toString(deltaT)+"ms");
@Override public Object clone() { // TODO - fix so that this is only called once per test, instead of at every clone // Perhaps save previous filename, and only load if it has changed? this.resolveReplacementSubTree(null); IncludeController clone = (IncludeController) super.clone(); clone.setIncludePath(this.getIncludePath()); if (this.subtree != null) { if (this.subtree.size() == 1) { for (Object o : this.subtree.keySet()) { this.sub = (TestElement) o; } } clone.subtree = (HashTree)this.subtree.clone(); clone.sub = this.sub==null ? null : (TestElement) this.sub.clone(); } return clone; }