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);
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.