svn commit: r882000 - in /jakarta/jmeter/trunk: src/core/org/apache/jmeter/ src/core/org/apache/jmeter/engine/ src/core/org/apache/jmeter/threads/ src/jorphan/org/apache/jorphan/collections/ test/src/org/apache/jorphan/collections/

[email protected]
Newsgroups gmane.comp.jakarta.jmeter.devel
Message-ID <[email protected]>
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.