Author: sebb Date: Wed Nov 18 23:33:12 2009 New Revision: 882000 URL: http://svn.apache.org/viewvc?rev=882000&view=rev Log: Add generics to SearchByClass
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/collections/SearchByClass.java jakarta/jmeter/trunk/test/src/org/apache/jorphan/collections/PackageTest.java Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java?rev=882000&r1=881999&r2=882000&view=diff ============================================================================== --- jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java (original) +++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java Wed Nov 18 23:33:12 2009 @@ -724,7 +724,7 @@ treeModel.addSubTree(tree, root); // Hack to resolve ModuleControllers in non GUI mode - SearchByClass replaceableControllers = new SearchByClass(ReplaceableController.class); + SearchByClass<ReplaceableController> replaceableControllers = new SearchByClass<ReplaceableController>(ReplaceableController.class); tree.traverse(replaceableControllers); Collection<ReplaceableController> replaceableControllersRes = replaceableControllers.getSearchResults(); for (Iterator<ReplaceableController> iter = replaceableControllersRes.iterator(); iter.hasNext();) { Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java?rev=882000&r1=881999&r2=882000&view=diff ============================================================================== --- jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java (original) +++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java Wed Nov 18 23:33:12 2009 @@ -106,7 +106,7 @@ private HashTree test; - private volatile SearchByClass testListenersSave; + private volatile SearchByClass<TestListener> testListenersSave; private final String host; @@ -266,7 +266,7 @@ } } - private void notifyTestListenersOfStart(SearchByClass testListeners) { + private void notifyTestListenersOfStart(SearchByClass<TestListener> testListeners) { Iterator<TestListener> iter = testListeners.getSearchResults().iterator(); while (iter.hasNext()) { TestListener tl = iter.next(); @@ -281,7 +281,7 @@ } } - private void notifyTestListenersOfEnd(SearchByClass testListeners) { + private void notifyTestListenersOfEnd(SearchByClass<TestListener> testListeners) { log.info("Notifying test listeners of end of test"); Iterator<TestListener> iter = testListeners.getSearchResults().iterator(); while (iter.hasNext()) { @@ -377,7 +377,7 @@ log.info("Running the test!"); running = true; - SearchByClass testPlan = new SearchByClass(TestPlan.class); + SearchByClass<TestPlan> testPlan = new SearchByClass<TestPlan>(TestPlan.class); test.traverse(testPlan); Object[] plan = testPlan.getSearchResults().toArray(); if (plan.length == 0) { @@ -401,7 +401,7 @@ * Notification of test listeners needs to happen after function * replacement, but before setting RunningVersion to true. */ - SearchByClass testListeners = new SearchByClass(TestListener.class); + SearchByClass<TestListener> testListeners = new SearchByClass<TestListener>(TestListener.class); test.traverse(testListeners); // Merge in any additional test listeners @@ -417,7 +417,7 @@ List<?> testLevelElements = new LinkedList<Object>(test.list(test.getArray()[0])); removeThreadGroups(testLevelElements); - SearchByClass searcher = new SearchByClass(ThreadGroup.class); + SearchByClass<ThreadGroup> searcher = new SearchByClass<ThreadGroup>(ThreadGroup.class); test.traverse(searcher); TestCompiler.initialize(); // for each thread group, generate threads Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java?rev=882000&r1=881999&r2=882000&view=diff ============================================================================== --- jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java (original) +++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java Wed Nov 18 23:33:12 2009 @@ -125,7 +125,7 @@ testTree = test; compiler = new TestCompiler(testTree, threadVars); controller = (Controller) testTree.getArray()[0]; - SearchByClass threadListenerSearcher = new SearchByClass(TestListener.class); + SearchByClass<TestListener> threadListenerSearcher = new SearchByClass<TestListener>(TestListener.class); test.traverse(threadListenerSearcher); testListeners = threadListenerSearcher.getSearchResults(); notifier = note; Modified: jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/collections/SearchByClass.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/collections/SearchByClass.java?rev=882000&r1=881999&r2=882000&view=diff ============================================================================== --- jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/collections/SearchByClass.java (original) +++ jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/collections/SearchByClass.java Wed Nov 18 23:33:12 2009 @@ -51,12 +51,12 @@ * * @version $Revision$ */ -public class SearchByClass implements HashTreeTraverser { - private final List<Object> objectsOfClass = new LinkedList<Object>(); +public class SearchByClass<T> implements HashTreeTraverser { + private final List<T> objectsOfClass = new LinkedList<T>(); private final Map<Object, ListedHashTree> subTrees = new HashMap<Object, ListedHashTree>(); - private final Class<?> searchClass; + private final Class<T> searchClass; /** * Creates an instance of SearchByClass, and sets the Class to be searched @@ -64,7 +64,7 @@ * * @param searchClass */ - public SearchByClass(Class<?> searchClass) { + public SearchByClass(Class<T> searchClass) { this.searchClass = searchClass; } @@ -74,7 +74,7 @@ * * @return Collection All found nodes of the requested type */ - public Collection getSearchResults() { // TODO specify collection type without breaking callers + public Collection<T> getSearchResults() { // TODO specify collection type without breaking callers return objectsOfClass; } @@ -91,9 +91,10 @@ } /** {...@inheritdoc} */ + @SuppressWarnings("unchecked") public void addNode(Object node, HashTree subTree) { if (searchClass.isAssignableFrom(node.getClass())) { - objectsOfClass.add(node); + objectsOfClass.add((T) node); ListedHashTree tree = new ListedHashTree(node); tree.set(node, subTree); subTrees.put(node, tree); Modified: jakarta/jmeter/trunk/test/src/org/apache/jorphan/collections/PackageTest.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/test/src/org/apache/jorphan/collections/PackageTest.java?rev=882000&r1=881999&r2=882000&view=diff ============================================================================== --- jakarta/jmeter/trunk/test/src/org/apache/jorphan/collections/PackageTest.java (original) +++ jakarta/jmeter/trunk/test/src/org/apache/jorphan/collections/PackageTest.java Wed Nov 18 23:33:12 2009 @@ -162,7 +162,7 @@ public void testSearch() throws Exception { ListedHashTree tree = new ListedHashTree(); - SearchByClass searcher = new SearchByClass(Integer.class); + SearchByClass<Integer> searcher = new SearchByClass<Integer>(Integer.class); String one = "one"; String two = "two"; Integer o = new Integer(1); --------------------------------------------------------------------- To unsubscribe, e-mail: jmeter-dev-unsubscr...@jakarta.apache.org For additional commands, e-mail: jmeter-dev-h...@jakarta.apache.org